GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » LVUG » LVUG - Technische Fragen » LabVIEW Anwendung als ActiveX Server
LabVIEW Anwendung als ActiveX Server [message #3047] Mon, 03 April 2006 19:04 Go to next message
Heinrich Eidloth is currently offline  Heinrich Eidloth
Messages: 9
Registered: March 2005
occasional visitor
From: *dip.t-dialin.net
Hallo zusammen,
dies ist meine erste Anfrage, und gleich zum Thema ActiveX.
Gibt es eine Möglichkeit, innerhalb einer LabVIEW-Exe (als ActiveX-Server erstellt) festzustellen, ob diese Anwendung über einen ActiveX-Aufruf gestartet wurde, oder ganz normal (also
Shortcut)?

Ich muß in dieser Anwendung abhängig von der Art des Aufrufs verschiedene Sachen machen.

Hat da vielleicht jemand eine Idee oder einen Tip?

Besten Dank im voraus

Heinrich (der Neue) Very Happy
Re: LabVIEW Anwendung als ActiveX Server [message #3048 is a reply to message #3047] Mon, 03 April 2006 20:30 Go to previous messageGo to next message
Brand is currently offline  Brand
Messages: 180
Registered: January 2004
Location: GSI - SB2 2.256
first-grade participant
From: *dip0.t-ipconnect.de
Hi Heinrich,
Du könntest Dein Problem über Kommandozeilen Parameter lösen.

Wenn Du Deine LabVIEW Applikation lokal startest, gibst Du die Paramter an. Wenn Du die Applikation als AxtiveX-Objekt startest, fehlen diese halt und daran erkennst Du es.

DOS Prompt> ApplicationKind.exe -- /number:2,000000 "/string:local" /boolean:1

Ein Beispiel findest Du mit Hilfe des Example Finders->Index, Suchbegriff: Command; VIs: CommandLine.vi und Description.vi

Über die Eigenschaft Application.Kind findest Du darüber hinaus heraus ob Du das VI in der Entwicklungsumgebung oder als Executable gestartet hast.

Ich habe ein kleines LV8-Projekt und das Blockdiagramm als Bitmap angehängt. Für LV7 musst Du es halt selbst implementieren.

Ich hoffe, dieser Lösungsansatz hilft Dir.

Gruß Holger
Re: LabVIEW Anwendung als ActiveX Server [message #3049 is a reply to message #3048] Tue, 04 April 2006 06:18 Go to previous messageGo to next message
Heinrich Eidloth is currently offline  Heinrich Eidloth
Messages: 9
Registered: March 2005
occasional visitor
From: systec-gmbh.com
Hallo Holger,

danke erst mal für die schnelle Antwort.
Geht's irgendwie auch ohne Kommandozeile?
Daran hatte ich auch schon gedacht. Mich stört allerdings daran, daß diese Art editierbar ist.

Wenn jetzt jemand (sei es aus Versehen oder Absicht) den Parameter
löscht oder sonstwie verändert, kann er die Anwendung u.U. nur noch über den Task-Manager beenden. Und dieses möchte ich ganz gerne vermeiden.

Heinrich
Re: LabVIEW Anwendung als ActiveX Server [message #3050 is a reply to message #3049] Tue, 04 April 2006 09:00 Go to previous messageGo to next message
Brand is currently offline  Brand
Messages: 180
Registered: January 2004
Location: GSI - SB2 2.256
first-grade participant
From: denbg014.gsi.de
Hi Heinrich,
ich dachte zuerst, dass es mit der App.Kind Eigenschaft herauszubekommen ist. Aber ich habe das damit leider nicht geschafft und eine andere Möglichkeit ist mir auch nicht eingefallen.

Vielleicht hat ja noch ein anderer LVUG-Fan eine gute Idee.

Gruß Holger
Re: LabVIEW Anwendung als ActiveX Server [message #3138 is a reply to message #3050] Fri, 12 May 2006 17:18 Go to previous messageGo to next message
Sören Ebser is currently offline  Sören Ebser
Messages: 2
Registered: May 2006
occasional visitor
From: ns.marquardt.de
Hallo Heinrich,
Versuch doch den Ansatz von Holger anders herum:
Übergib bei einem ActiveX-Aufruf einen Parameter/Setze ein Frontpanelwert o.ä. und tue das beim Kommandozeilenaufruf eben nicht.
Dann kann der Aufruf nicht so leicht versehentlich verändert werden. Im Programmcode spielt man nicht so schnell rum wie mit einem Shortcut.

... aber wenn ich mir so das datum ansehe ist das Problem vermutlich ohnehin schon gelöst.

Gruß,
Sören
Re: LabVIEW Anwendung als ActiveX Server [message #3256 is a reply to message #3047] Thu, 22 June 2006 15:06 Go to previous messageGo to next message
Christian Winklmeier
Messages: 2
Registered: June 2006
occasional visitor
From: vproxy01.bmwgroup.com
Hallo Heinrich,
ich weiß ja nicht, ob Dein Problem schon gelöst ist, aber es gibt eine ganz einfache Möglichkeit zu erkennen, ob deine Applikation über Shortcut oder über ActiveX-Aufruf gestartet wurde.

Wenn dein Programm über ActiveX gestartet wurde, dann wird vom System der Kommandozeilen-Parameter "Automation" übergeben.
Ich verwende LabVIEW 7.0 und 8.0.

Habe Dir ein Beispiel-VI angehängt, mit dem ich teste, ob ein Parameter übergeben wurde.


Gruß
Christian
  • Attachment: Param.jpg
    (Size: 23.04KB, Downloaded 712 times)
Re: LabVIEW Anwendung als ActiveX Server [message #3258 is a reply to message #3256] Fri, 23 June 2006 11:57 Go to previous messageGo to next message
Heinrich Eidloth is currently offline  Heinrich Eidloth
Messages: 9
Registered: March 2005
occasional visitor
From: *dip.t-dialin.net
Hallo Christian,

danke für deine Antwort Very Happy

Habe ich das richtig gelesen?
Wenn ich die Anwendung via ActiveX starte, kriege ich automatisch diesen Kommandozeilenparamter übergeben?

Das ist genau das, was ich brauche Very Happy

Momentan setze ich ein Frontpanelelement. Das geht zwar auch, aber auf deine Art ist es wesentlich besser.

Danke
Heinrich
Re: LabVIEW Anwendung als ActiveX Server [message #3259 is a reply to message #3258] Fri, 23 June 2006 12:11 Go to previous messageGo to next message
Christian Winklmeier
Messages: 2
Registered: June 2006
occasional visitor
From: vproxy01.bmwgroup.com
Hallo Heinrich,

ja, wenn Du über ActiveX die Applikation startest, dann bekommst Du den Kommandozeilenparamter "Automation" übergeben.

Die LabVIEW-Applikation trägt sich beim ersten Start selbst in die Registry ein und bildet dabei unter LocalServer und LocalServer32 folgenden Programmaufruf:
z.B. "C:\Programme\Ordner\Appl.exe /Automation"

Denke, das müsste bei Dir genauso sein. Falls nicht, dann brauchst Du nur den Aufruf mit dem Parameter so zu ändern.


Gruß
Christian
Re: LabVIEW Anwendung als ActiveX Server [message #3293 is a reply to message #3259] Wed, 05 July 2006 18:39 Go to previous message
Heinrich Eidloth is currently offline  Heinrich Eidloth
Messages: 9
Registered: March 2005
occasional visitor
From: *dip.t-dialin.net
Hallo,

das mit dem Registry-Eintrag funktioniert bestens.
Nun möchte ich das Ganze modifizieren.
Dazu brauche ich allerdings die Clsid meines Servers. Über die Clsid finde ich in der Registry dann die Kommandozeile, der ich dann weitere Parameter anhängen kann.

Mein Problem ist, daß ich mit dem Registry-Editor unter HKEY_LOCAL_ROOT\<app.name>.Application zwar einen Key "Clsid" mit einem Schlüssel "(Standard)" finde, welcher die Clsid enthält. Ich kann aber diesen Schlüssel mit den LAbVIEW-VIs für Registryzugriffe nicht lesen.
Hat da vielleicht einer eine Idee, oder noch besser eine Lösung?

Gruß
Heinrich
Previous Topic: USB I/O-Kommunikation mit DMM M-3890DT (Fa. Conrad) ?
Next Topic: Treiber für intelligente Nanotec-Schrittmotoren
Goto Forum:
  


Current Time: Fri Apr 19 00:50:49 CEST 2024

Total time taken to generate the page: 0.00992 seconds