Entwickler-Ecke

Windows API - Strg.-Alt-Entf. Tastendruck abfragen


koller1 - So 14.08.05 17:33
Titel: Strg.-Alt-Entf. Tastendruck abfragen
Hallo!

Ich habe schon im Forum gesucht um im FAQ einen Artikel dazu gefunden.........aber ich weiß nicht, wie ich das jetzt für Strg-Alt-Entf umsetzen soll. Hier meine Anfänge.


Delphi-Quelltext
1:
RegisterHotKey(Handle, 174,  VK_CONTROL or  VK_MENU, VK_DELETE);                    


Aber das geht nicht, geht diese Konstellation nicht? Und was muss ich statdem eingeben?

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.


BenBE - So 14.08.05 18:54

Strg+Alt+Entf wird im Kernel-Mode vom Betriebssystem gehandhabt und kann nur mit Kernel-Treibern abgefangen werden. Diese können mit Delphi NICHT programmiert werden.


koller1 - So 14.08.05 19:11

Ruft Strg-Alt-Entf vielleicht irgendeinen Prozess auf, den man ausfindig machen kann?


Raffo - Mi 17.08.05 22:40

Er ruft das "Windows Task-Manager" Fenster auf, welches man mit FindWindow entdecken kann // im Prinzip auch Canceln etc...


Motzi - Mi 17.08.05 23:25

user profile iconBenBE hat folgendes geschrieben:
Strg+Alt+Entf wird im Kernel-Mode vom Betriebssystem gehandhabt und kann nur mit Kernel-Treibern abgefangen werden.

Stimmt nicht, du kannst dir eine eigene GINA schreiben, mit der geht das auch. Und die kannst du sogar mit Delphi machen! WIE ist allerdings eine andre Frage - leicht ist es sicher nicht! ;)


sango - Mi 17.08.05 23:29

wird aber gerade unter winxp und auch unter win2k afaik schwer, den dort öffnet sich ja (je nach einstellung) nicht einfach nur der task manager sonder es wird erstmal alles in gehiddet. also alles bis auf diese auswahl halt. weiss nicht ob da ein programm in der art noch "macht" hat.


Delete - Do 18.08.05 00:49

user profile iconsango hat folgendes geschrieben:
wirdden dort öffnet sich ja (je nach einstellung) nicht einfach nur der task manager sonder es wird erstmal alles in gehiddet.

Bitte wie? :shock: Es wird auf einen anderen Desktop umgeschaltet. Mit verstecken hat da snichts zu tun.


retnyg - Do 18.08.05 00:53

user profile iconMotzi hat folgendes geschrieben:
user profile iconBenBE hat folgendes geschrieben:
Strg+Alt+Entf wird im Kernel-Mode vom Betriebssystem gehandhabt und kann nur mit Kernel-Treibern abgefangen werden.

Stimmt nicht, du kannst dir eine eigene GINA schreiben, mit der geht das auch. Und die kannst du sogar mit Delphi machen! WIE ist allerdings eine andre Frage - leicht ist es sicher nicht! ;)

afaik ist auf assarbad's homepage ein gina beispiel code http://assarbad.net


Motzi - Do 18.08.05 01:03

Ja, ich weiß, aber trotzdem ist es nicht einfach und ich würde mich hüten solch gravierende Eingriffe ins System zu machen, wenn ich nicht wirklich Ahnung hab WAS genau ich da eigentlich mach!!


sango - Do 18.08.05 01:55

user profile iconLuckie hat folgendes geschrieben:
user profile iconsango hat folgendes geschrieben:
wirdden dort öffnet sich ja (je nach einstellung) nicht einfach nur der task manager sonder es wird erstmal alles in gehiddet.

Bitte wie? :shock: Es wird auf einen anderen Desktop umgeschaltet. Mit verstecken hat da snichts zu tun.

hidden heisst verstecken, für mich ist verstecken auch wenn man nen anderen desktop drüber legt. ich hab ja nicht von abschalten oder so gesprochen sondern von hidden, hidden ist wenn man etwas nichtmehr sieht. und ich seh es dnan nichtmehr. soviel dazu.


Delete - Do 18.08.05 02:49

Deswegen spricht man beim Fernsehen ja auch von verstecken und nicht von umschalten. :mrgreen: Verstecken beschreibt aber einfach nicht, das, was technisch passiert. Und als Programmierer bin ich nun mal versucht mich möglichst genau auszudrücken, das hilft ungemein bei der Verständigung und ist beim Programmieren eigentlich unabdingbar.

BTW hidden sagt mir was. Das ist die Perfektform von to hide. Aber gehiddet, ist mir eine unbekannte Wortschöpfung. Spricht was dagegen verstecken zu sagen, außer dass es wohl ziemlich uncool ist, dafür aber wohl auch von jedem verstanden wird.


JayEff - Do 18.08.05 03:21

[OT]Luckie total in jedem Punkt zustimm.
Wir haben ne eigene Sprache, nich dass ich nie "cool" sagen wuerde, aber MISCHEN müssen wir nicht, oder? :shock: x)
[/OT]


sango - Do 18.08.05 16:08

user profile iconLuckie hat folgendes geschrieben:

BTW hidden sagt mir was. Das ist die Perfektform von to hide. Aber gehiddet, ist mir eine unbekannte Wortschöpfung. Spricht was dagegen verstecken zu sagen, außer dass es wohl ziemlich uncool ist, dafür aber wohl auch von jedem verstanden wird.

schaff mal mit mac'lern zusammen, da wird dauernd gehiddet. nur so am rande.
aber passt schon.
im kern meinen wir trotzdem das gleiche.


Christian V. - So 21.08.05 12:37

Bei WinXp Prof geht das in der Rechtverwaltung. [Start]<Ausführen: gpedit.msc
da müste es drin sein. Vielleicht kann man auf diese Einstellungen mit Delphi zugreifen.


Delphi-Laie - Do 03.04.08 02:14

user profile iconBenBE hat folgendes geschrieben:
Strg+Alt+Entf wird im Kernel-Mode vom Betriebssystem gehandhabt und kann nur mit Kernel-Treibern abgefangen werden. Diese können mit Delphi NICHT programmiert werden.


Unter http://www.delphipraxis.net/topic13485,0.html findet man in 3. eine URL: http://www.swissdelphicenter.ch/de/showcode.php?id=48 und dort wiederum sehr wohl eine in Delphi programmierte Möglichkeit dazu.

Edit: OK, ich sehe gerade, daß da auch "nur" an Einträgen in der Registry herumgebastelt wird, mit Systemnähe hat das nicht viel zu tun.


Delete - Do 03.04.08 08:59

Der Schlüssel lässt sich auch nur mit administrativen Rechten setzen.


Delphi-Laie - Do 03.04.08 10:14

Ausprobiert habe ich das noch nicht, werde ich aber bei meiner Experimentalfreude am Computer bestimmt bald tun.

Nicht zuletzt gibt es einen Unterschied zwischen dieser Tastenkombination und dem Aufrufen des Taskmanagers (oder eines Derivaten davon) - der Taskmanager ist ja nur eine Option sodann. Somit ist es interessant, was dieser Registryeintrag tatsächlich bewirkt.

Der GinaHook wurde doch aber auch "nur" programmiert - egal, wie systemnah auch immer. Da man in Delphi - soweit mir bekannt - beliebig viel Assembler einbauen kann, müßte die Sperrung von Strg+Alt+Del prinzipiell auch mit Delphi zu programmieren sein (was ich aber ganz gewiß nicht probieren werde).