2011-12-12 43 views
-1

如果我有一個文件路徑(可能稍後傳遞給ShellExecute API),有什麼方法可以判斷它是否指向應用程序?如何判斷路徑是否指向Windows中的應用程序

我需要這個在Windows下從C++程序工作。此外,該路徑可能包含啓動命令行參數。

+1

定義「應用程序」。這個詞跨越了許多不同類型的文件。 –

+0

是的,好點。應用程序路徑是文件的路徑,可以表示Windows內核體系結構中的進程。 – ahmd0

+1

這很難定義。快捷鍵是否算數?腳本?文件(雙擊時打開應用程序)? – tenfour

回答

1

您可以使用SaferiIsExecutableFileType函數來檢查文件是否可執行。

+1

謝謝。非常奇怪的API名稱,但它似乎做的工作! – ahmd0

0

因此,您真的想知道表示命令行的字符串是否具有作爲其第一個「部分」的可執行文件的路徑。你如何去做這些取決於你想要的信息的準確性。

首先,您必須解析字符串以獲取第一個參數。這不像尋找第一個空間那麼簡單,因爲Windows路徑可以包含空格。你將不得不處理像"c:\program files\internet explorer\iexplore.exe" "http://stackoverflow.com"

搜索文件是一個相當複雜的過程,涉及在PATH環境變量中搜索目錄。 SearchPath API函數可以提供幫助。

+0

是的,我同意這聽起來不像聽起來那麼容易。因此,就SearchPath而言,OK,如果擴展名是.exe,那麼很明顯,但正如我在下面指出的那樣,如果擴展名缺失,該怎麼辦? – ahmd0

+0

閱讀'SearchPath'的文檔,特別是'lpExtension'參數。 –

相關問題