要让程序安装完后,自动运行,要编写一个.dll文件,具体的见SDK下的例子Samples\CPP\Win32\Setupdll。
在这个动态库中主要有四个函数,Install_Init是刚开始安装时要运行的的代码,在这里我们可以做一些安装的初始化工作,Install_Exit是安装后将要运行的代码,在这里我们就可以CreateProcess自己想要的程序;Uninstall_Init是刚开始卸载程序要执行的,Uninstall_Exit是卸载完要执行的代码。
要让程序自己打开安装包则要调用wceload.exe,代码如下:
SHELLEXECUTEINFO sei;
ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = _T("Open");
sei.lpFile =L"\\Install.cab"; //安装包的绝对路径
sei.lpParameters=L"\\Windows\\wceload.exe";
sei.nShow = SW_HIDE;
ShellExecuteEx(&sei);
或
PROCESS_INFORMATION stProgressInfo;
CreateProcess("wceload.exe", "\\install.cab", NULL, NULL, NULL, 0, NULL, NULL, NULL, &stProgressInfo );