![]() |
Windows 7 Startmenü verstecken
Hallo,
ich möchte das Windows 7 Startmenü dauerhaft ausblenden. Das Ausblenden ansich geht recht einfach:
Delphi-Quellcode:
Aber es erscheint trotzdem wieder wenn z.B. die Windows Taste oder CTRL+ESC gedrückt wird. Also habe ich diese Tastenkombinationen durch einen Hook abgefangen.
procedure HideStartmenu;
var Startmenu: Hwnd; begin Startmenu := FindWindow('DV2ControlHost', nil); if Startmenu <> 0 then ShowWindow(Startmenu, SW_HIDE); end; Jetzt erscheint das Windows 7 Startmenü aber immer noch wenn ich einen Doppelklick auf den Desktop mache. OK, also hab ich den Mausdoppelklick auch noch durch einen Hook abgeschaltet. Jetzt wird der Doppelklick abgefangen und das Startmenü erscheint trotzdem noch beim Doppelklick auf den Desktop. Hat vielleicht jemand eine Idee wie ich feststellen kann wann sich das Startmenü öffnet ?? KUBA |
AW: Windows 7 Startmenü verstecken
Bei meinen Win7 Installationen gibt es das Startmenü nicht mit Doppelklick auf den Desktop, und da ich das niemals irgendwo bewusst abgeschaltet habe, scheint mir das das Standardverhalten zu sein. Ergo: Du musst das irgendwo aktiviert haben, womit sich das Problem einfach durch Deaktivierung an selber (mir nicht bekannter) Stelle lösen lassen sollte.
|
AW: Windows 7 Startmenü verstecken
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, dieses Verhalten bei Doppelklick auf den Desktop ist recht seltsam. Bisher kann ich mir nicht so recht erklären wie das zusammenhängt. Dieses Verhalten tritt in meinem KIOSK Programm auf, wenn der KIOSK Benutzer am Desktop angemeldet ist.
Habe das Verhalten auch nochmal genauer untersucht. Wenn der KIOSK Benutzer am Desktop angemeldet wird erscheint die Taskleiste. In diesem Zustand geht das Startmenü nicht auf wenn ich auf dem Desktop einen Doppelklick ausführe. Im Hintergrund wird ein Delphi Programm gestartet, sobald dieses Programm gestartet ist blendet es die Taskleiste und den Windows ORB aus. Ab diesem Moment geht das Startmenü auf wenn ich einen Doppelklick auf den Desktop mache. Inzwischen habe ich eine Erklärung für das Öffnen des Startmenü beim Doppelklick auf den Desktop. Sobald die Taskleiste/ORB ausgeblendet sind erscheint das Startmenü bei Doppelklick auf den Desktop. Wenn die Taskleiste/ORB nicht ausgeblendet wird/werden, dann passiert beim Doppelklick auf den Desktop nichts. Also, Lösung für das Problem: Taskleiste/ORB nicht ausblenden (dadurch würde Startmenü bei Doppelklick auf Desktop ausgelöst). Den angehängten Hook verwenden :idea: Dieser Hook schließt das Startmenü beim Klick auf den Windows Start ORB. Da beim Doppelklick auf den Desktop, mit eingeblendeter Taskleiste/ORB nichts mehr passiert müssen jetzt nur noch bestimmte Tastenkombinationen gehookt werden, das geht so wie ![]() KUBA PS: Habe herausgefunden, dass der Doppelklick-Effekt auftritt sobald der Desktop durch folgende Funktion versteckt wird:
Delphi-Quellcode:
ShowWindow(FindWindow(nil,'Program Manager'),SW_HIDE);
|
AW: Windows 7 Startmenü verstecken
Das in deinem anderen Thread angesprochene Problem mit der CPU Auslastung liegt an deiner Poll-Schleife;
Delphi-Quellcode:
Da fehlt zwischendurch z.B. ein Delay. So rennst du so schnell durch die Schleife wie es eben die CPU erlaubt und lastest die dabei komplett aus.
while not Terminated do
begin WaitForInputIdle(hInstance, 10); if (GetAsyncKeyState(VK_LBUTTON) <> 0) and PtInRect(R, Mouse.CursorPos) then Synchronize(DoClick); end; |
AW: Windows 7 Startmenü verstecken
öhm, das ist doch kein Mouse-Hook was du da hast, sondern ein Mouse-Poll.
Bei einem Mouse-Hook bekommst du bei jedem Ereignis für die Maus ein Event worauf du reagieren kannst. Da ist dann so eine CPU-fressende Schleife nicht notwendig. |
AW: Windows 7 Startmenü verstecken
Und für einen Lowlevel Maushook bzw. Lowlevel Tastaturhook ist noch nicht einmal eine externe DLL notwendig, das geht auch in der Exe selbst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 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