![]() |
Windows Key - Shell
Hi,
ich schreibe gerade an einem Shell Ersatz. Nun ist mir aufgefallen, wenn ich den Explorer beende, dass die Windows Taste auf dem Keyboard gar nicht mehr geht. Also ein Hook oder ein KeyDown zeigt nichts mehr als wäre die Taste gar nicht mehr da. WEnn die explorer.exe noch läuft geht der Hook oder auch das Keydown Event. Wie schaffe ich es, dass die Windows Taste auch ohne der explorer.exe verwendbar ist? Jemand einen Tipp? |
Re: Windows Key - Shell
Das kommt auch darauf an unter welchem Betriebssystem. Zumindest ab 2000/XP wird es da schon schwierig. Da musst du wohl direkt an den Treiber ran.
Ohne die explorer.exe funktioniert aber auch vieles andere nicht mehr, was du dann selbst ersetzen musst. |
Re: Windows Key - Shell
An die Treiber...
Muss ich mal Goggeln. Danke! Die anderen "Sachen" habe ich bereits eigentlich, zumindest was unbedingt nötig, nachgebaut. |
Re: Windows Key - Shell
Moin Zusammen,
also bei mir ist die Windows-Taste auch ohne Explorer noch nutzbar (XP Pro SP3) Ich habe sie allerdings mit ![]() |
Re: Windows Key - Shell
Ich habe es mit:
RegisterHotkey(Handle,id1,MOD_WIN,0); RegisterHotkey(Handle,id1,0,MOD_WIN); und das gleiche mit SC_TASKLIST versucht. Da bekomme ich keinen Hotkey gesendet. Ein registrierter Hotkey STRG-A wird Registriert und ich bekomme auch den HotKey gesendet. |
Re: Windows Key - Shell
Aber so geht's:
Delphi-Quellcode:
Für die rechte Windows-Taste dann mit VK_RWIN.
const
VK_LWIN = $5B; VK_RWIN = $5C; VK_APPS = $5D; begin if not RegisterHotKey(self.Handle,1,MOD_WIN,VK_LWIN) then ShowMessage(SysErrorMessage(GetLastError)); end; |
Re: Windows Key - Shell
Super Danke!
Geht super! Nun habe ich noch das Problem, wenn ich auch noch WIN+E für den Explorer machen will mir beide Hotkeys ausgelößt werden:
Delphi-Quellcode:
Wenn ich nun die WIN-Taste drück und halte wird id1 ausgelößt drücke dann noch die E Taste dazu wird auch id2 ausgelößt.
RegisterHotKey(MainFormHandle, id1, MOD_WIN, VK_LWIN);
RegisterHotKey(MainFormHandle, id2, MOD_WIN, VK_E); Hätte versucht mit GetAsyncKeyState(VK_LWIN) <> 0 zu überprüfen ob die Taste von id1 noch unten ist. Jedoch sagt mir Delphi dann das die immer 0 ist. Also muss hier wahrscheinlich noch ein anderer TastenCode als VK_LWIN rein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz