Hoe blanco icoontje van WinHotkey in het systeemvak?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Ik wil het icoontje van WinHotKey in het systeemvak graag onzichtbaar maken, maar ’t lukt niet…

Wat ik geprobeerd heb:
Met ResHacker de icoontjes van WinHotKey.exe en WinHotKeyCfg.exe door een blanco icoontje vervangen. Hiervoor moest ik WinHotKeyCfg.exe hernoemen in WinHotKeyCf2.exe en deze naam ook aanpassen binnen WinHotKey.exe.
Dat is gelukt, ik zie geen icoontjes meer bij deze programma’s. Alleen blijft het icoontje wel verschijnen in het systeemvak.
De instellingen van WinHotKey worden in het register opgeslagen, maar ook daar zie ik niets wat naar een icoontje verwijst.
Met andere woorden: waar haalt WinHotKey dit icoontje vandaan?

https://directedge.us/content/winhotkey/

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik zie niet wat dit met Softwareontwikkeling te maken heeft :?

Softwareontwikkeling >> Client software algemeen

Verder: Windows biedt gewoon voorzieningen hiervoor, waarom gebruik je die niet?

[ Voor 55% gewijzigd door RobIII op 19-05-2023 12:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Sorry, ik kon geen betere rubriek vinden.

Die voorzieningen van Windows werken hier niet voor. Het programma blijft zichtbaar in het systeemvak.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En als je 't gewoon versleept naar dat "pijltje" in je taakbalk en daar op los laat?

Afbeeldingslocatie: https://tweakers.net/i/lALr2QQRz1pk4pGe7SUaa9FCSfY=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/euZey6hg9liI6Os8WozYynJM.png?f=user_large

[ Voor 53% gewijzigd door RobIII op 19-05-2023 12:30 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Bedankt, maar daarmee versleep ik het probleem...
De taakbalk is wat anders dan het systeemvak.

[ Voor 48% gewijzigd door Tweakersnetfan op 19-05-2023 12:50 ]


Acties:
  • +1 Henk 'm!

  • CB32
  • Registratie: November 2011
  • Laatst online: 19:01
Waarschijnlijk wordt de tray icon niet geladen uit de applicatie icon. Zit dan ergens dieper in de .exe of andere bestanden.

Acties:
  • +1 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Tweakersnetfan schreef op vrijdag 19 mei 2023 @ 12:48:
Bedankt, maar daarmee versleep ik het probleem...
De taakbalk is wat anders dan het systeemvak.
Het is dan toch prima verborgen? Als je niet wilt dat de gebruiker überhaupt weet dat het draait, dat begint te lijken op stiekem misbruik. ;)

Dat gezegd hebbende: niet de executable aanpassen maar deze parameter gebruiken https://www.autohotkey.com/docs/v1/lib/_NoTrayIcon.htm

edit; oeps, autohotkey <> winhotkey. Die laatste ken ik niet.

[ Voor 6% gewijzigd door F_J_K op 19-05-2023 13:19 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Ik wil zelf het programma niet zien. Ik hoef er zelden iets aan te veranderen, het maakt het systeemvak alleen maar voller. WinHotKey helemaal weg uit het systeemvak zou nog mooier zijn, maar ik las ergens op internet dat dat niet mogelijk was.

In ieder geval bedankt voor het meedenken.

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Met de optie die @RobIII geeft kun je het icoon toch verplaatsen naar het "overflow" deel van systeemvak?

Dat lijkt me toch voldoende voor wat je zoekt?

Acties:
  • 0 Henk 'm!

  • Andre_J
  • Registratie: September 2005
  • Laatst online: 03-10 20:19
Probeer anders een met een Autohotkey scriptje het icoontje te verbergen ;)

Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
CB32 schreef op vrijdag 19 mei 2023 @ 13:07:
Waarschijnlijk wordt de tray icon niet geladen uit de applicatie icon. Zit dan ergens dieper in de .exe of andere bestanden.
Dat vreesde ik ook al. Hier haal ik het icoontje niet zo simpel uit.

Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Andre_J schreef op vrijdag 19 mei 2023 @ 13:34:
Probeer anders een met een Autohotkey scriptje het icoontje te verbergen ;)
Ik ken AHK niet. 'k Heb op basis van bronnen
https://www.autohotkey.co...90-solved-hide-tray-icon/
https://www.autohotkey.co...rmations-about-trayicons/
een poging gedaan een script te maken:

#NoTrayIcon
RegExMatch(TrayIcons("WinHotKey.exe"), "(?<=idn: )\d+", idn)
HideTrayIcon(idn)

maar krijg de melding
"Warning: This variable appears to never be assigned a value.

Acties:
  • 0 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Deze code geeft geen foutmelding, maar het icoontje blijft zichtbaar.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#NoTrayIcon

DetectHiddenWindows, On

Run, C:\Program Files (x86)\WinHotKey\WinHotkey.exe

Sleep, 500

RegExMatch(TrayIcons("WinHotkey.exe"), "(?<=idn: )\d+", idn)
HideTrayIcon(idn)

TrayIcons(sExeName = "")
{
WinGet, pidTaskbar, PID, ahk_class Shell_TrayWnd
hProc:= DllCall("OpenProcess", "Uint", 0x38, "int", 0, "Uint", pidTaskbar)
pProc:= DllCall("VirtualAllocEx", "Uint", hProc, "Uint", 0, "Uint", 32, "Uint", 0x1000, "Uint", 0x4)
idxTB:= GetTrayBar()
SendMessage, 0x418, 0, 0, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd ; TB_BUTTONCOUNT
Loop, %ErrorLevel%
{
SendMessage, 0x417, A_Index-1, pProc, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd ; TB_GETBUTTON
VarSetCapacity(btn,32,0), VarSetCapacity(nfo,32,0)
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", pProc, "Uint", &btn, "Uint", 32, "Uint", 0)
iBitmap := NumGet(btn, 0)
idn := NumGet(btn, 4)
Statyle := NumGet(btn, 8)
If dwData := NumGet(btn,12)
iString := NumGet(btn,16)
Else dwData := NumGet(btn,16,"int64"), iString:=NumGet(btn,24,"int64")
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", dwData, "Uint", &nfo, "Uint", 32, "Uint", 0)
If NumGet(btn,12)
hWnd := NumGet(nfo, 0)
, uID := NumGet(nfo, 4)
, nMsg := NumGet(nfo, 8)
, hIcon := NumGet(nfo,20)
Else hWnd := NumGet(nfo, 0,"int64"), uID:=NumGet(nfo, 8), nMsg:=NumGet(nfo,12)
WinGet, pid, PID, ahk_id %hWnd%
WinGet, sProcess, ProcessName, ahk_id %hWnd%
WinGetClass, sClass, ahk_id %hWnd%
If !sExeName || (sExeName = sProcess) || (sExeName = pid)
VarSetCapacity(sTooltip,128), VarSetCapacity(wTooltip,128*2)
, DllCall("ReadProcessMemory", "Uint", hProc, "Uint", iString, "Uint", &wTooltip, "Uint", 128*2, "Uint", 0)
, DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "str", wTooltip, "int", -1, "str", sTooltip, "int", 128, "Uint", 0, "Uint", 0)
, sTrayIcons .= "idx: " . A_Index-1 . " | idn: " . idn . " | Pid: " . pid . " | uID: " . uID . " | MessageID: " . nMsg . " | hWnd: " . hWnd . " | Class: " . sClass . " | Process: " . sProcess . " | Tooltip: " . sTooltip . "|`n"
}
DllCall("VirtualFreeEx", "Uint", hProc, "Uint", pProc, "Uint", 0, "Uint", 0x8000)
DllCall("CloseHandle", "Uint", hProc)
Return sTrayIcons
}

HideTrayIcon(idn, bHide = True)
{
idxTB := GetTrayBar()
SendMessage, 0x404, idn, bHide, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd ; TB_HIDEBUTTON
SendMessage, 0x1A, 0, 0, , ahk_class Shell_TrayWnd
}

GetTrayBar()
{
ControlGet, hParent, hWnd,, TrayNotifyWnd1 , ahk_class Shell_TrayWnd
ControlGet, hChild , hWnd,, ToolbarWindow321, ahk_id %hParent%
Loop
{
ControlGet, hWnd, hWnd,, ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd
If Not hWnd
Break
Else If hWnd = %hChild%
{
idxTB := A_Index
Break
}
}
Return idxTB
}
Pagina: 1