2016-06-29 40 views
0

Ich rufe eine andere Form exe-Datei in mein Hauptformular, aber ich wollte nicht angezeigt werden, es muss sichtbar sein. Dann muss ich die EXE-Datei schließen, wenn ich auf die Schaltfläche klicke.So führen Sie sichtbar und schließen Prozess, wenn Button klicken

Ich nenne meine andere Form exe Verwendung des Codes

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "C:\\Users\\server.exe"; 
Process.Start(startInfo); 

mir bitte helfen, wie es sichtbar laufen?

der, wenn ich das exe schließen muß i verwenden

Process.Kill(); 

Eine Objektreferenz wird für die nicht-statisches Feld, eine Methode oder Eigenschaft 'Process.Kill()' erforderlich

Ich bekomme diesen Fehler.

mir helfen, wie man eine andere exe als sichtbar öffnet? und wie man es bei Klick auf die Schaltfläche schließt

+0

Wenn Sie Process.Start aufrufen, wird die exe gestartet werden und wenn das exe ein Fenster hat, wird das Fenster sichtbar sein. –

Antwort

1

Ihre zweite Frage zu beantworten:

Kill() ist ein Instanz Methode von Process, aber sie versuchen, es zu nennen wie ein statische Methode.

Sie benötigen die Process Instanz von Process.Start() zurück verwenden und Kill() an diesem Beispiel nennen:

Process myProcessInstance = Process.Start(startInfo); 
//... 
myProcessInstance.Kill(); 

Für Ihre erste Frage: Ich kann nicht vollständig Ihr Problem verstehen Sie? Haben Sie möchten das Fenster angezeigt werden oder nicht? Sollte es sichtbar sein oder in sichtbar? Und was passiert (sehen Sie es oder nicht), wenn Sie Ihren aktuellen Code ausführen?

Sie können sich ProcessStartInfo.CreateNoWindow und ProcessStartInfo.WindowStyle Eigenschaften ansehen.

Wenn Sie das von der * .exe erstellte Formular nicht sehen möchten, können Sie dies unglücklicherweise nicht einfach über die ProcessStartInfo auslösen. Sie müssen die Windows-API zum Auflisten der Fenster des gestarteten Prozesses verwenden und über diese API auf diese Fenster zugreifen. Here is a starting point.

Wenn der server.exe von Ihnen erstellt wird, können Sie darüber nachdenken, ihm einige Befehlszeilenargumente zu geben, damit er die Formulare nicht anzeigt.

+0

Meine erste Frage ist, dass ich meine EXE-Datei nicht zeigen möchte. ich möchte meine exe als sichtbar machen = falsch; – Divi

+0

@Divi hat die Antwort aktualisiert, aber es ist keine einfache Sache. –

+0

Danke Freund für deine Hilfe ... Ich mache meine Form als verborgen mit Hilfe von Opazität = 0%. – Divi

1

Sie müssen Sie in einer Variablen verarbeiten, speichern:

Process process = Process.Start(startInfo); 

process.Kill();