如何在不保留文件和计数的情况下获取程序先前在 c# 中运行的次数。c# 中是否有应用程序类或其他东西来检查计数。请给出详细的解释,因为我对此一无所知。这是一个 Windows 控制台应用程序,而不是 Windows 窗体。
5 回答
你可以这样做,我在Registry
. 另一种方法是使用Application Settings
.
但我更喜欢Application Settings
它,因为它要做的任务更少。
请参阅此处:创建应用程序设置。
来自 Youtube 的教程
每次程序启动时,您都可以向数据库或 Web 服务发送一条消息(假设有网络连接)。
您可以计算某种形式的硬件,它不是标准存储设备(因此在技术上不是文件)。
您可以创建一个注册表项来保存计数(如果您忽略注册表项在某个级别上保存在某个文件中的事实)。
你可以在某个地方有一个文件来跟踪计数。不知道你为什么一开始那么反对这个....
如果您正在运行 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# 从注册表中读取、写入和删除