ファイルを保持して集計せずに、プログラムが以前に c# で実行された回数を取得するにはどうすればよいですか。カウントを確認するためのアプリケーションクラスまたはC#の何かがありますか。私はそれについて何も知らないので、詳細な説明をしてください。これは、Windows フォームではなく、Windows コンソール アプリケーションです。
5 に答える
でエントリを作成することで、それを行うことができますRegistry
。もう 1 つの方法は、 を使用することApplication Settings
です。
しかし、私が好むApplication Settings
のは、やるべき仕事が少ないからです。
こちらを参照してください: アプリケーション設定の作成.
YouTube のチュートリアル
プログラムが起動するたびに、データベースまたは Web サービスにメッセージを送信できます (ネットワーク接続があると仮定します)。
標準のストレージ デバイスではない (したがって、技術的にはファイルではない) 何らかの形式のハードウェアを数えることができます。
カウントを保持するレジストリ エントリを作成することもできます (レジストリ エントリがあるレベルで、どこかのファイルに永続化されているという事実を無視した場合)。
カウントを追跡するファイルをどこかに置くことができます。そもそもなぜこれに反対するのかわかりません....
私の知る限り、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アプリの場合は、フォームのOnClosingイベントをフックしてUpdateCountを実行できます。
次に、チュートリアルを確認して、C#を使用してレジストリの読み取り、書き込み、および削除を行います。
Winforms アプリケーションを実行している場合は、アプリケーション設定を簡単に使用できます。ソリューション名を右クリック --> [プロパティ] --> [設定] タブ。 詳細とチュートリアルはこちら。
次に、プログラムが起動するたびに、この設定をインクリメントして保存します。