LabVIEWForum.de
.net System Tray - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: .net System Tray (/Thread-net-System-Tray)

Seiten: 1 2 3


.net System Tray - RoLe - 30.10.2008 15:21

' schrieb:Ja, also ich hab jetzt mal die Idee mit dem .NET übernhaufen geworfen, weil ich hab so ein nettes ToolKit für ActiveX gefunden.

Ja, und ich habe diese ActiveX über den haufen geworfen und setze nun auf .NET Wink
AX läuft im Moment noch in einer meiner EXE, aber beim beenden gibt es fast immer einen Windows Ausnahmefehler.
Deshalb und auch wegen der zusätzlichen DLL und CVI-RT, habe ich auf .NET gewechselt.


' schrieb:Hab momentan nur ein paar Verständniss Probleme, und dabei könnt ihr mir bestimmt helfen?!

Also, Icon erstellen, Icon Menu, Icon anzeigen, ausblenden usw funktioniert alles, ich versteh nur nicht wie das mit den Event registrieren geht.
Da sind zeichen und Verbindungen dabei, dich ich zuvor noch nie gesehen hab, und ich blick irgendwie nicht durch.
Was sind das für zeichen auf der linken seite, und wie is der zusammenhang zu "User event erstellen"? Kann ich mit dem Block jedes x-beliebige Event erstellen?!

Es gibt verschiedene Event in LV. Einmal der User-Event für "Benutzereingaben in LV" und einmal für AX und .NET.
Hast du die LV Hilfe zu dem RegisterCallBack mal durchgelesen?


.net System Tray - Donald - 30.10.2008 16:02

' schrieb:Bei ist es genauso wie Donald sagt ...Wink
Ich verwende LV 8.5, aber deshalb sollte es doch trotzdem kompatibel sein!


So nach vielen hin und her habe ich jetzt eine Lösung gefunden.

Das VI "Registereventcallback" muss ebenfalls offen sein, wenn man die Application problemlos starten will. Problem: Registereventcallback.vi muss dann auch über den Applictaion Builder dementsprechend eingebunden werden.

Über den Eigenschaftsknoten kann man sich den Status des FP auslesen lassen. ändern man diese in "Schreiben" und wählt "hidden" aus, verschwindet das "Registereventcallback.vi" wieder. Siehe auch hier: [url=index.php?act=findpost&pid=0]

[attachment=15111]

Warum auch immer? Aber es funktioniert und ist wahrscheinlich einfacher als über ActiveX. Und die Quelle bei <a href='index.php?act=findpost&pid=0'>http://msdn.microsoft.com/de-debrary/system.windows.forms.notifyicon.aspx[/url] ist eigentlich auch sehr verständlich.

gruss


.net System Tray - Ice Lord - 31.10.2008 08:43

' schrieb:Ja, und ich habe diese ActiveX über den haufen geworfen und setze nun auf .NET Wink

Willst du mir damit sagen das ActiveX veraltet ist und nicht mehr verwendet werden sollte?? Big Grin

' schrieb:Es gibt verschiedene Event in LV. Einmal der User-Event für "Benutzereingaben in LV" und einmal für AX und .NET.
Hast du die LV Hilfe zu dem RegisterCallBack mal durchgelesen?

Ja ich hab die Hilfe durchgelesen aber so wirklich schlau wird man aus der sache auch nicht. Ich weiß zum Beispiel nicht, welche Optionen ich alles zum User-event verwenden kann. Anders ausgedrückt, Ich bin einfach mit den Assemblys und Objecten bei .NET überfordert! Ich finde da einfach nicht des was ich brauch, bzw ich weiß gar nicht mit welchem Object ich mein Problem lösen soll/kann.
Jetzt kommst du wahrscheinlich gleich mit der MSDN Datenbank, aber da es dort nichts spezielles für LabVIEW gibt, ist es auch nciht das gelbe vom Ei.
Gibt es eigentlich weitere Assemblys/Objecte zum download?? Denn ich finde einfach nicht diese shell_notification als Object (um ein Programm zu minimieren)

Mfg


.net System Tray - RoLe - 31.10.2008 09:01

' schrieb:So nach vielen hin und her habe ich jetzt eine Lösung gefunden.

Das VI "Registereventcallback" muss ebenfalls offen sein, wenn man die Application problemlos starten will. Problem: Registereventcallback.vi muss dann auch über den Applictaion Builder dementsprechend eingebunden werden.

Über den Eigenschaftsknoten kann man sich den Status des FP auslesen lassen. ändern man diese in "Schreiben" und wählt "hidden" aus, verschwindet das "Registereventcallback.vi" wieder. Siehe auch hier:

Tja wie gesagt, bei mir geht das auch ohne das das VI-FP offen ist.
Du hast, meier Meinung nach, das Folge-Problem gelöst, nicht die Ursache.


.net System Tray - RoLe - 31.10.2008 09:12

' schrieb:Willst du mir damit sagen das ActiveX veraltet ist und nicht mehr verwendet werden sollte?? Big Grin

AX ist schon alt, und verwenden sollte man das eigentlich garnicht, das gilt auch für .NET
Die beste Lösung wäre das mit den API's zu machen. Wie das CVI macht, es braucht aber eben diese CVI DLL, weil LabVIEW dieses Callback nicht konnte.
In den neueren LV Versionen ist es im Prinzip möglich, jedenfalls hat der DLL-Knoten einen entsprechenden Tab mit Eingabefelder, kenne mich damit aber nicht aus.

' schrieb:Jetzt kommst du wahrscheinlich gleich mit der MSDN Datenbank, aber da es dort nichts spezielles für LabVIEW gibt, ist es auch nciht das gelbe vom Ei.
Gibt es eigentlich weitere Assemblys/Objecte zum download?? Denn ich finde einfach nicht diese shell_notification als Object (um ein Programm zu minimieren)

Du programmierst hier eben in .NET und nicht in LV.
Da du in LV keinen Text
Code:
System.Windows.Forms.MouseEventArgs) Handles NotifyIcon2.MouseDown

eingeben kannst macht man das hier mit den Constructor Node.
Ist aber fast genau gleich.


.net System Tray - Donald - 03.11.2008 09:39

' schrieb:Tja wie gesagt, bei mir geht das auch ohne das das VI-FP offen ist.
Du hast, meier Meinung nach, das Folge-Problem gelöst, nicht die Ursache.

Ja, das denke ich auch. Hab das ganze WE gekrübelt, aber keine Lösung für die Ursache gefunden. Aber ich bin ja mit dem Problem nicht alleine. Naja werd ich wohl mit Leben müssen, oder hat einer hier noch eine Idee?


.net System Tray - rolfk - 05.11.2008 08:24

' schrieb:AX ist schon alt, und verwenden sollte man das eigentlich garnicht, das gilt auch für .NET
Die beste Lösung wäre das mit den API's zu machen. Wie das CVI macht, es braucht aber eben diese CVI DLL, weil LabVIEW dieses Callback nicht konnte.
Seit LabVIEW 7.1 ginge das schon mit dem LabVIEW API PostLVUserEvent.
Zitat:In den neueren LV Versionen ist es im Prinzip möglich, jedenfalls hat der DLL-Knoten einen entsprechenden Tab mit Eingabefelder, kenne mich damit aber nicht aus.
Zwar nannten sie das Callbacks aber das hat damit eigentlich nicht soviel zu tun. Nun ja es sind einfach Funktionen die LabVIEW beim Laden/Initialisieren und Entladen/Deinitialisieren der DLL Knoten aufruft. Auch eine Callback im strikten C Sinn aber hat eben nichts zu tun mit LabVIEW User Event Callbacks.
Zitat:Du programmierst hier eben in .NET und nicht in LV.
Da du in LV keinen Text
Code:
System.Windows.Forms.MouseEventArgs) Handles NotifyIcon2.MouseDown

eingeben kannst macht man das hier mit den Constructor Node.
Ist aber fast genau gleich.
Genau, etwas kombinatorische Fähigkeiten um LabVIEW Informationen und MSDN Informationen miteinander verbinden zu können ist absolut erforderlich. Diese Fähigkeiten um aus Information A und B ein ganzes Produkt zu machen ist ja auch was dem Ingeneursleben den Reiz gibt :-)

Rolf Kalbermatter


.net System Tray - Ice Lord - 05.11.2008 09:47

' schrieb:Genau, etwas kombinatorische Fähigkeiten um LabVIEW Informationen und MSDN Informationen miteinander verbinden zu können ist absolut erforderlich. Diese Fähigkeiten um aus Information A und B ein ganzes Produkt zu machen ist ja auch was dem Ingeneursleben den Reiz gibt :-)

Leider ist man mit 20 Jahren NOCH kein Ingeneur, sondern Azubi, Student oder Facharbeiter ^_^

Und mit "etwas kombinatorischen Fähigkeiten" hast du auch ein wenig untertrieben. Wenn man nämlich noch nie was mit MSDN und nur Grundkenntnisse von LabVIEW hat, dann wirds ganz schön haarig.

Ich finde das größte Problem bei LabVIEW ist du zu kleine Community...
Wenn man ein Problem mit C#, C++, Java oder sonst was hat, ist das Problem meist nach 5 min so gut wie gelöst, aber bei lv dauerts halt doch ein paar Tage bis man den richtigen Lösungsansatz hat.

Bestes Beispiel ist das Programm zu minimieren...
Ich habe jede Menge Lösungen für alle Programmiersprachen, nur bei LabVIEW hat sich damit noch niemand so richtig beschäftigt.

Mfg


.net System Tray - rolfk - 05.11.2008 10:42

' schrieb:Leider ist man mit 20 Jahren NOCH kein Ingeneur, sondern Azubi, Student oder Facharbeiter ^_^

Und mit "etwas kombinatorischen Fähigkeiten" hast du auch ein wenig untertrieben. Wenn man nämlich noch nie was mit MSDN und nur Grundkenntnisse von LabVIEW hat, dann wirds ganz schön haarig.

Ich finde das größte Problem bei LabVIEW ist du zu kleine Community...
Wenn man ein Problem mit C#, C++, Java oder sonst was hat, ist das Problem meist nach 5 min so gut wie gelöst, aber bei lv dauerts halt doch ein paar Tage bis man den richtigen Lösungsansatz hat.

Bestes Beispiel ist das Programm zu minimieren...
Ich habe jede Menge Lösungen für alle Programmiersprachen, nur bei LabVIEW hat sich damit noch niemand so richtig beschäftigt.

Mfg

Was meinst Du denn mit minimieren? Minimize?

Ist doch Standard in LabVIEW. Eine Property Node oder wenn Du die Option in den Properties nicht ausgeschaltet hast einfach mit dem dritten Button open rechts in der Titelbar.

Und was Support in C und C# anbelangt. Was man dort als Lösung vorgetischt bekommt ist in vielen Fällen technisch haarsträubend bis grundsätzlich falsch. Und auf wirklich schwierige Dinge kriegt man dort meist auch keine Antwort.

Rolf Kalbermatter


.net System Tray - RoLe - 05.11.2008 12:11

' schrieb:Seit LabVIEW 7.1 ginge das schon mit dem LabVIEW API PostLVUserEvent.

Zwar nannten sie das Callbacks aber das hat damit eigentlich nicht soviel zu tun. Nun ja es sind einfach Funktionen die LabVIEW beim Laden/Initialisieren und Entladen/Deinitialisieren der DLL Knoten aufruft. Auch eine Callback im strikten C Sinn aber hat eben nichts zu tun mit LabVIEW User Event Callbacks.

Danke für die Info. Dachte ich mir, dass ich mal wieder falsch geraten haben.

Aber nun habe ich genug von .Net und Callback.
Denn nun geht es bei mir das Callback auch nur noch, so wie Donald beschrieben hat. Hmm