Installshield Script刷新桌面
在使用Installshield制作打包安装工具的时候,桌面的图标有时候会Create错误(*下面会讲个亲身Experience)。这时候往往是只要刷新一下桌面,就能恢复想要的图标。所以,Here介绍一个在安装结束后,用Installshield Script来刷新桌面的方法。
首先,Refresh Desktop有两种:
1)调用API函数,如::InvalidateRect( 0, NULL,TRUE);
2)F5键刷新。
其次,Installshield Script调用API函数,就需要做Dll,然后调用。这个Script调用Dll的方法我会另篇说明。这里我说明下在Script中如何模拟F5键,刷新桌面。
/// installation declarations
// ---- script function prototypes -----
//声明User32.dll的函数
prototype HWND user32.GetDesktopWindow ();
prototype HWND user32.FindWindowExA (HWND, HWND, BYREF STRING, INT);
...
//安装函数
function OnFirstUIAfter()
HWND hWnd;
…
Begin
.
.
.
hWnd = GetDesktopWindow();
hWnd = FindWindowExA(hWnd, 0, "Progman", NULL);
// WM_KEYDOWN = 256, WM_KEYUP = 257, VK_F5 = 116
PostMessage(hWnd,256,116,0);
PostMessage(hWnd,257,116,0);
end;
亲身Experience:我们公司在做对日外包软件的时候,软件名称和HuaWei的软件名称一样,所以安装好以后桌面图标会生成和较早安装的一样。桌面刷新可解决这个问题。