确定我的应用程序第一次运行的时间

时间:2011-08-27 09:09:37

标签: c++ algorithm winapi

我有一个Native WinApi C ++应用程序,可以在指定的目录中找到媒体(.wmv,.mp3等)文件。创建随机播放列表。第一次运行应用程序(并且只是第一次)我想提示用户指定应用程序将始终检查媒体文件的“主页”目录。从中创建播放列表。

我的问题:我不知道如何确定应用程序第一次运行的方式?

是否有标准方法,可能是Win32函数,我可以用来检测应用程序第一次运行的时间?

我提出的一些想法是:(但它们看起来像黑客或过度杀伤(安装者的想法))

  
      
  • 应用程序.exe是322kb(这是微小的&不需要   安装程序对吗?)大小,所以我可以创建一个安装程序(我是   如果有人正在安装应用程序,那么我就知道了   第一次运行&我可以提示他们)。
  •   
  • 我可以有一个名为appData.txt&的文本文件(或xml)。有第一个   我存储主路径目录的行。所以“home_path = undefined”,   在应用程序运行时,我查看文本文件,如果home_path ==   undefined然后我提示他们指定一个主路径,如果它没有未定义,那么我读取该目录的媒体文件。
  •   

关于如何确定我的应用程序何时第一次运行的任何想法?

4 个答案:

答案 0 :(得分:3)

在安装程序中,您可以为程序创建一个注册表值。

然后当您启动程序时,请检查注册表值 当您第一次运行该程序时,将该值更新为您已知道它已经运行。

答案 1 :(得分:2)

我会使用文本文件,因为无论如何你都必须将用户的目录存储在某个地方,也可以将它用于首次运行检测。它还有一个额外的好处,即如果文件被删除,您将知道必须再次提示用户,因为您不再知道他们的主目录是什么。

答案 2 :(得分:1)

首次运行时创建日志文件。如果它存在,那么这不是第一次。

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

答案 3 :(得分:1)

您可以在App首次运行时设置一些注册表值,并在每次运行时进行检查。如果已经设置,那么App已经运行。如果不是 - 设置它。