是否可以使用该部分中的 Inno Setup 刷新桌面[Code]
?
通过使用SendMessage
或以某种方式使用SHChangeNotify
?
是否可以使用该部分中的 Inno Setup 刷新桌面[Code]
?
通过使用SendMessage
或以某种方式使用SHChangeNotify
?
您可以通过在适当的 DLL 中调用 Windows API 中的任何函数来调用它。此处记录了 Pascal DLL 语法。与往常一样,可以在 MSDN 上找到该SHChangeNotify
函数的文档。这个函数可以在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]
节中。