我正在使用win32 api在纯C中编写程序。
我需要知道注册程序的完整路径。
例如,如果我写
ShellExecute(0,0,"chrome",0,0,SW_SHOW)
Chrome浏览器启动。如何从"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
"chrome"
获取ShellExecute
?
答案 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如何搜索,您可以复制该搜索。