2011-08-27 99 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

,因为你将不得不存储用户的目录反正地方我会使用文本文件,还不如用它第一次运行时检测为好。它还有额外的好处,即如果文件被删除,您将知道必须再次提示用户,因为您不再知道他们的主目录是什么。

相关问题