Hallo zusammen,
ich will mit LabView über ActiveX ein Gerät ansprechen. Jetzt hab ich das Problem, dass beim Aufruf einer ActiveX-Funktion immer eine MessageBox aufgeht, welche vom Benutzer bestätigt werden muss, bevor es weitergeht (die Msg-Box kann leider nicht deaktiviert/umgangen werden und der Hersteller kann mir keine Lib liefern, bei welcher diese Msg-Box nicht aufgeht
[
attachment=37859]
Wenn ich das LabView-Testprogram Step für Step durchgehe, kommt der entsprechende Dialog und ich kann ihn bestätigen. Wenn ich das Program jedoch normal startet, schlägt die entsprechende ActiveX-Funktion fehl.
Gibt es eine Möglichkeit, mit LabView automatisch ein solches Fenster zu bestätigen?
Viele Grüße,
tbd
EDIT jg: Crosspost: http://labviewportal.eu/viewtopic.php?f=13&t=4263
Soweit ich weiß nicht. Wenn ich (in LabVIEW) ein Dialogfenster programmiere, dann will ich ja auch, dass das angezeigt wird.
Ich würde das Fenster sonst gar nicht erst aufpoppen lassen.... Was ist das denn für ein Gerät / Hersteller? Vielleicht gibt's ja auch Alternativen zu ActiveX.
Gruß Markus
Die Alternative ist, dass ich mich direkt auf die RS232 setze und das Protokoll zum Gerät selbst implementiere, das wollte ich aber vermeiden. Der Hersteller hat eingesehen, dass der entsprechende Dialog bei dieser ActiveX-Funktion sinnfrei ist, kann mir aber kein Software-Update liefern (die Software wird nicht mehr gepflegt). Leider bin ich der erste, der das Gerät via LabView ansteuern will.
Nochmal zur Klärung: Das Dialog-Fenster mach ich nicht von LabView aus auf, sondern es wird von der ActiveX-Lib geöffnet. Ich würde es nur gerne von LabView aus bestätigen bzw. schließen, sodass die ActiveX-Funktion weiterarbeitet.
Wie schon gesagt. Ich kann mir nicht vorstellen, dass das geht, da ich ja auch nicht einfach ein Dialogfenster aus Jux programmiere, nur um meine Bediener zu ärgern.
Aber ich lasse mich gerne eines besseren belehren.
Gruß Markus
(23.12.2011 09:22 )tbd schrieb: [ -> ]Die Alternative ist, dass ich mich direkt auf die RS232 setze und das Protokoll zum Gerät selbst implementiere, das wollte ich aber vermeiden. Der Hersteller hat eingesehen, dass der entsprechende Dialog bei dieser ActiveX-Funktion sinnfrei ist, kann mir aber kein Software-Update liefern (die Software wird nicht mehr gepflegt). Leider bin ich der erste, der das Gerät via LabView ansteuern will.
Nochmal zur Klärung: Das Dialog-Fenster mach ich nicht von LabView aus auf, sondern es wird von der ActiveX-Lib geöffnet. Ich würde es nur gerne von LabView aus bestätigen bzw. schließen, sodass die ActiveX-Funktion weiterarbeitet.
Noch was Konstruktives: Wir hatten mal einen langen Thread, in dem eine c#-Exe "ferngesteuert" wurde:
http://www.labviewforum.de/Thread-C-Prog...V-aufrufen
Mglw. ist da was drin, ist aber auch nicht ohne.
Vielleicht bist du doch schneller beim Nachprogrammieren des RS-232 Protokolls. Wenn die ActiveX-Lib vom Hersteller nicht mehr gepflegt wird, dann ist der Zeitpunkt abzusehen, wenn sie unter irgendeiner neueren Windows-Version nicht mehr läuft. Und dann stehst du sowieso vor der Aufgabe, das Protokoll zu programmieren.
Gruß, Jens
Das kann man über die Windows API machen (user32.dll).
Ungetestet sollte dieser Quellcode dein Problem lösen.
Edit:
Evt. funktioniert auch das Snipped

hab jetzt direkt das RS232-Protokoll implementiert, somit hat sich das Problem für mich erledigt. Danke für die Tipps!