2015-07-19 106 views
0

我寫了我自己的屏幕保護程序,它使用與屏幕保護程序可執行文件(.scr文件)位於同一目錄的其他文件。Windows屏幕保護程序安裝位置

如果我右鍵單擊屏幕保護程序並選擇'測試',一切正常,那些額外的文件被發現。

但是,如果我右鍵單擊並點擊'安裝'安裝屏幕保護程序,它似乎無法再找到這些文件。

安裝過程是否生成另一個屏幕保護副本,或者更改工作目錄?如果是這樣,它在什麼目錄?

這是一個Windows 7桌面。

到目前爲止,我已經在Windows文件夾,程序文件,程序文件(x86)中搜索。

UPDATE:

所以,我添加以下代碼位,以確定可執行文件的位置。

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 

看起來,屏幕保護程序正在從我從它放置的目錄,從原始文件運行。但是,安裝完成後,我可以通過可執行文件訪問同一文件夾中的文件的唯一方法是使用完整路徑。如果我運行它作爲測試,我只能使用文件名。

這應該是一個線索,我想怎麼回事。上述函數,如果我運行它作爲測試,返回長文件名,但如果我運行它作爲安裝,它返回短文件名。我認爲,當安裝時,它運行某種特殊的過程,或者可能是一個子進程,這也會干擾文件訪問。

這是怎麼回事?

+0

當前目錄已更改。 –

+0

是的,我回答了我自己的問題後,我看到了您的評論。 – mcu

回答

0

我加了一段代碼,以確定當前工作目錄,發現運行在屏幕保護程序安裝時模式,當前的工作目錄成爲C:\ Windows \ System32下,這當然會解釋如何文件被引用。

Environment.CurrentDirectory