私が作成しているアプリには通知アイコンが含まれており、バックグラウンドでアクティブな状態を維持する方法です (まあ、一種の)。問題は、ユーザーがアプリのアイコンをクリックすると、アプリが再び起動することです。そのため、2 つの通知アイコンと 2 つのアクティビティがバックグラウンドで表示され、2 つのすべてが表示されます。そして、ユーザーがアイコンをもう一度クリックすると、それらすべてが 3 つ表示されるので、どういうわけかこれを停止する必要があります。私はフラグを設定し、その値をレジストリに設定するという考えを持っています.私のアプリが起動したいときは、フォームロードイベントで値を読み取ってアプリを終了します. しかし、私はそれに対処するためのより専門的な方法が必要です。たとえば、まったく開始されていません。
質問する
171 次
2 に答える
1
アプリが作成する何らかの形式のグローバル ミューテックス/イベント ハンドルを作成し、開いているルーチンでそれが存在することを確認します。存在する場合は、スタートアップ ルーティングを終了します。
この回答には(別の問題のために)いくつかの基本的なコードがありますが、それはあなたが何をしようとしているのかを示しています。
于 2013-03-03T14:07:58.487 に答える
1
これは、この回答の複製であるこの回答からのものです。アプリが既に実行されているかどうかについては、アプリのエントリ コンストラクターをチェックインします。
static void Main()
{
Process currentProcess = Process.GetCurrentProcess();
var runningProcess = (from process in Process.GetProcesses()
where
process.Id != currentProcess.Id &&
process.ProcessName.Equals(
currentProcess.ProcessName,
StringComparison.Ordinal)
select process).FirstOrDefault();
if (runningProcess != null)
{
ShowWindow(runningProcess.MainWindowHandle, SW_SHOWMAXIMIZED);
return;
}
}
于 2013-03-03T14:13:20.530 に答える