计算程序启动的次数

如何在不保存文件和计数的情况下获得程序先前在c#中运行的次数。 是否有一个Application类或c#中的东西来检查计数。 请详细解释,因为我一无所知。这是一个Windows控制台应用程序而不是Windows窗体。

你可以这样做我在Registry创建一个条目。 另一种方法是使用Application Settings

但我更喜欢Application Settings因为它的任务较少。
请参阅此处:创建应用程序设置。
来自Youtube的教程

最新版本的Windows会自动在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist下的注册表中维护此信息。

使用ROT13对数据进行模糊处理,但这很容易“解密”。 免费的实用程序 (带有源代码)可用,可以作为您的起点。

  1. 您可以在每次程序启动时向数据库或Web服务发送消息(假设存在网络连接)。

  2. 您可以继续使用某种forms的硬件,而不是标准存储设备(因此技术上不是文件)。

  3. 您可以创建一个您保留计数的注册表项(如果您忽略了注册表项在某种程度上持久保存到某个文件中的事实)。

  4. 你可以在某个地方跟踪一个跟踪计数的文件。 不知道你为什么一开始就这么反对这个……

如果您正在运行Winforms应用程序,则可以轻松使用“应用程序设置”。 右键单击解决方案名称 – >属性 – >设置选项卡。 更多信息和教程在这里。

然后,每次程序启动时,递增此设置并保存。

参考: 计算程序启动的次数

据我所知,Windows不会为您保留此信息。 您必须在某处(文件,数据库,注册表设置)计算值。

更好的方法是应用程序设置 :

在app.config中创建设置,然后将其用作:

 Properties.Settings.Default.FirstUserSetting = "abc"; 

那么,您通常在主窗体的Closing事件处理程序中执行此操作。 以下语句用于保存设置方法。

 Properties.Settings.Default.Save(); 

使用注册表实现:

 static string AppRegyPath = "Software\\Cheeso\\ApplicationName"; static string rvn_Runs = "Runs"; private Microsoft.Win32.RegistryKey _appCuKey; public Microsoft.Win32.RegistryKey AppCuKey { get { if (_appCuKey == null) { _appCuKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(AppRegyPath, true); if (_appCuKey == null) _appCuKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(AppRegyPath); } return _appCuKey; } set { _appCuKey = null; } } public int UpdateRunCount() { int x = (Int32)AppCuKey.GetValue(rvn_Runs, 0); x++; AppCuKey.SetValue(rvn_Runs, x); return x; } 

如果它是WinForms应用程序,您可以挂钩Form的OnClosing事件以运行UpdateCount。

然后使用C#检查教程以从注册表中读取,写入和删除