2009-08-17 86 views
0

我打算創建一個屏幕保護程序。也想嘗試一些WPF。無論如何,我不太清楚如何在文件系統中組織屏幕保護程序。我主要有兩個,我就如何解決非常不確定的相關問題:C#:你將如何在文件系統中組織屏幕保護程序?

  1. 正常情況下,應用程序的生命,其所有的第三方組件,靜態資源,圖像等,在Program Files文件夾,並從那裏跑。例如C:\ Program Files \ MyScreenSaver。但是(如果我沒有遺漏任何東西)在Windows中的屏幕保護程序的可執行文件需要有scr擴展名並且存在於系統文件夾中,例如C:\ Windows \ System32。你如何編程屏幕保護程序,以便它可以找到「本身的其餘部分」?你會使用Windows註冊表嗎?或者在scr文件旁邊創建某種配置文件,其餘路徑爲?你會讓scr只是在應用程序文件夾中的一個EXE啓動器?或者這會是一個壞主意?

  2. 我也希望屏幕保護程序從互聯網上的某些地方下載新內容。但是我把它放在哪裏,屏幕保護程序如何找到它?如果我理解正確,應用程序不是在其應用程序文件夾中創建新內容,而是在用戶文件夾中創建新內容。我如何找到該文件夾​​?你是否從環境變量中構建它?而在這個特定的目錄中,這樣的事情真的在嗎?例如在Vista上,我看到您有一個名爲的文件夾C:\ ProgramData。您還有C:\ Users \ username \ AppData \ Local,C:\ Users \ username \ AppData \ LocalLowC:\ Users \ username \ AppData \ Roaming。在我的文檔文件夾中也看到了很多程序轉儲的東西(儘管我討厭程序混亂了我的文檔文件夾,所以我可能會盡量避免這種情況:p)。

當涉及到在文件系統中佈局應用程序的這些問題時,哪些最佳實踐是什麼?我希望它對Windows 7來說是最好的和「最正確的」,這意味着它可能在Vista中同樣工作(?),但它也需要在XP中工作,因爲很多人是仍然使用它。我仍在使用XP :)

System.Environment.SpecialFolders

回答

0

對於一個屏幕保護程序我想嘗試把大部分的.exe文件(.scr的)文件。這可能會使可執行文件相當大,但我認爲這是值得的。

對於下載的內容使用應用程序數據文件夾,或者可能允許用戶設置位置(將路徑放在註冊表中)。例如,如果您正在下載圖像,用戶可能想將其放入「我的圖片」文件夾中。

+0

嗯,聽起來像一個計劃=) – Svish 2009-08-17 16:13:55

1

是你想要的這些特殊的位置。

說,

System.Environment.SpecialFolder.LocalApplicationData 
+0

你會添加什麼? 「MyScreenSaver」或類似的東西?那麼應用程序路徑呢?特別是因爲這是用戶在安裝過程中應該能夠選擇的東西。 – Svish 2009-08-17 11:49:58

+0

你是什麼意思'應用程序路徑'?正如所討論的,屏幕保護程序必須位於特定的位置,因此沒有選項。我不確定,但我懷疑'LocalApplicationData'你不需要添加你的應用程序的名稱。 – 2009-08-17 11:52:25

0

你可以把它放在System32(或SysWOW64)文件夾中,但你也可以把它放在Windows文件夾中,這樣可以防止x86和x64的問題。

你可以找到這裏寫的屏幕保護程序的一些其他很難找到,但很重要的信息: https://github.com/steveniles/MandelZoom/wiki

(披露:我寫上面的wiki作爲我自己的屏幕保護程序的一個源代碼同伴)