Hallo,
kurz zum Hintergrund. Wir haben in der Produktion verschiedene HDMI-PC and Bildschirmen hängen, damit die Produktionsmitarbeiter Qualitäts Daten in eine Excel eingeben können. An mnchen Stellen hängen auch 2 Monitore um gleichzeitig zur Eingabe noch Produktionsdaten anzuzeigen. Da solche PC immer ein gefundenes Fressen für Nachtschichten ist, habe ich eine kleine KioskApp erstellt, die beim Starten des PC direkt gestartet wird (über die Registry die Shell ersetzt).
Nun ist es so, das wenn ein Mitarbiter den Button für Excel drückt und dann Excel minimiert, das dann Excel im Hintergrund ist (kann durch Alt+Tab wieder gefunden werden). Das führt dann dazu, dasdie Mitarbeiter Excel über den Button wieder öffnen.
Da beim Öffnen von Excel eine bestimmte Datei geöffnet wird, gibt es hier halt das Problem, das die Datei dann durch die andere Instanz von Excel gesperrt ist.
Ich hab keine Möglichkeit gefunden, Excel nur einmal zu starten (gibt glaub nur nen Registry Eintrag). Also gehe ich nun so vor, das ich den Button beim Starten Excel auf Enabled = false setze und beim Beenden von Excel wieder auf true.
Das ganze sieht so aus:
Nun wollte ich fragen, ob dies so richtig ist, oder ob es anders/besser gelöst werden kann.
Die StartPrcoess Methode habe ich erstellt, weil es teilweise 3 bis 6 Button sind, die dort behandelt werden müssen.
Danke Euch
kurz zum Hintergrund. Wir haben in der Produktion verschiedene HDMI-PC and Bildschirmen hängen, damit die Produktionsmitarbeiter Qualitäts Daten in eine Excel eingeben können. An mnchen Stellen hängen auch 2 Monitore um gleichzeitig zur Eingabe noch Produktionsdaten anzuzeigen. Da solche PC immer ein gefundenes Fressen für Nachtschichten ist, habe ich eine kleine KioskApp erstellt, die beim Starten des PC direkt gestartet wird (über die Registry die Shell ersetzt).
Nun ist es so, das wenn ein Mitarbiter den Button für Excel drückt und dann Excel minimiert, das dann Excel im Hintergrund ist (kann durch Alt+Tab wieder gefunden werden). Das führt dann dazu, dasdie Mitarbeiter Excel über den Button wieder öffnen.
Da beim Öffnen von Excel eine bestimmte Datei geöffnet wird, gibt es hier halt das Problem, das die Datei dann durch die andere Instanz von Excel gesperrt ist.
Ich hab keine Möglichkeit gefunden, Excel nur einmal zu starten (gibt glaub nur nen Registry Eintrag). Also gehe ich nun so vor, das ich den Button beim Starten Excel auf Enabled = false setze und beim Beenden von Excel wieder auf true.
Das ganze sieht so aus:
C#-Quellcode
- private void StartProcess(Button btn, string processname)
- {
- btn.Enabled = false;
- Process proc = new Process();
- proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
- proc.StartInfo.FileName = processname;
- proc.EnableRaisingEvents = true;
- proc.Exited += new EventHandler((sender,e) => Process_Exited(sender,e,btn));
- proc.Start();
- }
- private void EnableButton(Button btn)
- {
- btn.Enabled = true;
- }
- private void Process_Exited(object sender, EventArgs e, Button b)
- {
- if(this.InvokeRequired)
- {
- this.Invoke((Action)(() => EnableButton(b)));
- return;
- }
- EnableButton(b);
- }
- private void btnExcel_Click(object sender, EventArgs e)
- {
- StartProcess(btnExcel, "Excel.exe");
- }
Nun wollte ich fragen, ob dies so richtig ist, oder ob es anders/besser gelöst werden kann.
Die StartPrcoess Methode habe ich erstellt, weil es teilweise 3 bis 6 Button sind, die dort behandelt werden müssen.
Danke Euch
"Hier könnte Ihre Werbung stehen..."