其中ShellExecute找到了exe文件

时间:2015-06-30 10:17:22

标签: c winapi shellexecute

我正在使用win32 api在纯C中编写程序。

我需要知道注册程序的完整路径。

例如,如果我写

ShellExecute(0,0,"chrome",0,0,SW_SHOW)

Chrome浏览器启动。如何从"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "chrome"获取ShellExecute

1 个答案:

答案 0 :(得分:5)

在这种情况下,Chrome已在App Paths注册表部分注册。有关MSDN的更多详细信息:https://msdn.microsoft.com/en-us/library/windows/desktop/ee872121.aspx

  

查找应用程序可执行文件

     

当使用名称a调用ShellExecuteEx函数时   lpFile参数中的可执行文件,有几个地方   函数查找文件的位置。我们建议您注册   应用程序在App Paths注册表子项中。这样做可以避免这种需要   用于修改系统PATH环境变量的应用程序。

     

在以下位置寻找该文件:

     
      
  • 当前工作目录。
  •   
  • 仅限Windows目录(不搜索子目录)。
  •   
  • Windows \ System32目录。
  •   
  • PATH环境变量中列出的目录。
  •   
  • 推荐:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths
  •   

documentation告诉您shell如何搜索,您可以复制该搜索。