2011-08-27 89 views
0

我有一個本地WINAPI C++應用程序,發現在指定的目錄&創建播放列表,隨機介質(.WMV,.MP3等)的文件。第一次運行應用程序(第一次使用&)我想提示用戶指定應用程序將始終檢查媒體文件的「主目錄」目錄&從中創建播放列表。確定當我的應用程序運行的第一次

我的問題:我不知道如何確定第一次運行應用程序的方式嗎?

有沒有一種標準的方法,可能是一個Win32函數,我可以用它來檢測應用程序第一次運行?

一些想法,我想出是:(但他們似乎像黑客或矯枉過正(安裝程序的想法))

  • 的應用程序.exe是322KB(即微小&不需要 安裝吧?)的大小,所以我可以創建一個安裝程序(我想 如果有人在安裝應用程序,然後我知道它的 第一次運行&我可以提示的話)。
  • 我可以叫appData.txt &一個文本文件(或XML)有1 線在哪裏存儲歸屬路徑目錄。因此,「home_path = undefined」, 在應用程序運行時,我查看文本文件,如果home_path == 未定義,那麼我提示他們指定一個主路徑,如果它的未定義,那麼我讀取該目錄的媒體文件。

的我怎麼能確定什麼時候我的應用程序運行的第一次任何想法?

回答

3

在安裝程序中,您可以爲程序創建註冊表值。

然後,當您啓動程序時,請檢查註冊表值。
當您第一次運行該程序時,將該值更新爲所以您知道它已經運行。

+0

這就是他所要求的,但並不能真正解決他的問題。檢測「第一次運行」獨立於「沒有正確配置」在這裏是無用的。 –

1

第一次運行時創建一個日誌文件。如果存在,那麼這不是第一次。

try 
{ 
    // open log.txt 
    // do second time run logic here 
} 
catch(file does not exist) 
{ 
    // create log.txt 
    // first run logic here 
} 
+1

感謝您的回覆。順便說一句,這可能是脫離主題,但在win32應用程序中「試試&catch」,是不是Anathema? :P – user593747

+0

@ user593747:爲什麼它應該是?我沒有看到任何理由。 – Simon

+0

@ user593747不,它不是。 – atoMerz

1

當您的應用第一次運行並在每次運行時檢查它時,您可以設置一些註冊表值。如果它已經設置,那麼應用程序已經運行。如果沒有 - 設置它。

2

,因爲你將不得不存儲用戶的目錄反正地方我會使用文本文件,還不如用它第一次運行時檢測爲好。它還有額外的好處,即如果文件被刪除,您將知道必須再次提示用戶,因爲您不再知道他們的主目錄是什麼。

相關問題