2008-10-27 60 views

回答

21

你絕對不能認爲:Windows可以安裝在不同的驅動器號或不同的目錄中。例如,在以前的工作中,PC Windows安裝在D:\ WINNT中。

簡短的回答是使用API​​調用GetSystemDirectory(),這將返回你以後的路。

較長的答案是問:你真的需要知道這個嗎?如果你使用它來將文件複製到Windows目錄中,我建議你問你是否真的想要這樣做。不鼓勵複製到Windows目錄,因爲您可以很容易地搞亂其他應用程序。如果您使用路徑來查找DLL,爲什麼不僅僅依靠操作系統來找到合適的路徑而不給路徑呢?如果您正在深入瞭解操作系統文件的各個部分,請考慮:未來會如何運作?一般情況下,如果您希望程序能夠在未來的Windows版本上運行,最好不要在Windows目錄中明確指出。

2

這可能是更安全的使用「WINDIR」環境變量,然後追加「System32下」,以這條道路的盡頭。有時Windows可能位於不同的文件夾或不同的驅動器下,因此「windir」會告訴你它在哪裏。

據我所知,system32文件夾應該總是存在於windows文件夾下。

4

Windows可以安裝在不同的硬盤和/或不同的文件夾中。使用%windir%或%systemroot%環境變量讓你進入windows文件夾並追加system32。或者使用%path%變量,它通常是第一個入口,也是搜索dlls AFAIK等文件的首選方法。按照評論:不要過多地依賴system32 dir作爲第一項。我認爲可以安全地假設它在%path%的某處。

+0

不要僅僅採取%path%中的第一項。一大堆程序喜歡預先追加到PATH中,而不是追加後綴。 System32在我的LM PATH上大約是第九位。 – KTC 2008-10-27 06:52:22

+0

肯定是真的,只是假設它在那裏,我會編輯:-) – 2008-10-27 06:56:49

3

我會用GetWindowsDirectory的Win32 API來獲取當前Windows目錄,追加System32下給它的,然後檢查它是否存在。

16

不,你不能假設。

Windows可以安裝到不同的路徑。一種解決方法是通過調用GetSystemDirectory(作爲Windows API的一部分實現)來查找它。

0

只是一個供參考,但在終端服務器環境(即,思傑),GetWindowsDirectory()可能會返回一個遠程用戶的唯一路徑。

link text

隨着越來越多的公司使用虛擬化桌面,開發者需要牢記這一點。

相關問題