2

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

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

4

2 に答える 2

1

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

于 2010-02-06T21:31:46.693 に答える
0

これで右足で降りることができます: http ://www.webdevbros.net/2007/11/14/singelton-application-with-c/

于 2010-02-02T06:13:26.450 に答える