質問

process.info、process start(); を使用しています。C#.netでボタンをクリックしてexeを呼び出すと、ボタンをクリックするたびにexeが呼び出され、タスクバーに重複したファイルが開きます。すでにタスクバーにあるexeを最大化したいのです。

ボタンをクリックすると同じファイルが何度も開かれるという問題に直面しています。exeファイルを一度だけ開き、ボタンをクリックすると、すでに開いている場合は重複したエントリを作成するのではなく、exeファイルを最大化できる方法はありますか?

役に立ちましたか?

解決

Process.Start() を返します Process 物体。あなたができることは、クラス変数を持つことです(たとえば、 Process startedProcess;) ボタンをクリックすると初期化されます。その変数が null の場合は、プロセスがまだ開始されていないことを意味するため、アプリケーションを起動する必要があります。それ以外の場合は、すでに実行されているため、無視する必要があります。

基本的な例を次に示します。

Process startedProcess = null;

public void button1_Clicked(object sender, EventArgs e)
{

     if ( startedProcess == null )
          startedProcess = Process.Start("path\\to\\process.exe");

}

アプリケーションがすでに実行されている場合にそのウィンドウに自動的に切り替えたい場合、.NET にはこれをネイティブに行うための組み込みメソッドがありません。user32.dll から DLLImports を実行する必要があります。例はこのページのコメントにあります。 http://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx

他のヒント

これは右足であなたを下車する必要があります。 http://www.webdevbros.net/2007/11 / 14 / singeltonアプリケーション-WITH-C /

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top