.net CompactFramework3.5で実行されているハンドヘルドデバイスでの複数インスタンスの問題を阻止するために多くの方法を試したので。
現在、「Mutex」を作成して同じプロセスが実行されているかどうかを確認することで解決策を得ました。このステートメントを「Program.cs」に入れます。これは、プログラムの起動時に最初に実行されます。
しかし、実行中に「プログラムアイコン」を無効にする必要があるというユーザーからのリクエストがあったため、問題が発生したわけではないと思います。
短期間に何度もプログラムを「開く」ことがあるというユーザーの意見を理解しています。だから、それでも「開く」ことができれば。つまり、プログラムはそれ自体を初期化する必要があり、最終的に失敗する可能性があります。複数のインスタンスを完全に防ぐことは可能ですか?または、Windows CEでレジストリを編集するなど、プログラミングを行わない別の方法はありますか?
これが私のソースコードです:
bool firstInstance;
NamedMutex mutex = new NamedMutex(false, "MyApp.exe", out firstInstance);
if (!firstInstance)
{
//DialogResult dialogResult = MessageBox.Show("Process is already running...");
Application.Exit();
}
NamedMutexはOpenNetCFのクラスです。