Hallo LabVIEW-Gemeinde,
ich bin mal wieder an einem Punkt angelangt, wo sich wahrscheinlich doch noch grundlegende Verständnisprobleme hinsichtlich der LV-Philosophie offenbaren...
Sachstand:
Ich habe ein "Progrämmchen", dass in seiner Grundstruktur aus einer Ereignis-Steuerung besteht, umgeben mit einer While-Schleife. Auf dem Frontpanel sind nun einige Bedienelemente, über sich ich eine "Aktion" auslösen kann (Inhalt der Ereignis-Cases).
Soweit alles wunderbar.
Problembeschreibung (in Textform, sorry, meine LV-Lizenz läuft auf einem Stand-Alone Rechner):
Ein Kollege arbeitet an einer anderen Problemstellung und nutzt zu dessen Lösung ein VisualBasic-Programm >>ACHTUNG! Fokus!!!<<. Dabei kann er ab und an das Ergebnis einer "Aktion" aus meinem LabVIEW-Programm ganz gut gebrauchen >>keine Fokus!!<<.
Meine bescheidene Idee:
Ein beliebiges System-Ereignis abfangen (generiert aus der VB-Anwendung) und den entsprechenden Ereignis-Case im LV-Programm um genau dieses System-Ereignis erweitern.
Ich wähle das Drücken der Taste "M"!
Hürde #1: Timeout-Steuerung darf nicht (-1) sein.
Lösung Hürde #1: Timeout-Steuerung auf (0) setzen und While-Schleife per Timing verlangsamen.
Hürde #2: Der >>FOKUS<< liegt bei der eigentlichen VB-Anwendung nicht mehr bei meinem VI.
Lösung Hürde #2: Aus der Palette "Konnektivität" schnappe ich mit die Tastatur (Referenz-Erzeugung ausserhalb der While-Schleife) und greife damit in schöner Regelmäßigkeit (innerhalb der While-Schleife) auf den Tastaturpuffer zu. Da ich mit dem Puffer irgendwohin muss, füge ich direkt die Array-Funktion (letztes Element löschen) an, die wiederum sagt, welches Element gelöscht wurde. Ist es mein "M" das soll ein Boolsches-Element (ich verstecke es und nenne es "M-Flag") den Wert TRUE annehmen, sonst Eigenschaft behalten (FALSE). Funktioniert!
Probe Hürde #2: LV-Programm starten, irgendeine andere Anwendung aufrufen und "M" drücken. Voilá, auf dem Frontpanel im Hintergrund geht mein "M-Flag" an.
Hürde #3: Das "M-Flag" in meine Ergeignis-Struktur aufnehmen.... Und da kracht es
Wenn ich in meine gewünschte "Aktion" ein zweites Ereignis mit aufnehme, und zwar "M-Flag Wertänderung", funktioniert genau... NICHTS.
Im Hindergrund leuchtet zur Kontrolle zwar mein "M-Flag" auf (also Wertänderung tritt ein), aber die Ereignisstruktur springt nicht in die "Aktion".
Hier bin ich mit meinem Latein am Ende
Wahrscheinlich ist aber auch schon meine Ereignisstruktur eine dusslige Idee
bzw. einfach nicht mit der Problemstellung kompatibel.
Vielen Dank schon mal im Voraus für hilfreiche Tipps (Kopfnuss warum es net geht) bzw. für richtige Lösungen/Herangehensweisen für mein Problem!
PS: Nur der Vollständigkeit halber - LV8.6 auf WXP, ist hier aber wahrscheinlich gar nicht relevant.