Hallo,
ich könnte einen Skript zwar versteckt starten, indem ich ihn über ein anderen Skript starte, also Run("...","...",@SW_HIDE) aber ich fände es besser den Skript direkt versteckt zu starten, ohne einen weiteren zu benötigen, ist das möglich?
Skript versteckt starten
-
- [ offen ]
-
das Keks -
26. Juli 2010 um 20:17 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Was verstehst du denn unter 'versteckt starten' ?
Was du anführst bezieht sich nur auf die Sichtbarkeit der GUI. Das Skript selbst ist als Prozeß sichtbar (und das ist auch gut so). -
hat nicht vor ca nem monat jemand genau die gleiche frage gestellt?
-
Ja, der Prozess kann von mir aus auch sichtbar bleiben (Prozesse kann man ja afaik auch gar nicht verstecken.
Und ne GUI hat das Skript auch nicht, aber ich möchte das Symbol aus dem Systemtray haben, da das Programm bei mir eh immer läuft und nicht beendet werden muss. -
#notrayicon ist das was du suchst
-
Danke, füge ich das einfach am Anfang des Skripts ein?
-
-
Du hast es erfasst (Prinzipiell ist es aber egal ob es ganz oben oder ganz ober oder wo auch immer steht)
genau wie RequireAdmin und Co -
Ok, thx.
-
Naja ganz egal ist es eigentlich nicht.
Nach einer Endlosschleife erfüllt es seinen Zweck nicht oder? -
Naja ganz egal ist es eigentlich nicht.
Nach einer Endlosschleife erfüllt es seinen Zweck nicht oder?
Doch, denn #NoTrayIcon ist eine PräProzessor Anweisung Also wird der Befehl schon beim Kompilieren berücksichtigt. Genauso wie #include, #Require Admin, ... -
Das mit dem Include is nich korrekt.
Ich hab mal ein Script gemacht mit einem Include:
Inc.au3
[autoit]MsgBox(0, "","Include")
[/autoit]Script.au3
[autoit]MsgBox(0, "", "Script")
[/autoit]
#include<Inc.au3>Wenn ich das so compile dann sollte nach deiner Theorie erst die Include msgbox kommen, und dann erst die Script msgbox.
Aber bei mir kommt erst die Script MsgBox.
-
Die Dateien werden angehängt (Beim compilieren).
Das bedeutet nicht, das sie zuerst ausgeführt werden -
Hier ist mal eine Funktion um das TrayIcon zu verstecken oder anzeigen zu lassen
[autoit]#include <GuiToolBar.au3>
[/autoit][autoit][/autoit][autoit]ToolbarHide("Steam") ; Der Name unten im Tray
[/autoit]
;flag= 0 ANZEIGEN
;flah= 1 VERSTECKEN
Func ToolbarHide($name, $flag=0)
Local $toolbar = ControlGetHandle("[CLASS:Shell_TrayWnd]", "", "[CLASSNN:ToolbarWindow321]")
Local $nr = _GUICtrlToolbar_ButtonCount($toolbar)
For $i=0 To $nr-1
Local $cmd = _GUICtrlToolbar_IndexToCommand($toolbar, $i)
Local $text = _GUICtrlToolbar_GetButtonText($toolbar, $cmd)
If StringInStr($text, $name) Then
If $flag=1 Then
_GUICtrlToolbar_SetButtonState($toolbar, $cmd, $TBSTATE_HIDDEN)
Else
_GUICtrlToolbar_SetButtonState($toolbar, $cmd, $TBSTATE_ENABLED)
EndIf
Return 1
ExitLoop
EndIf
Next
EndFunc -
Kann man auch mit
[autoit]Opt("TrayIconHide",1) ;Verstecken
[/autoit]
Opt("TrayIconHide",0) ;Anzeigen -
Kann man auch mit
[autoit]Opt("TrayIconHide",1) ;Verstecken
[/autoit]
Opt("TrayIconHide",0) ;Anzeigen
Wenn das Icon von Anfang an versteckt werden soll, ist #NoTrayIcon die bessere Wahl. Wenn man Opt verwendet wird es für ein paar Sekundenbruchteile angezeigt, bei der Präprozessoranweisung überhaupt nicht.