未指定路径时,CreateProcess与ShellExecute(Ex) 查找路径之不同

当不指定全路径调用CreateProcess启动devenv.exe失败,而使用ShellExecute(Ex)则成功。原因在于CreateProcess的搜索顺序不同于ShellExecute(Ex),后者会检查App Paths注册表项。CreateProcess会查找加载应用的目录、父进程当前目录、系统目录等,而ShellExecute(Ex)推荐使用App Paths注册键。
摘要由CSDN通过智能技术生成

未指定路径时,CreateProcessShellExecute(Ex) 查找路径之不同

 

几天前碰上的一个比较细节的东西。调用CreateProcess时不指定全路径时(如:devenv.exe)就不成功(返回0),而同样是不带路径,开始-》运行(与ShellExecute 相当?我想)则完全OK,可以正常开户vs的开发环境。最后原因是——没有把devenv.exe所在的路径加入环境变量PATH里。这倒打破了我一直以来的一个错误认识,即开始-》运行OK的话就说明环境变量设定也是OK的。

 

查查CreateProcess相关的MSDN

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值