Suchergebnisse

Suchergebnisse 1-13 von insgesamt 13.

  • Benutzer-Avatarbild

    Moin Moin, ich stehe gerade voll auf dem Schlauch... vermutlich zu lange rumprobiert. Ich möchte aus meiner Form eine Anwendung starten, habe testweise die notepad.exe genommen. Das klappt ja auch. Nun möchte ich jedoch auch eine MsgBox ausgeben, wenn der Prozess beendet wurde, kann mir jemand sagen, was ich falsch mache? Habe das Ganze momentan im Timer.Tick-Event. VB.NET-Quellcode (20 Zeilen)

  • Benutzer-Avatarbild

    Ja, die Funktion ist bereits die Richtige. Das Ganze funktioniert bei mir jedoch nur mit notepad. Ich habe mal eine andere Anwendung, keine Windows-eigene, benutzt und dann meckert er. Ich vermute, dass ich bei prc.StartInfo.FileName nicht den kompletten Pfad zur EXE angeben darf, sondern nur den Namen der EXE selbst, oder?

  • Benutzer-Avatarbild

    Ich hatte mein Problem falsch beschrieben. Da ich ja im Timer.Tick-Event gearbeitet habe, habe ich das p.count beibehalten, da ich den Prozess ja nur ein Mal starten möchte. Ich hatte einfach vergessen, dass ich ja dann auch den Prozessnamen in meiner prog-Variable anpassen muss. Mit notepad hat es freilich geklappt, mit anderen Prozessen wurde einfach mein Bildschirm geflutet. Sorry für das Missverständnis.

  • Benutzer-Avatarbild

    Ich habe nochmal eine doofe Frage... Ich übergebe, wenn die Anwendung geschlossen wurde, ein True an eine externe Stelle. Da das Signal nicht immer richtig durch ging, habe ich eine Schleife erstellt, bis die Gegenstelle sagt, dass die Variable True ist. Das sieht beispielhaft so aus: VB.NET-Quellcode (9 Zeilen) Wenn ich nun in dem externen Programm die Variable wieder auf False setze, dann springt sie sofort wieder auf True. Wird das Sub prc_exit nach Beenden der Anwendung dauerhaft durchlaufen…

  • Benutzer-Avatarbild

    Die GUI ist nicht sooo wichtig, da sie lediglich zur Anzeige dient, aber stimmt schon einfrieren soll sie natürlich trotzdem nicht. Ich habe jetzt folgendes angelegt: VB.NET-Quellcode (13 Zeilen) Nun wird doch trotz des geänderten Aufrufs weiterhin meine Variable durch die Schleife dauerhaft überschrieben?

  • Benutzer-Avatarbild

    Ja, ich habe vor langer Zeit mal ein Event angelegt, weiß aber mittlerweile fast gar nichts mehr davon. Habe mich eben nochmal reingelesen, aber es klickt einfach nicht... Ich habe ja noch immer das Sub prc_exit von oben. Dort habe ich den Aufruf des Subs Prog_closing gemacht. Wie soll das RaiseEvent das nun stoppen bzw. verhindern, dass es erneut durchläuft? Das will mir nicht in den Kopf rein. Ist mir wahrscheinlich zu hoch...

  • Benutzer-Avatarbild

    Aus meinem Code heraus starte ich eine externe Anwendung. Sobald diese Anwendung beendet wird, soll eine Variable vom Typ Boolean an ein anderes System übergeben werden. Das Ganze läuft gerade mit deinem Codeschnipsel vom 29.12. (aus diesem Beitrag). An der Stelle, wo die MsgBox(„Prozess beendet“) erscheint, habe ich die Variable an das übergeordnete System auf True gesetzt. Es hat auch funktioniert, doch leider nicht immer. Die Messagebox kam übrigens immer. Daher dachte ich, dass in dem andere…

  • Benutzer-Avatarbild

    Ja, vom Prinzip her ist das so. Mein Programm bildet letztlich die Schnittstelle zwischen einer Software und einer kleinen SPS. Ich greife Signale aus der Software ab und gebe sie weiter an die SPS. Ich kann zwar von ihr lesen und in sie schreiben, sie kann jedoch nicht von mir lesen.

  • Benutzer-Avatarbild

    Die SPS startet ein Programm X und mein Programm belauscht dieses. Die Kommunikation findet über TCP statt. Sobald das Programm X beendet wird, möchte ich ein Signal an die SPS geben. Ich habe schnell mal den Code von meinem Werkstatt-Rechner gezogen. VB.NET-Quellcode (5 Zeilen) Nun ist es halt so, dass das Signal nicht immer durch geht...

  • Benutzer-Avatarbild

    wenn ich mein geschriebenes lese, dann könnte ich es auch so interpretieren, aber es ist doch etwas anders. Die SPS gibt ein Signal an mein Programm. Dann startet mein Programm das Programm X. Wenn Programm X geschlossen wird, dann meldet dies mein Programm zurück an die SPS. Mein Programm ist quasi die Schnittstelle zwischen SPS und Programm X. Mein Programm und Programm X laufen beide auf Windows.

  • Benutzer-Avatarbild

    Ja, genau das habe ich getan. Das Signal geht aber nicht immer durch. Meine Vermutung: Die SPS arbeitet ja zyklisch und liest nur zu Beginn eines neuen Zyklus die Signale. Wenn es während des Zyklus und dann auch nur ganz kurz kommt, dann merkt es die SPS nicht. Daher dachte ich an einen Handshake bzw. an die Schleife, die erst endet, wenn mein geschriebenes Signal als True gelesen wird. Das wiederum geht nicht, da das Sub prc_exit mit der Schleife das Bit immer wieder auf True setzt, sprich das…

  • Benutzer-Avatarbild

    Nein, das geht nicht. Ich habe einen richtigen SPS-Prozessor vor mir, keine Soft-SPS. Leider kann auch kein weiteres Programm ablaufen. Ich hatte noch eine Lösungsmöglichkeit. Der SPS-Zyklus beträgt nur ein paar Millisekunden, trotzdem kommt es ja hin und wieder zu der Überschneidung. Es wäre dann theoretisch möglich, dass man das Bit für z.B. 3s auf True setzt und dann wieder auf False. Problem ist halt dabei wirklich, dass das Sub bei mir immer wieder durchlaufen wird.

  • Benutzer-Avatarbild

    Mein Gefühl sagte mir gestern noch, dass ich die Abfrage mit in den Timer packen sollte und damit geht es Ich danke dir auf jeden Fall für die Hilfe und vor allem für die Zeit. Es ist schön und gut, dass es solche Foren gibt. (Versteckter Text)