' 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
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?
' schrieb:Bei ist es genauso wie Donald sagt ...
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
' schrieb:Ja, und ich habe diese ActiveX über den haufen geworfen und setze nun auf .NET
Willst du mir damit sagen das ActiveX veraltet ist und nicht mehr verwendet werden sollte??
' 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
' 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.
' schrieb:Willst du mir damit sagen das ActiveX veraltet ist und nicht mehr verwendet werden sollte??
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.
' 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?
' 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
' 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
' 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
' 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.