LabVIEWForum.de
2 "Tasks" bei Programmausführung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Application Builder (/Forum-Application-Builder)
+---- Thema: 2 "Tasks" bei Programmausführung (/Thread-2-Tasks-bei-Programmausfuehrung)



2 "Tasks" bei Programmausführung - MirkoB - 24.07.2008 12:55

Hallo!

Ich habe im Projekt-Explorer ein Projekt ("Projekt") angelegt. Darin befindet sich auch mein Start-VI ("Main.VI").
Beim erzeugen der entsprechenden .EXE und der Ausführung werden jedoch zwei Objekte in der Taskleiste gestartet:
Einmal erscheint eine "Projekt.EXE" und eine "Main.vi", wobei die Main.vi korrekt angezeigt wird.

Ich hätte jedoch gerne nur die "Main.vi" als Fenster...so ein nicht anklickbarer (weil nichts passiert) Eintrag in der Taskleiste irritiert sehr und nimmt unnötig Platz weg.

Wie bekomme ich das am besten hin?

Mirko


2 "Tasks" bei Programmausführung - RoLe - 24.07.2008 13:11

' schrieb:Hallo!

Ich habe im Projekt-Explorer ein Projekt ("Projekt") angelegt. Darin befindet sich auch mein Start-VI ("Main.VI").
Beim erzeugen der entsprechenden .EXE und der Ausführung werden jedoch zwei Objekte in der Taskleiste gestartet:
Einmal erscheint eine "Projekt.EXE" und eine "Main.vi", wobei die Main.vi korrekt angezeigt wird.

Ich hätte jedoch gerne nur die "Main.vi" als Fenster...so ein nicht anklickbarer (weil nichts passiert) Eintrag in der Taskleiste irritiert sehr und nimmt unnötig Platz weg.

Wie bekomme ich das am besten hin?

Mirko

Für deine.exe brauchst du eine deine.INI Datei mit mindestens folgendem Inhalt.

[exename]
hideRootWindow=True


2 "Tasks" bei Programmausführung - MirkoB - 24.07.2008 14:30

' schrieb:Für deine.exe brauchst du eine deine.INI Datei mit mindestens folgendem Inhalt.

[exename]
hideRootWindow=True

Vielen Dank! Genau das war es: Es ist zwar eine deine.INI vorhanden, aber ohne diesen Eintrag....


2 "Tasks" bei Programmausführung - Cardinal1664 - 03.11.2008 08:54

Vielen dank für die antworten hat bei mir auch super Funktioniert!!!


2 "Tasks" bei Programmausführung - IchSelbst - 03.11.2008 09:18

' schrieb:[exename]
hideRootWindow=True
Wieso geht das bei mir mit LV8.5.1 auch ohne diesen Eintrag? Oder ist das wieder ein Feature von LV8.2.x?


2 "Tasks" bei Programmausführung - Achim - 03.11.2008 09:34

' schrieb:Wieso geht das bei mir mit LV8.5.1 auch ohne diesen Eintrag? Oder ist das wieder ein Feature von LV8.2.x?

Ich brauche bei LV8.5.1 diesen Eintrag, um das zweite Kästchen in der Taskleiste zu unterdrücken!


2 "Tasks" bei Programmausführung - Donald - 03.11.2008 10:26

hallo,

ich habe auch dieses Problem. Aber erst nachdem ich auch .Net Elemente verwende. Nach LabVIEW <a href='index.php?act=findpost&pid=0'>http://digital.ni.com/public.nsf/allkb/CF95F42CB6207DFA86256FB0005E7525</a> gibt es auch nur die Lösung mit hideRootWindow=True. Was mich daran nur noch stört ist, das die Applikation nicht beendet wird, sondern als Hintergrungprozeß im Taskmanager bleibt.

Lösung wäre die Applikation mit der FKt. "LabVIEW beenden" zu stoppen. Finde ich aber "unschön". Gibt es da keine andere Lösung?

gruss


2 "Tasks" bei Programmausführung - Cardinal1664 - 03.11.2008 10:27

Bei mir mit LabVIEW 6.1 braucht es diesen Eintrag auch in der ini!
Aber kann man dies auch irgendwie im application Builder einstellen ohne eintrag in der ini? Ist dies ein Bug von LabVIEW?


2 "Tasks" bei Programmausführung - rolfk - 07.11.2008 10:25

' schrieb:Bei mir mit LabVIEW 6.1 braucht es diesen Eintrag auch in der ini!
Aber kann man dies auch irgendwie im application Builder einstellen ohne eintrag in der ini? Ist dies ein Bug von LabVIEW?

Das ist schon so seit es den LabVIEW Application Builder gibt, also irgendwann so rund LabVIEW 3.1. Ein Bug ist es eigentlich nicht. In alten Windows 3.1 Tagen wurde die ganze parallele Ausführung von LabVIEW dahingehend gelöst dass man in LabVIEW immer eine Hintergrund Message Loop hatte. Dies war die einzige sinnvolle Möglichkeit um eine Art Multithreading in Windows 3.1 zu simulieren. Diese Loop besteht noch immer und ist auch nicht mehr aus LabVIEW wegzudesignen ohne LabVIEW grundsätzlich neu zu programmieren. Das macht aber wenig Sinn, da da inzwischen weiss nicht wieviele 1000 Mannjahre Programmierzeit drin stecken und auch ein komplettes Neudesign einen wesentlichen Teil dieser Zeit in Anspruch nehmen würde. Zudem ist die Wahrscheinlichkeit dass das mit kleinen bis grösseren Verhaltensänderungen und Bugs einherginge die sehr lästig sein könnten sehr nahe bei 100%.

Um diese Message Loop zu implementieren braucht man aber in Windows immer ein Fenster. Das wird dann zwar hidden aber kommt normal als Taskbarbutton sichtbar. Durch mit den Fensterattributen zu jonglieren kann man Windows dazu überreden um es nicht in den Taskbar aufzunehmen. Es geht hier hauptsächlich um die Eigenschaft dass das Fenster minimized werden kann.

Im Falle von der LabVIEW Entwickelumgebung ist das Erscheinen dieses Buttons durchaus sinnvoll. Bei Applikationen stört es manche Leute etwasBig Grin

Ich könnte mir vorstellen dass es auch ein oder zwei technische Gründe gibt warum man diesen Button nicht grundsätzlich vermeiden will, da diese Anpassung irgendwelche Folgen an andere Stelle haben kann. Und der INI Eintrag ist ja ziemlich harmlos und einfach zu machen. Windows ist in dieser Hinsicht sehr tricky und eine kleine scheinbar harmlose Änderung kann plötlich ein ganz anderes Verhalten and anderere Stelle provozieren.

Rolf Kalbermatter