要讓程序安裝完后,自動運行,要編寫一個.dll文件,具體的見SDK下的例子Samples\CPP\Win32\Setupdll。
在這個動態(tài)庫中主要有四個函數(shù),Install_Init是剛開始安裝時要運行的的代碼,在這里我們可以做一些安裝的初始化工作,Install_Exit是安裝后將要運行的代碼,在這里我們就可以CreateProcess自己想要的程序;Uninstall_Init是剛開始卸載程序要執(zhí)行的,Uninstall_Exit是卸載完要執(zhí)行的代碼。
要讓程序自己打開安裝包則要調(diào)用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 );