寫驅動過程中有時候需要自動安裝驅動程序,那麼可以使用ShellExecute函數來完成這個工作:
首先查下看看你的HKEY_CLASSES_ROOT\inffile\shell\Install\command的值是什麼,比如我的機子上是%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1,這個是默認安裝inf會執行的命令,我們根據這個命令來寫ShellExecute的參數
代碼:
char* cmd1="setupapi,InstallHinfSection DefaultInstall 132 c:\\1.inf";
::ShellExecuteA(NULL, "open", "rundll32.exe", cmd1, NULL, SW_SHOWNORMAL);
printf("%d\n",GetLastError());
注意將你的inf文件路徑替換c:\\1.inf處。
ShellExecuteA的最後一個參數是表示顯示的方式,可以選SW_HIDE來不讓安裝窗口出現。