[Code]
セクションで Inno Setup を使用してデスクトップを更新することは可能ですか?
を使用SendMessage
するか、何らかの方法で使用しSHChangeNotify
ますか?
[Code]
セクションで Inno Setup を使用してデスクトップを更新することは可能ですか?
を使用SendMessage
するか、何らかの方法で使用しSHChangeNotify
ますか?
適切な DLL で呼び出すことにより、Windows API の任意の関数を呼び出すことができます。Pascal DLL の構文は、ここに記載されています。関数のドキュメントは、SHChangeNotify
通常どおり MSDN にあります。この関数はShell32.dll
(驚くべきことではありません!) にあります。
[Code]
const
SHCNE_ASSOCCHANGED = $08000000;
SHCNF_IDLIST = $00000000;
procedure SHChangeNotify(wEventID: integer; uFlags: cardinal; dwItem1, dwItem2: cardinal);
external 'SHChangeNotify@shell32.dll stdcall';
procedure SendChangeNotification;
begin
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
end;
これで、イベント関数SendChangeNotification
など、好きな場所で呼び出すことができます。
アップデート
上記のテキストは、「[コード] セクションで Inno Setup を使用してデスクトップを更新する方法」という質問に答えています。しかし、Inno Setup が自動的にデスクトップを更新できることをご存知ですか? 簡単に書く
ChangesAssociations=yes
[Setup]
セクションで。