Alt + Strg + Entf simulieren



  • Hi,
    Ich versuche die Tastenkombination Alt + Strg + Entf als virtueller Tastencode zu simulieren. Eigentlich sollte das Windows-Sicherheits Fenster angezeigt werden, es passiert jedoch gar nichts.

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       keybd_event(VK_MENU,0,0,0);
       keybd_event(VK_CONTROL,0,0,0);
       keybd_event(VK_DELETE,0,0,0);
       keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
       keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
       keybd_event(VK_DELETE,0,KEYEVENTF_KEYUP,0);
    }
    


  • Das hat schon seinen Grund, dass das nicht funktioniert. Das ist nämlich die Secure Attention Sequence und wird vom Betriebssystem gesondert behandelt und ist auf normalem Wege weder unterdrückbar noch kann man sie so erzeugen. Du kannst höchstens die GINA-Dll austauschen, das ist eine spezielle Schnittstelle für das Anpassen dieser Logon-Angelegenheiten. Allerdings wäre ein Austauschen dieser systemweit gültig und in den seltensten Fällen eine saubere Lösung. Was hast du denn vor, was das Simulieren dieser Tastenkombination erforderlich machen würde?



  • Wenn du nur den Taskmanager öffnen möchstest, versuchs mal mit shellexecute.



  • Den Taskmanager wird er ja so nicht öffnen können, weil ihm niemand den Button klickt 😉



  • Schade, dann lass ich das mal wieder. ich habe einen Windows 2003 Server, der im Keller steht, ohne Maus Tastatur und Monitor, ich verwalte ihn über VNC, dass Prolbem ist nun, wenn ich etwas installiere, dass einen Neustart erfordert, muss ich diese Tastenkombination drücken, um mich anschliessen anmelden zu können. Jetzt dachte ich, ich könnte ein Programm schreiben, dass als Service läuft, dem ich dann übers LAN einen Befehl sende, der mir die Tastenkombinantion simuliert, ohne dass ich immer in den Keller muss, um eine Tastatur anzuschliessen.



  • Hmm, haben die VNC-Leute das nicht berücksichtigt, dass es irgendwie als Terminalanwendung im System integriert wird um sowas vorzubeugen? Naja, mir gefällt ja die eingebaute Remotedesktop-/Terminalserverfunktion besser. Dein Problem mit dem Strg+Alt+Entf zu Beginn kannst du lösen, indem du in den Sicherheitsrichtlinien ausschaltest, dass diese Tastenkombination erforderlich ist.

    Das kannst in den Sicherheitsrichtlinien machen über Start > Ausführen > "gpedit.msc" > Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Sicherheitsoptionen > "Anmeldung: Strg+Alt+Entf nicht erforderlich".



  • Das ist woll die einfachste und eleganteste Lösung, danke schön 👍



  • Die einfachste und eleganteste Lösung ist wohl, im Menü des VNC-Fensters den Eintrag 'Send CTRl-ALT-DEL' anzuklicken ...

    😉

    Auch nicht ganz unelegant wäre, statt VNC den RemoteDesktop zu verwenden. Der Windows-Server erlaubt ohne zusätzliche Lizenz zwei TerminalServer-Sessions für Mitglieder der Administratoren-Gruppe, und den RDP-Client gibt umsonst bei MS und als OpenSource auch für Linux u.ä.



  • Ups, mir war bis jetzt gar nicht bewusst, dass es da noch nen Menü gibt. Aber das ist wohl wirklich die eleganteste Lösung, danke noch mals an alle. Entschuldigung, dass dieser Thread mittlerweile im falschen Forum gepostet ist.



  • Hm, ich hätte da doch noch ne kleine Frage, wie wrid das den beim VNC realisiert?



  • Ist auf dem VNC-Rechner in der Registry (unter HKLM/Softwar/Microsoft/Windows NT/CurrentVersion/Winlogon) im Schlüssel GinaDLL eine DLL von VNC eingetragen? In dem Fall hätte VNC ja die Möglichkeit, auf die LogonFenster und die Secure Attention Sequence zuzugreifen. Alternativ(unsauberer) könnte sich auch ein Dienst den Winlogon-Desktop aneignen und die entsprechende keydown-Nachricht an das Logon-Fenster senden.



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,
    Im Source von der DLL hier ist nen Beispiel wie man nen Window Callback in SAS einbaut: http://www.codeproject.com/win32/AntonioWinLock.asp?df=100&forumid=62485&exp=0&select=1124331

    (In dem Beispiel ham sie damit STRG-Alt-Entf ausgeknockt aber das geht ja auch andersrum...)

    🙂

    mfg
    125



  • Ok, werde mir das mal ansehen, danke schön


Anmelden zum Antworten