我正在使用win32 api编写纯C语言的程序.
我需要知道注册程序的完整路径.
例如,如果我写
ShellExecute(0,0,"chrome",0,0,SW_SHOW)
Chrome浏览器启动.我怎样才能获得"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"从"chrome"作为ShellExecute呢?
在这种情况下,Chrome已在App Paths注册表部分注册.有关MSDN的更多详细信息:https://msdn.microsoft.com/en-us/library/windows/desktop/ee872121.aspx
查找应用程序可执行文件
当在其lpFile参数中使用可执行文件的名称调用ShellExecuteEx函数时,该函数会在几个地方查找该文件.我们建议您在App Paths注册表子项中注册您的应用程序.这样做可以避免应用程序修改系统PATH环境变量的需要.
该文件在以下位置寻找:
- 当前的工作目录.
- 仅限Windows目录(不搜索子目录).
- Windows\System32目录.
- PATH环境变量中列出的目录.
- 推荐:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
该文档告诉您shell如何搜索,您可以复制该搜索.