首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >终止ShellExecuteEx终止“错误”窗口

终止ShellExecuteEx终止“错误”窗口
EN

Stack Overflow用户
提问于 2014-04-11 21:36:31
回答 1查看 84关注 0票数 0

我使用此代码来启动then浏览器,然后终止它。但是,在启动and浏览器并使其成为活动窗口之后,它会在后台捕获窗口(启动浏览器的应用程序)并终止它。所以我想让它在前台( want浏览器)中终止窗口。

代码语言:javascript
复制
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "C:\iexplore.exe";      
ShExecInfo.lpParameters = "http://www.google.se";   
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow =  SW_SHOWMAXIMIZED;
ShExecInfo.hInstApp = NULL; 
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,10);
DWORD Pid = GetCurrentProcessId();
HANDLE h = OpenProcess(PROCESS_TERMINATE, false, Pid);
TerminateProcess(h, 1);
CloseHandle(h);

我猜问题出在GetCurrentProcessId()给我的是正在运行的应用程序的id,而不是新打开的not浏览器。为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2014-04-12 04:50:41

GetCurrentProcessId的整个目的是返回调用函数的进程的PID。

要获得所创建进程的进程句柄,请读取SHELLEXECUTEINFO结构的hProcess成员。也就是说,在这个实例中调用CreateProcess会更好,因为您已经知道要启动的可执行文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23014204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档