2012-03-31 8 views
3

C#を使用してボタンをクリックしたときに.exeファイルを閉じるにはどうすればいいですか?ボタンをクリックすると.exeアプリケーションを閉じる方法

string str = @"C:\windows\system32\notepad.exe"; 
process.StartInfo.FileName = str; 
process.Start(); 

をしかし、誰がどのようにC#でボタンのクリックで.exeファイルのアプリケーションを閉じるように私に言うことができます。私は、次のようにC#を使用して、ボタンのクリックで.exeファイルを実行する方法のアイデアを持っていますか?

答えて

1

あなたは使用することができます

Process.Kill(); 

またはメモ帳のすべてのインスタンスを殺すためにあなたができる:

foreach (var process in Process.GetProcessesByName("notepad")) { 
    process.Kill(); 
} 
+0

私はコンピュータ上のすべてのメモ帳をどのように殺すのかという疑問はないと思います。 – svick

+1

私はそれがシナリオでそれを使用する方法をかなりOPに伝えると思います。 – nawfal

+0

@nawfal、それは今ですが、私がコメントを書いたとき、この答えは説明のないコードの第2の部分に過ぎませんでした。 – svick

1

あなたがProcess.Close()を求めますか?

+0

しかし、それは実際にアプリケーションを閉じるわけではありません。 – svick

0
processes = Process.GetProcessesByName(procName); 
    foreach (Process proc in processes) 
    { 
     if(proc.MainWindowTitle.equals(myTitle)) 
     {   
     proc.CloseMainWindow(); 
     proc.WaitForExit(); or use tempProc.Close(); 
     } 
} 
+3

'GetProcessById()'を使っているのはなぜですか?あなたはすでに 'Process'を持っていますか? – svick

+0

私はまずプロセスを見つけて、タイトルバーのテキストに関するプロセスを見つけてそれを閉じて、それを閉じます。 –

+0

しかし、それは私が求めていることを説明していません。 'if'の中で単に' proc.CloseMainWindow() 'を呼び出さないのはなぜですか? – svick

4

私はあなたがProcessCloseMainWindow()を呼びたいと思います。これは、ウィンドウの閉じるボタンをクリックするのと同じです。したがって、アプリケーションを実際に閉じることはできません。

たとえば、ユーザーがウィンドウ内のテキストを編集しても保存しなかった場合は、「変更を保存しますか?」というダイアログが表示されます。

実際にアプリケーションを終了したい場合は、何であれ、Kill()を使用できます。これによりデータが失われる可能性があります(ファイルの編集内容は保存されません)が、問題はありません。あなたはこのような何かをクリックし、ボタンの下に書くべき

1

:そのMDI child window場合

private void btnClose_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 

これは、あなたの現在のウィンドウを閉じます。それ以外の場合は、アプリケーションを終了します(1つのウィンドウしか開いていないと仮定します)。

+0

私は、クエリがプロセスを閉じていたとMDIウィンドウを閉じることではないと思う。 –

関連する問題