2012-03-31 11 views
3

Kann mir jemand sagen, wie kann ich .exe-Datei auf Knopfdruck mit C# schließen. Ich habe eine Vorstellung davon, wie EXE-Datei auf die Schaltfläche klicken mit C# laufen wie folgt:wie Sie .exe-Anwendung auf Knopf klicken klicken

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

Aber kann mir jemand sagen, wie EXE-Anwendung auf die Schaltfläche klicken in C# schließen?

Antwort

1

könnten Sie verwenden:

Process.Kill(); 

Oder alle Instanzen von Notepad töten Sie tun können:

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

Ich glaube nicht, die Frage ist, wie alle Notizblöcke auf dem Computer zu töten sind. – svick

+1

ich denke, es sagt ziemlich viel OP, wie man es in einem Szenario verwendet. – nawfal

+0

@nawfal, tut es jetzt, aber als ich meinen Kommentar schrieb, war diese Antwort nur der zweite Teil des Codes ohne Erklärung. – 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

Warum verwenden Sie 'GetProcessById()' haben Sie bereits einen 'Prozess'? – svick

+0

Ich habe proccess zuerst dann iteriert sie, um den Prozess in Bezug auf Titelleiste Text zu finden und dann schließen Sie das –

+0

Aber das erklärt nicht, was ich frage. Warum rufst du 'proc.CloseMainWindow()' nicht einfach im 'if' an? – svick

4

Ich glaube, Sie CloseMainWindow() auf der Process anrufen möchten. Dies entspricht dem Klicken auf die Schließen-Schaltfläche des Fensters, sodass die Anwendung möglicherweise nicht geschlossen wird.

Wenn der Benutzer beispielsweise Text im Fenster bearbeitet, ihn aber nicht gespeichert hat, wird der Dialog "Möchten Sie Ihre Änderungen speichern?" Angezeigt.

Wenn Sie die Anwendung wirklich schließen möchten, egal was, können Sie Kill() verwenden. Dies kann zu Datenverlust führen (die Änderungen an der Datei werden nicht gespeichert), aber das ist möglicherweise kein Problem für Sie.

1

Sie sollten unter die Schaltfläche klicken so etwas schreiben:

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

Dies wird das aktuelle Fenster, wenn seine MDI child window schließen. Andernfalls wird die Anwendung geschlossen (vorausgesetzt, Sie haben nur ein Fenster geöffnet).

+0

Ich denke, die Abfrage war über einen Prozess schließen und nicht über ein MDI-Fenster schließen. –