前几天做一个小工具用到winpcap,由于有些用户系统未必安装过这个而领导要求尽量减少用户点击,于是只好想办法静默安装了,csdn搜了,貌似没有好用的,求助*,还好,在某篇解答中找到了http://paperlined.org/apps/wireshark/winpcap_silent_install.html 这个,使用之,发现很靠谱,我程序中,直接
<span style="font-size:18px;"> 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;
}</span>
后台就会静默安装了,当然,我的工程中,遇到点波折,导致静默安装后没有立即生效(本进程退出后才会生效 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