前几天做一个小工具用到winpcap,由于有些用户系统未必安装过这个而领导要求尽量减少用户点击,于是只好想办法静默安装了,csdn搜了,貌似没有好用的,求助stackoverflow,还好,在某篇解答中找到了http://paperlined.org/apps/wireshark/winpcap_silent_install.html 这个,使用之,发现很靠谱,我程序中,直接
if (!::CreateProcess( NULL, (LPTSTR)"winpcap-nmap-4.13.exe /S /NPFSTARTUP=NO",//(LPTSTR)"winpcap-nmap-4.13.exe /S",//(LPTSTR)"winpcap-nmap-4.13.exe /S", NULL, NULL, FALSE, CREATE_NEW_CONSOLE|CREATE_NEW_PROCESS_GROUP,//NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi)) { LPTSTR lpMsgBuf; DWORD nErrno = GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, nErrno, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL ); OutputDebugString("CreateProcess winpcap-nmap-4.13.exe /S FALSE!!"); OutputDebugString(lpMsgBuf); while(1)//本检测线程不退出,让扫描线程超时显示 { Sleep(5000); } return FALSE; }
后台就会静默安装了,当然,我的工程中,遇到点波折,导致静默安装后没有立即生效(本进程退出后才会生效 sc query npf 结果是 1060或者其他),后续有空将这个锁死的过程总结写下吧。
当然win7等下,需要管理员权限运行才可以的。
BTW:
参数:/NPFSTARTUP=NO
这个是看nmap中winpcap安装包的readme里面有这个项,所以加上了,其实不加应该也可以的。
————————————————
版权声明:本文为CSDN博主「dabang_007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dabang_007/article/details/40819601
手机扫一扫
移动阅读更方便
你可能感兴趣的文章