Tooltip im Tray und Icon im Tray ändern

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Tooltip im Tray und Icon im Tray ändern

27 Jul 2021, 15:30

Huhu ihr Lieben,

habe nochmal 2 Fragen^^

1. Gibt es mit AHK eine Möglichkeit den Tooltip-Text (Mouseover-Text) des Tray-Icons meiner AHK-exe zu ändern?
Jetzt steht beim Mouseover folgendes da: Name.exe
Ich hätte es aber gerne anders, beispielsweise so: Name
Ist das via AHK möglich?

2. Die Icons meiner AHK-Scripte stelle ich gerne mit dem "Resource Hacker" ein. Leider macht es - oder Windows - keinen Unterschied zwischen dem Icon im Tray und dem vor dem Dateinamen. Ich hätte es aber gerne im Tray anders als beim Dateinamen. Ist das möglich?

Bin gespannt auf eure Antworten.

Liebe Grüße :)
User avatar
glnklein
Posts: 90
Joined: 23 Oct 2020, 04:26

Re: Tooltip im Tray und Icon im Tray ändern

28 Jul 2021, 01:05

moin,
Eventuell hilft dir das weiter

Code: Select all

;@Ahk2Exe-SetMainIcon deinicon.ico
;@Ahk2Exe-AddResource deinicon.ico, 160  ; Ersetzt 'H auf Blau'
;@Ahk2Exe-AddResource deinicon.ico, 206  ; Ersetzt 'S auf Grün'
;@Ahk2Exe-AddResource deinicon.ico, 207  ; Ersetzt 'H auf Rot'
;@Ahk2Exe-AddResource deinicon.ico, 208  ; Ersetzt 'S auf Rot'

:D verwende AutoHotkey104805 :D ------------------------UPDATE auf ..1.1.33.02 erfolgreich , jetzt kommen neue Probleme :lolno:
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

28 Jul 2021, 04:44

Huhu gInklein,

also ich habe mal testweise das eingefügt...

Code: Select all

@Ahk2Exe-SetMainIcon Dateiname.ico
@Ahk2Exe-AddResource Dateiname.ico, 160  ; Ersetzt 'H auf Blau'
und später das...

Code: Select all

@Ahk2Exe-SetMainIcon "C:\Pfad\zum Icon\Dateiname.ico"
@Ahk2Exe-AddResource "C:\Pfad\zum Icon\Dateiname.ico", 160  ; Ersetzt 'H auf Blau'
...während in beiden Fällen das icon neben der ahk lag.
Bei beiden tut der Compiler es nicht mal zur exe wandeln mit der Meldung "This line does not contain a recognized action."

Ich weiß auch nicht was mit den "Kommentaren" hinter dem ";" gemeint ist. Welches H ist gemeint und welches Blau???

Auch wenn ich die Teile google komme ich nicht wirklich weiter. Bei beiden in den deutschsprachigen Ergebnissen 0 Ergebnisse und bei den englischen nur wenig wo ich garnicht durchblicke :(

Lieben Dank!

Grüße :)
gregster
Posts: 8916
Joined: 30 Sep 2013, 06:48

Re: Tooltip im Tray und Icon im Tray ändern

28 Jul 2021, 06:30

Die Doku für Compiler-Direktiven ist hier: https://www.autohotkey.com/docs/misc/Ahk2ExeDirectives.htm (ggf zu 'de' wechseln)
"This line does not contain a recognized action."
Maßgeblich könnte hier sein, dass diese AHK v1.1.33+ voraussetzen...
just me
Posts: 9423
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Tooltip im Tray und Icon im Tray ändern

28 Jul 2021, 06:41

Der Fehler kommt in allen Versionen, weil das 'auskommentierende' führende ; (Semikolon) fehlt.
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

28 Jul 2021, 07:57

Huhu just me & gregster,

nun ich dachte immer auskommentiert ist auskommentiert^^
Also mit ; gibt es natürlich keine Fehlermeldung, aber es bringt auch kein Ergebnis, weder beim Icon, noch beim Tooltip.
Wenn ich mit dem Resource Hacker reinschaue, dann sehe ich (bei RCData im Script), dass der Compiler es auch gar nicht übernommen hat.
Hmm...
gregster, du vermutest eine zu alte Version. Ich habe nun mal die 1.1.33.09 von hier: https://autohotkey.com/download/
runtergeladen und die Express Installation gemacht. Die hat nur 1s gedauert.

Nun tut er bei der Version mit dem Leerzeichen im Pfad und den " rummeckern, vermutlich will es keine " oder keine Leerzeichen im Pfad. Testweise hab ich das Icon nun einfach nach C:\ verschoben, um Probleme mit dem Leerzeichen und " zu vermeiden. Doch es meckert nun, dass es MPRESS.exe nicht findet... Keine Ahnung was das ist, wo das ist und warum es das braucht... ?

Nun, wenn es nicht geht, dann gehts eben nicht und ich muss die "Weiße Fahne" schwingen ... :(
Trotzdem lieben Dank an Euch !!

Wenn noch jemand Tipps hat, immer her damit :)

Grüße :)

Edit:
Ah, das ist also was zum komprimieren^^, habe nun dort NONE eingestellt.
Tatsächlich ändert sich nun das Icon. Ich habe im Compiler ein schwarzes eingestellt und im Script ein gelbes angegeben, zum Test... Nun ist es gelb. Doch leider beide!! Also im Tray und vor dem Dateinamen.
Dann hab ich bei AddResource ein rotes eingestellt, doch es ist immer noch bei beiden gelb...
Hmm, bin ratlos^^
Auch im ToolTip steht noch immer der Name der exe...

Testweise habe ich mal den gesamten fünfzeiligen Code eingefügt:

Code: Select all

;@Ahk2Exe-SetMainIcon C:\gelbes.ico
;@Ahk2Exe-AddResource C:\rotes.ico, 160  ; Ersetzt 'H auf Blau'
;@Ahk2Exe-AddResource C:\rotes.ico, 206  ; Ersetzt 'S auf Grün'
;@Ahk2Exe-AddResource C:\rotes.ico, 207  ; Ersetzt 'H auf Rot'
;@Ahk2Exe-AddResource C:\rotes.ico, 208  ; Ersetzt 'S auf Rot'
... aber auch hier nur 2 gelbe Icons und keine Änderung am Tooltip-Text.
KHA
Posts: 400
Joined: 21 Aug 2018, 11:11

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 05:25

Ich weiß nicht ob ich es richtig verstehe, aber
Tray-Tip änderst du mit:
Menu, Tray, Tip , Text

Tray-Icon änderst du mit:
Menu, Tray, Icon , DateiName, SymbolNummer, 1
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 05:50

Huhu KHA,

jaaaa :) Das mit dem Text klappt wunderbar. Lieben Dank :)

Mit dem Icon klappt es leider nicht, die Fehlermeldung klingt aber nicht so böse... vielleicht mache ich nur eine Kleinigkeit falsch.

Habe das versucht, während die ico neben der ahk lag:

Code: Select all

Menu, Tray, Icon , DateinameOhneLeerzeichen.ico, SymbolNummer, 1
und dann das versucht, während die ico unter C:\ lag:

Code: Select all

Menu, Tray, Icon , C:\DateinameOhneLeerzeichen.ico, SymbolNummer, 1
Bei beiden kam diese Meldung beim Start der exe:
Error: Nonexistent menu item.
Specifically: DateinameOhneLeerzeichen.ico
Line#
---> 004: Menu,Tray,Icon,DateinameOhneLeerzeichen.ico,SymbolNummer,1
The current thread will exit.

Hast du da eine Idee?

Grüße :)

EDIT:

Ich habe nun mal etwas nach deinem Code, also nach "AHK Menu,tray,icon" gegoogelt und ein Beispiel gefunden, welches promt funktionierte...
Geklappt hat es nun damit, während die ico-Datei neben der ahk-Datei lag:

Code: Select all

menu,tray,icon,%ResourceFolder%\DateinameOhneLeerzeichen.ico,,1
Ergebnis: Vor dem Dateinamen ist nun das Icon welches ich im Compiler gewählt hab und im Tray ist nun das aus dem Script. :)

Ulkigerweise wenn ich das ico von C:\ lösche, was ich ja nur testweise dorthinschob, geht es wieder nicht!!!
Aber es klappt nun auch mit...

Code: Select all

menu,tray,icon,DateinameOhneLeerzeichen.ico,,1
...wenn das ico neben der EXE (!) liegt.

Jetzt stellt sich mir die Frage:
- Muss das ico also immer existieren? Ich dachte man kann es mit dem Code im Script in die Exe einbauen und dann die ico löschen? Grrr. Also neben der Exe möchte ich nicht permanent das Ico liegen haben bzw. unter C:\. Wer will das schon? :(

Aber ich vermute auch hierfür gibt es keine Lösung, richtig?
Da hat der Ersteller des Compilers nicht weit gedacht... eine 2. Option für das Tray-Icon wäre nicht schlecht, zumal das ja meist nur um die 2kb klein ist... schade schade.

Liebe Grüße :)
KHA
Posts: 400
Joined: 21 Aug 2018, 11:11

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 06:49

- Muss das ico also immer existieren? Ich dachte man kann es mit dem Code im Script in die Exe einbauen und dann die ico löschen? Grrr. Also neben der Exe möchte ich nicht permanent das Ico liegen haben bzw. unter C:\. Wer will das schon? :(
Dann guck dir FileInstall an.
https://ahkde.github.io/docs/commands/FileInstall.htm
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 07:44

Hmm, das macht es leider nicht viel besser :(, da es das Ziel zwingend vorraussetzt. Baue ich also das icon ein, lösche es und starte die exe, dann erstellt es das gelöschte icon wieder, grrr...
Mache ich statt Ziel nichts rein, also nur
FileInstall, Icon.ico,,
dann meckert es.
Mache ich eine 0 rein, also so:
FileInstall, Icon.ico,0,
dann gehts auch nix.
Auch so geht nix:
FileInstall, Icon.ico


Ergo stimmt schon die Beschreibung auf der Hilfeseite nicht, denn dort steht in 2. Zeile "Fügt eine bestimmte Datei in die kompilierte Version des Skripts ein."
Es müsste aber lauten: "Fügt eine bestimmte Datei in die kompilierte Version des Skripts ein und extrahiert sie bei Ausführung."

Weiter ausführend verlangt das Script, dass die Dateien wohl wieder neben der exe liegen müssen.
Also hilft mir "FileInstall" nicht, denn es versteckt die Dateien ja nur wenn die exe noch NIE benutzt wurde. Bei Benutzung sind die Icons wieder da UND bleiben auch nach Benutzung da :(
Ich weiß nicht weiter... das macht höllisch Kopfschmerzen, geht es euch bei sowas auch so?

EDIT: Ah, ich verstehe, man könnte dann mit irgendeinen Befehl die icons wieder löschen, dann wären sie zumindest bis zur nächsten Ausführung weg... Richtig?
gregster
Posts: 8916
Joined: 30 Sep 2013, 06:48

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 07:53

UmbrellaCorp wrote:
29 Jul 2021, 07:44
Ergo stimmt schon die Beschreibung auf der Hilfeseite nicht, denn dort steht in 2. Zeile "Fügt eine bestimmte Datei in die kompilierte Version des Skripts ein."
Es müsste aber lauten: "Fügt eine bestimmte Datei in die kompilierte Version des Skripts ein und extrahiert sie bei Ausführung."
Falsch ist das ja nicht; und die Details stehen unter 'Bemerkungen' und in der Beschreibung des zweiten Parameters 'Ziel'.
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 08:26

Okay, dann nehme ich das jetzt und muss mich nur noch um die Löschung der danach nicht mehr verwendeten Icons kümmern..
Ich weiß zwar wie ich eine AHK.exe nach Ausführung lösche, jedoch nur wenn sie sich selbst beendet. Wenn ich jetzt quasi mit der Maus das Icon im Tray rechtsklicke und auf Beenden klicke, dann hab ich keine Ahnung wie in dem Moment via Script noch schnell die Icons gelöscht werden können... Ich müsste wohl ein zweites Script schreiben, was wiederum das erste überwacht, ob es noch aktiv ist... oje oje... oder gibt es einen Code, um dem Script zu sagen "Hey führe nach schließen der App noch schnell eine Löschung aus?" ^^




Vielleicht kann mir auch hierbei jemand helfen. Oder sollte ich dafür einen neuen Thread aufmachen? Bin mir unsicher...

Ich will nun folgendes, was sich eigentlich einfach anhört, ich aber die Krise kriege^^

Krankheitsbedingt muss ich schnell die Lautstärke regeln können, wenn ich mit dem ZoomPlayer (zplayer.exe) Filme schaue. Mit den Tasten Ctrl und Win-Taste will ich gleich 10 mal lauter bzw. leiser stellen - im Code hier habe ich das auf 1x beschränkt und auf eine Taste (Ctrl).
Nun soll eigentlich einfach nur folgendes geschehen, was ich nur bedingt hinbekomme:

- Beim Start der Exe soll das rote Icon im Tray erscheinen <--- Funktioniert!
- Beim Start des Players zplayer.exe soll das gelbe Icon im Tray erscheinen <--- Funktioniert!
- Beim Beenden des Players soll es wieder rot sein <--- Klappt nicht :(
- Wenn der Player aber aktiv im Vordergrund ist, soll es grün sein <--- Klappt nicht :(

Ich habe das schon die Icons an hunderte Stellen gesetzt, mit Loop rumgespielt usw. aber es klappt nicht.
Kann mir da jemand die Icons in den Code an die richtigen Stellen setzen bzw. Fehler korrigieren oder nennen? Ich würde mich sehr freuen...

Liebe Grüße

Hier der Code:

Code: Select all

#SingleInstance force
#InstallKeybdHook

FileInstall, Icon_rot.ico,Icon_rot.ico,1
FileInstall, Icon_gelb.ico,Icon_gelb.ico,1
FileInstall, Icon_gruen.ico,Icon_gruen.ico,1

Menu, Tray, Tip , Lautstärkensteuerung

menu,tray,icon,Icon_rot.ico,,1

MsgBox, 64, Text, `nText`n`nText`n, 120

#Persistent
SetTimer, Alert, 500
return

#If ProcessExist("zplayer.exe")


Ctrl::

#IfWinActive ahk_exe zplayer.exe

SetKeyDelay, 5

Send {left}
sleep,5
; Code gekürzt...

Return


#If 

ProcessExist(Name){
Process,Exist,%Name%
return Errorlevel
}

Alert:
If ProcessExist("zplayer.exe")
{
SetTimer, Alert, off
menu,tray,icon,Icon_gelb.ico,,1
SetTimer, Alert, on
}
return
Last edited by UmbrellaCorp on 29 Jul 2021, 11:11, edited 4 times in total.
gregster
Posts: 8916
Joined: 30 Sep 2013, 06:48

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 08:33

Ich schätze, OnExit() kann beim Aufräumen helfen.
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 09:27

Super gregster :)
Damit bin ich nun ein Stück weiter.
Ich habe das soeben oben nach den FileInstall-Codes eingefügt.
Lieben Dank dafür :)

Ich hab unten beim Alert nun noch das eingefügt:
}
else
{
menu,tray,icon,Icon_rot.ico,,1
}

Jetzt klappt das auch, dass das rote Icon erscheint, wenn der Player geschlossen ist.

Hier der aktuelle Stand:

- Beim Start der Exe soll das rote Icon im Tray erscheinen <--- Funktioniert!
- Beim Start des Players zplayer.exe soll das gelbe Icon im Tray erscheinen <--- Funktioniert!
- Beim Beenden des Players soll es wieder rot sein <--- Funktioniert!
- Wenn der Player aber aktiv im Vordergrund ist, soll es grün sein <--- Klappt nicht :(

AHK kann wohl nicht zwischen einem "Programm im Vordergrund" und einem "laufenden Prozess" unterscheiden, weil das im Vordergrund auch ein Prozess ist :(
Habe schon so viel probiert, auch mit Loops. Klapt nix :(
Ich würde mich sehr freuen wenn mir mit dem letzten Problem jemand helfen kann.

Liebe Grüße

Hier das ganze Script:

Code: Select all

#SingleInstance force
#InstallKeybdHook

FileInstall, Icon_rot.ico,Icon_rot.ico,1
FileInstall, Icon_gelb.ico,Icon_gelb.ico,1
FileInstall, Icon_gruen.ico,Icon_gruen.ico,1

#Persistent
OnExit("Icons_loeschen")

Icons_loeschen(ExitGrund, ExitCode)
{
    FileDelete, Icon_rot.ico
    FileDelete, Icon_gelb.ico
    FileDelete, Icon_gruen.ico
}

Menu, Tray, Tip , Lautstärkensteuerung

menu,tray,icon,Icon_rot.ico,,1

MsgBox, 64, Text, `nText`n`nText`n, 120

#Persistent
SetTimer, Alert, 500
return

#If ProcessExist("zplayer.exe")

#Persistent
SetTimer, Alert2, 500
return


Ctrl::

#IfWinActive ahk_exe zplayer.exe

SetKeyDelay, 5

Send {left}
sleep,5
; Code gekürzt...

Return


#If 

ProcessExist(Name){
Process,Exist,%Name%
return Errorlevel
}

Alert:
If ProcessExist("zplayer.exe")
{
SetTimer, Alert, off
menu,tray,icon,Icon_gelb.ico,,1
SetTimer, Alert, on
}
else
{
menu,tray,icon,Icon_rot.ico,,1
}
return


Alert2:
#IfWinActive ahk_exe zplayer.exe
{
SetTimer, Alert2, off
menu,tray,icon,Icon_gruen.ico,,1
SetTimer, Alert2, on
}
return
KHA
Posts: 400
Joined: 21 Aug 2018, 11:11

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 11:51

Ich kenne jetzt dein gesamten Script nicht, wenn du ein Wechsel der Tray-Icon wünscht, wäre sowas möglich.

Code: Select all

#NoEnv
#Singleinstance Force

#Persistent
SetTimer, IconChanger, 1000
Return

IconChanger:
if WinActive("ahk_exe notepad.exe")
	Menu, Tray, Icon,Icon_gruen.ico,,1
Else if WinExist("ahk_exe notepad.exe")
	Menu, Tray, Icon,Icon_gelb.ico,,1
Else
	Menu, Tray, Icon,Icon_rot.ico,,1
Return
Weiter ausführend verlangt das Script, dass die Dateien wohl wieder neben der exe liegen müssen.
Du kannst einen absoluten Pfad angeben, wie z.B % A_Temp "\Icon_gelb.ico" , dann bekommst die Icon nie zusehen.
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 13:44

Danke für deine Antwort :)
Aber das will irgendwie nicht so.
Vielleicht weil ich nicht genau weiß wo das hinkommt.
Füge ich es ganz unten ein, passiert garnichts. Füge ich es ganz oben ein (natürlich nach den FileInstall der Icons) dann entsteht eine Dauerschleife der der folgenden Befehle. Ebenso wenn ich ein Return dahinter setze. Zudem passiert auch nichts in Sachen Icon ändern, wenn der zplayer aktiv im Vordergrund ist.

Hier mal ein Testcode mit calc.exe und cmd.exe ...

Füge ich deinen Code so oben ein, dann werden alle folgende Sachen(symbolisch hierfür die MsgBox) nicht ausgeführt:

Code: Select all

#NoEnv
#Singleinstance Force

#Persistent
SetTimer, IconChanger, 1000
Return

IconChanger:
if WinActive("ahk_exe calc.exe")
	run, cmd.exe
Else if WinExist("ahk_exe calc.exe")
Return


MsgBox, 64, Testfensterüberschrift, `nTesttext`n`n, 120

#IfWinActive ahk_exe calc.exe

a::
run, cmd.exe
Return

b::
run, cmd.exe
Return

#If

Füge ich deinen Code mit einem anschließendem Return so ein, dann kommen alle folgende Sachen(symbolisch hierfür die MsgBox) in Dauerschleife:

Code: Select all

#NoEnv
#Singleinstance Force

#Persistent
SetTimer, IconChanger, 1000
Return

IconChanger:
if WinActive("ahk_exe calc.exe")
	run, cmd.exe
Else if WinExist("ahk_exe calc.exe")
Return

MsgBox, 64, Testfensterüberschrift, `nTesttext`n`n, 120

#IfWinActive ahk_exe calc.exe

a::
run, cmd.exe
Return

b::
run, cmd.exe
Return

#If
Ich gebe nun heute erstmal auf... Sitze allein heute schon 9 Stunden dran :( Dabei brauche ich nur noch diese eine einzige Sache, nämlich dass das grüne Icon erscheint, wenn der Videoplayer im Vordergrund ist. Schade das das so schwierig ist. :(
Für mich ist das eine schwere Geburt, da ich seit 2,5 Jahren nach einem Zahnarzt-Fehler am halben Körper permanent starke Schmerzen habe, es in den Ohren pfeift und bis zu 600.000 mal am Tag klickert und unter massig Medikamenten hier am Bildschirm sitze und versuche die Buchstaben aneinenderzubringen :wtf:

Hier nochmal mein KOMPLETTES Script, ich hoffe jemand kann da den Fehler entdecken:

Code: Select all

#SingleInstance force
#InstallKeybdHook


; Nötige Icons in die Exe integrieren, welche dazu neben dieser ahk-Datei liegen müssen.
FileInstall, Icon_rot.ico,Icon_rot.ico,1
FileInstall, Icon_gelb.ico,Icon_gelb.ico,1
FileInstall, Icon_gruen.ico,Icon_gruen.ico,1
; Anmerkung: Diese Exe hat ein schwarzes Icon vor dem Dateinamen, welches im Compiler eingestellt wird.


; Die Icons NACH dem manuellen Beenden dieser Exe löschen, welche diese Exe bei Ausführung leider entpackt.
#Persistent
OnExit("Icons_loeschen")

Icons_loeschen(ExitGrund, ExitCode)
{
    FileDelete, Icon_rot.ico
    FileDelete, Icon_gelb.ico
    FileDelete, Icon_gruen.ico
}


; Text beim Mouseover des Tray-Icons festlegen.
Menu, Tray, Tip , Lautstärkensteuerung


; Rotes Icon soll sofort bei Start dieser Exe im Tray erscheinen.
menu,tray,icon,Icon_rot.ico,,1


; Eine kleine Text-Box erscheint mit Hinweisen, welche sich nach 120 Sekunden selbst beendet.
MsgBox, 64, TextboxÜberschrift, `nText`n`n, 120


; Hiermit - und siehe ganz unten - wird geprüft ob der Prozess des Videoplayers (zplayer.exe) existiert und wenn ja, dann wird im Tray das gelbe Icon gezeigt. Beim Beenden des Players erscheint wieder das rote Icon.
#Persistent
SetTimer, Alert, 500
return


; Hiermit wird klargestellt, dass alles was folgt nur funktioniert, wenn der Videoplayer zplayer.exe ein laufender Prozess ist.
#If ProcessExist("zplayer.exe")


; Hiermit wird klargestellt, dass alles was folgt nur funktioniert, wenn der Videoplayer zplayer.exe aktiv im Vordergrund ist. Somit stellen die Hotkeys im Windows keinen Blödsinn an, wenn der Player mal minimiert ist und man im Windows die Keys drückt.
#IfWinActive ahk_exe zplayer.exe


; Hiermit WOLLTE ich^^, dass das grüne Icon im Tray angezeigt wird, nachdem zuvor klargestellt wurde, dass der Videoplayer im Vordergrund aktiv ist. Obwohl die Hotkeys ordnungsgemäß im Player funktionieren und im restlichen Windows nicht(also wenn der Player minimiert wurde), ändert sich das Icon nicht. Vermutlich kommt AHK nicht damit klar, weil der Prozess im Vordergrund nunmal auch ein laufender Prozess ist - und dem habe ich ja bereits das gelbe Icon zugewiesen. Grrr...
menu,tray,icon,Icon_gruen.ico,,1


; Hier der 1. Hotkey und im Folgenden das was er bewirken soll.
LCtrl::

SetKeyDelay, 5

Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5

Return

; Hier der 2. Hotkey und im Folgenden das was er bewirken soll.

LWin::

SetKeyDelay, 5

Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5

Return


#If




#If

ProcessExist(Name){
Process,Exist,%Name%
return Errorlevel
}



; Hier die bereits oben beschriebene Icon-Änderung auf gelb wenn der Prozess zplayer.exe existiert.
Alert:
If ProcessExist("zplayer.exe")
{
SetTimer, Alert, off
menu,tray,icon,Icon_gelb.ico,,1
SetTimer, Alert, on
}
; Hier die bereits oben beschriebene Icon-Änderung auf rot wenn der Prozess zplayer.exe beendet wird.
else
{
menu,tray,icon,Icon_rot.ico,,1
}
return
Nochmal zur Erinnerung wie es sein soll:

- Beim Start der Exe soll das rote Icon im Tray erscheinen <--- Funktioniert!
- Beim Start des Players zplayer.exe soll das gelbe Icon im Tray erscheinen <--- Funktioniert!
- Beim Beenden des Players soll es wieder rot sein <--- Funktioniert!
- Wenn der Player aber aktiv im Vordergrund ist, soll es grün sein <--- Klappt nicht :(

Liebe Grüße :)
KHA
Posts: 400
Joined: 21 Aug 2018, 11:11

Re: Tooltip im Tray und Icon im Tray ändern

29 Jul 2021, 14:27

Habe dein Code überflogen und nach meinem Verständnis angepasst. Nicht getestet!

Code: Select all

#SingleInstance force
#InstallKeybdHook
SetKeyDelay, 5

; Nötige Icons in die Exe integrieren, welche dazu neben dieser ahk-Datei liegen müssen.
FileInstall, Icon_rot.ico,Icon_rot.ico,1
FileInstall, Icon_gelb.ico,Icon_gelb.ico,1
FileInstall, Icon_gruen.ico,Icon_gruen.ico,1
; Anmerkung: Diese Exe hat ein schwarzes Icon vor dem Dateinamen, welches im Compiler eingestellt wird.


; Die Icons NACH dem manuellen Beenden dieser Exe löschen, welche diese Exe bei Ausführung leider entpackt.

OnExit("Icons_loeschen")
Icons_loeschen()
{
    FileDelete, Icon_rot.ico
    FileDelete, Icon_gelb.ico
    FileDelete, Icon_gruen.ico
}


; Text beim Mouseover des Tray-Icons festlegen.
Menu, Tray, Tip , Lautstärkensteuerung


; Rotes Icon soll sofort bei Start dieser Exe im Tray erscheinen.
menu,tray,icon,Icon_rot.ico,,1


; Eine kleine Text-Box erscheint mit Hinweisen, welche sich nach 120 Sekunden selbst beendet.
MsgBox, 64, TextboxÜberschrift, `nText`n`n, 120


; Hiermit - und siehe ganz unten - wird geprüft ob der Prozess des Videoplayers (zplayer.exe) existiert und wenn ja, dann wird im Tray das gelbe Icon gezeigt. Beim Beenden des Players erscheint wieder das rote Icon.
SetTimer, Alert, 500
Return



; Hiermit wird klargestellt, dass alles was folgt nur funktioniert, wenn der Videoplayer zplayer.exe aktiv im Vordergrund ist. Somit stellen die Hotkeys im Windows keinen Blödsinn an, wenn der Player mal minimiert ist und man im Windows die Keys drückt.
#IfWinActive ahk_exe zplayer.exe
; Hier der 1. Hotkey und im Folgenden das was er bewirken soll.
LCtrl::


Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5

Return

; Hier der 2. Hotkey und im Folgenden das was er bewirken soll.
NumpadIns::



Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5
Send {left}
sleep,5

Return

; Hier der 3. Hotkey und im Folgenden das was er bewirken soll.
NumpadDel::


Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5

Return

; Hier der 4. Hotkey und im Folgenden das was er bewirken soll.
LWin::
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Send {right}
sleep,5
Return
#If




; Hier die bereits oben beschriebene Icon-Änderung wenn der Prozess zplayer.exe existiert.
Alert:
if WinActive("ahk_exe zplayer.exe")
	Menu, Tray, Icon,Icon_gruen.ico,,1
Else if WinExist("ahk_exe zplayer.exe")
	Menu, Tray, Icon,Icon_gelb.ico,,1
Else
	Menu, Tray, Icon,Icon_rot.ico,,1
return
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

31 Jul 2021, 07:31

Huhu KHA,

jaaaaa, das klappt perfekt :dance:
Ich danke dir vom ganzen Herzen! :bravo:
Ich freu mich riesig! :superhappy:

Habe mich gestern auch nochmal an deinen Vorschlag mit % A_Temp "\Icon_gelb.ico" rangewagt. :o
Aber leider klappt da nichts und ich mache wohl wieder alles falsch. :headwall:

Habe das alles versucht:

FileInstall, Icon_rot.ico, % A_Temp "\Icon_rot.ico",1
FileInstall, Icon_rot.ico, % A_Temp "C:\Icon_rot.ico",1
FileInstall, Icon_rot.ico, %A_Temp "C:\Icon_rot.ico",1
FileInstall, Icon_rot.ico,%A_Temp% \Icon_rot.ico,1
FileInstall, Icon_rot.ico,%A_Temp%\Icon_rot.ico,1
(exakt nach dem Beispiel hier: https://ahkde.github.io/docs/commands/FileInstall.htm)
FileInstall, Icon_rot.ico,"%A_Temp%\Icon_rot.ico",1
FileInstall, Icon_rot.ico, %A_Temp% "C:\Icon_rot.ico",1
FileInstall, Icon_rot.ico,C:\temp\Icon_rot.ico,1
(Anmerkung: Den C:\temp Ordner habe ich sogar selbst angelegt, um Probleme zu vermeiden...)
FileInstall, Icon_rot.ico,"C:\temp\Icon_rot.ico",1
(Anmerkung: Den C:\temp Ordner habe ich sogar selbst angelegt, um Probleme zu vermeiden...)

Klappt alles nicht :(
Vor allem beim letzten bin ich sehr verwundert, dass das nicht klappt :terms:

Unter https://ahkde.github.io/docs/Variables.htm#Temp steht nun auch nicht wirklich eine Erklärung wie es zu verwenden ist und auch kein Beispiel :crazy:
Was mache ich falsch? :wtf:
UmbrellaCorp
Posts: 26
Joined: 30 Jan 2020, 21:10

Re: Tooltip im Tray und Icon im Tray ändern

31 Jul 2021, 17:13

Ahhh, jetzt klappt alles hiermit :

FileInstall, Icon_rot.ico, % A_Temp "\Icon_rot.ico",1
und
menu,tray,icon, % A_Temp "\Icon_rot.ico",,1
und das Löschen:
OnExit("Icons_loeschen")
Icons_loeschen()
{
FileDelete, % A_Temp "\Icon_rot.ico"
}
Das dann natürliuch mit allen 3 Icons...

Puuh, eine schwere Geburt :) Aber geschafft!!! :superhappy:

Ich danke euch allen!!! :bravo:

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: Noitalommi_2 and 27 guests