我在cmd.exe中执行:
C:\Documents and Settings\Administrator>"C:\Program Files\Kaspersky Lab\Kaspersk
y Anti-Virus 2009\avp" scan D:\data
执行后,窗口是保留了的,但用我的程序执行后:
HINSTANCE hInstance = ShellExecute(NULL, _T("open"),"C:\\Program Files\\Kaspersky Lab\\Kaspersky Anti-Virus 2009\\avp","scan D:\data",NULL,SW_SHOWNA);
但执行ShellExecute后avp执行窗体是执行成功了的,但完成之后一闪就结束了,我想也像cmd.exe那样执行完了后再保留窗体
2. 使用命令行加/k的选项
3. 使用命令行的命令start的加上/wait选项
WaitForSingleObject(hInstance);等待句柄返回,知道扫描退出后,程序再继续
不是指主程序窗体,我说的是avp 卡巴扫描的窗体没有保留
y Anti-Virus 2009\avp" scan D:\data
C:\Documents and Settings\Administrator>"C:\Program Files\Kaspersky Lab\Kaspersk
y Anti-Virus 2009\avp.exe" scan D:\data
char szAppName[_MAX_PATH] = {0};
strcpy(szAppName,"C:\\Program Files\\Kaspersky Lab\\Kaspersky Anti-Virus 2009\\avp.exe Scan D:\\data");
char szCmdLine[_MAX_PATH] = {0};
strcpy(szCmdLine,"Scan D:\\data");
CreateProcess(szAppName ,szCmdLine, NULL, NULL,TRUE, 0, NULL, NULL, &startupInfo, &ProcessInfo);
C:\Documents and Settings\Administrator>"C:\Program Files\Kaspersky Lab\Kaspersk
y Anti-Virus 2009\avp.exe" scan D:\data //卡巴窗体不会保留 和我程序是一样的现象
C:\Documents and Settings\Administrator>"C:\Program Files\Kaspersky Lab\Kaspersk
y Anti-Virus 2009\avp" scan D:\data //卡巴窗体会保留 是我程序想要的
strcpy(szAppName,"D:\\data\\Tecsun.exe");
CreateProcess( szAppName,NULL, NULL, NULL,FALSE, 0, NULL, NULL, &startupInfo, &ProcessInfo);
你讲的是对的,现在若没空格Tecsun.exe可以启动了。
但是对于卡巴路径怎么对空格处理?
C:\Program Files\Kaspersky Lab\Kaspersk
y Anti-Virus 2009\avp" 怎么处理空格, 可能涉及到了关键问题了