2016-06-15 7 views
0

Ich habe eine Anwendung, die einen filialialog öffnet, wenn die Schaltfläche Durchsuchen gedrückt wird, und ich kann bis zu 5 exe's auswählen und wenn ich Start starte, startet sie alle um zur gleichen Zeit .. Einfach richtig?Öffnen und Schließen von EXE-Dateien über C# mit einem Timer. NET

Ich muss es so machen, wenn ich Start drücke startet es die Software aber es schließt sie wieder nach einer gewissen Zeit, und es kommt diese Zeit von den Benutzern valie, dass sie in eine Textbox eingeben .. Ich nicht wirklich weiß, wie man den Process.Start (FileName) mit einem Timer mit den Textboxen und dem Timer verbindet.

Wie würde ich die Struktur dafür bauen? d. h.

Erstellen Sie einen Timer.
Verwenden Sie das Timer-Intervall, um eine bestimmte Anzahl von Millisekunden festzulegen.
verbinden den Timer mit dem Code

Das ist, wie ich die Anwendung sehen gebaut, ich, es würde tot ry, aber wusste nicht, wo ich anfangen soll.

This is what the application looks like

+0

Ich denke, alles, was Sie beschrieben, ist machbar. Beginnen Sie mit den Grundlagen, brechen Sie das Problem in kleinere Teile und versuchen Sie, Ihre Ideen zu programmieren. – Alex

Antwort

2

Ja, einen Timer laufen lassen und dann nach x Millisekunden werden, ein Process.Kill zu ihnen.

Sie auch so etwas wie die folgenden tun könnten, indem separate Threads für jeden:

Task.Run(() => 
{ 
    // start the process and keep track of it 
    var theProcess = Proces.Start(one of the porcesses); 

    // sleep for your desired number of milliseconds. 
    Thread.Sleep(5000); 

    // end the process (violently :) 
    theProcess.Kill(); 
}); 

Wenn Sie Ihre EXE-Dateien in einer Liste haben, können Sie auch mit einem Parallel.ForEach den obigen ähnlich tun() :

Parallel.ForEach(filenames, (file) => 
{ 
    var theProcess = Process.Start(file); 
    Thread.Sleep(5000); 
    theProcess.Kill(); 
}); 
+0

Ich sehe, woher kommst du, aber wie schließe ich das Benutzereingabeintervall an die Software an mache ich etwas wie timer.interval(); könnte sein? – JonathanCoal

+0

@ JonathanCoal Ja, ein einfacher Timer wird funktionieren. http://www.dotnetperls.com/timer – CathalMF

+0

@Joehl i halten den Fehler bekommen kann Zeichenfolge nicht konvertieren von dieser private void timer1_Tick (object sender, EventArgs e) { var firstProcess = Process.Start (textBoxFirst int .Text); Thread.Sleep (MinTextBoxFirst.Text); } – JonathanCoal

Verwandte Themen