AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows 7 Startmenü verstecken

Ein Thema von kuba · begonnen am 5. Feb 2012 · letzter Beitrag vom 10. Feb 2012
Antwort Antwort
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Windows 7 Startmenü verstecken

  Alt 5. Feb 2012, 15:34
Hallo,

ich möchte das Windows 7 Startmenü dauerhaft ausblenden. Das Ausblenden ansich geht recht einfach:

Delphi-Quellcode:
procedure HideStartmenu;
var
  Startmenu: Hwnd;
begin
  Startmenu := FindWindow('DV2ControlHost', nil);
  if Startmenu <> 0 then
    ShowWindow(Startmenu, SW_HIDE);
end;
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.

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
Stefan Kubatzki
E=mc2

Geändert von kuba ( 5. Feb 2012 um 23:31 Uhr) Grund: Zusatz entfernt - keine Lösung
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Windows 7 Startmenü verstecken

  Alt 5. Feb 2012, 16:57
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Windows 7 Startmenü verstecken

  Alt 5. Feb 2012, 17:41
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

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 hier beschrieben.

KUBA

PS: Habe herausgefunden, dass der Doppelklick-Effekt auftritt sobald der Desktop durch folgende Funktion versteckt wird:ShowWindow(FindWindow(nil,'Program Manager'),SW_HIDE);
Angehängte Dateien
Dateityp: zip hook_mouse.zip (1,9 KB, 6x aufgerufen)
Stefan Kubatzki
E=mc2

Geändert von kuba ( 6. Feb 2012 um 14:47 Uhr) Grund: Mögliche Problemlösung
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Windows 7 Startmenü verstecken

  Alt 10. Feb 2012, 06:29
Das in deinem anderen Thread angesprochene Problem mit der CPU Auslastung liegt an deiner Poll-Schleife;
Delphi-Quellcode:
  while not Terminated do
  begin
    WaitForInputIdle(hInstance, 10);
    if (GetAsyncKeyState(VK_LBUTTON) <> 0) and PtInRect(R, Mouse.CursorPos) then
      Synchronize(DoClick);
  end;
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Windows 7 Startmenü verstecken

  Alt 10. Feb 2012, 07:36
ö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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Windows 7 Startmenü verstecken

  Alt 10. Feb 2012, 09:52
Und für einen Lowlevel Maushook bzw. Lowlevel Tastaturhook ist noch nicht einmal eine externe DLL notwendig, das geht auch in der Exe selbst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz