首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShellExecute占位目录

ShellExecute占位目录
EN

Stack Overflow用户
提问于 2022-11-22 09:01:17
回答 1查看 56关注 0票数 0

我的C++程序位于一个目录(A)中。通过这个程序运行ShellExecute()之后,我打开一个应用程序XShell,关闭我的C++程序,然后我发现在资源监视器中,A目录被我启用的程序XShell占据。如何解决这个问题?

代码语言:javascript
复制
ShellExecuteW(NULL, L"open", L"D:\\Program Files\\NetSarang\\Xshell 6\\Xshell.exe", NULL, NULL, SW_SHOWDEFAULT)

C++程序退出后,XShell占据了我的C++程序目录。

我希望在通过ShellExecute()打开应用程序之后,这个应用程序不会占用C++程序的目录。

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 10:00:36

该目录被占用,因为辅助程序正在继承该目录作为其工作目录。为了避免这种情况,您可以指定辅助程序应该在lpDirectory参数ShellExecuteW()中使用的工作目录。

https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutew

[in, optional] lpDirectory

类型:LPCTSTR

指向以空结尾的字符串的指针,该字符串指定操作的默认(工作)目录。如果此值为NULL,则使用当前工作目录。如果在lpFile提供了相对路径,则不要为lpDirectory使用相对路径。

例如,您可以指定"C:\\" (应该始终存在并且是可访问的)。

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

https://stackoverflow.com/questions/74529928

复制
相关文章

相似问题

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