2015-06-30 35 views
0

我正在寫純C程序,使用win32 api。其中ShellExecute發現exe文件

我需要知道已註冊程序的完整路徑。

例如,如果我寫

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

Chrome瀏覽器啓動。我如何從"chrome"獲得"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"作爲ShellExecute呢?

回答

4

在這種情況下,Chrome已將自己註冊到App Paths註冊表部分。更多細節在MSDN上:https://msdn.microsoft.com/en-us/library/windows/desktop/ee872121.aspx

找到一個應用程序可執行

當ShellExecuteEx函數被調用,它lpFile參數的 可執行文件的名字,有幾個地方 其中函數尋找文件。我們建議您在App Paths註冊表子項中註冊您的 應用程序。這樣做可以避免應用程序修改系統PATH環境變量時需要 。

該文件尋求以下位置:

  • 當前工作目錄。
  • 僅限Windows目錄(不搜索子目錄)。
  • Windows \ System32目錄。
  • PATH環境變量中列出的目錄。
  • 推薦:HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows \ CurrentVersion \ App路徑

documentation告訴您如何shell搜索,你可以複製該搜索。

相關問題