![]() |
STRG + ALT + ENTF sperren
Also ich habe jetzt schon viele Informationen zu dem System gesammelt trotzdem bin ich auf keine gute Lösung gekommen...
Habe das mit dem Taskmanager abschalten per Regedit probiert aber das ist keine wirklich elegante Lösung. Man hat mir gesagt man kann es per Hook machen aber ich hab nicht wirklich Ahnung von Hooks ;) Am liebsten wäre mir ja ein Code-Beispiel dafür... thX (am besten alle Systemeingaben sperren -> ESC + STRG + Q , ALT + F4 usw.) |
Re: STRG + ALT + ENTF sperren
Hi!
Such mal hier, da gibt es schon einige Threads dazu. Ciao fkerber |
Re: STRG + ALT + ENTF sperren
|
Re: STRG + ALT + ENTF sperren
Sieh mal was die MSDN dazu bereithält:
![]() Scroll ein bisschen runter, da steht genug Code. Ansonsten such hier auf dem Forum, das war hier oft genug... |
Re: STRG + ALT + ENTF sperren
DArf man fragen, wozu Strg+Alt+Entf sperren willst? Solch ein Programm würde bei mir gleich runterfliegen ;-)
PS: Unter NTff ist es ohne sehr große Umstände gar nicht möglich die Kombination zu sperren. Ich glaube Assarbad hat dazu mal was geschrieben... Such hier am besten mal-.. |
Re: STRG + ALT + ENTF sperren
Erstens: Wozu Alt+F4 sperren? Ein Fenster schließen kann ich auch anders.
Zweitens: Auch wenn du Strg+Alt+Entf sperrst, ich brauche nur taskmgr auszuführen und dein Programm ist überlistet. Drittens: Was macht denn eigentlich ESC + STRG + Q? Strg+Esc macht das Startmenü auf, aber das Q? |
Re: STRG + ALT + ENTF sperren
is war sicher nicht das einfachste, aber von der Funktionalität her das beste:
Programmier den Tastaturtreiber neu / fang die nachrighten gleich da ab -> asm, asm, asm |
Re: STRG + ALT + ENTF sperren
Erstes auch ein Hook nützt da nichts, da diese Tastenkombination von Windows extra behandelt wird. Da hilft nur abfangen bevor Windows seinen Daumen drauf hat. Dies wird aber nur über einen Tastaturtreiber gehen, also nix mit Delphi.
Alt + F4:
Delphi-Quellcode:
Und jetzt meine beliebteste Frage zu diesem Thema: Warum das ganze? Wenn ich einen Rechner dicht machen will, dann geht das über den von MS empfohlenen Weg und zwar über Policies - einstellbar über den Policie-Editor. Und erklär mir nicht du wolltest Software für ein Internet-Cafe oder für das Schulnetzwerkschreiben, das ist blödsinn.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin CanClose := False: end; |
Re: STRG + ALT + ENTF sperren
Zitat:
Zitat:
Zitat:
|
Re: STRG + ALT + ENTF sperren
Zitat:
|
Re: STRG + ALT + ENTF sperren
Also ich hab mich grad ein wenig schlau gemacht und so wie es scheint sind Policies ja nur im Netzwerk funktionstüchtig oder? Ich brauche eine Methode den Rechner über eine bestimmte Dauer dicht zu machen bis das (hardwaregesteuerte) Ereignis wieder auftritt und der Rechner entsperrt wird...
Angenommen es handelt sich z.b. um einen Rechner wo viele Leute dran vorbeilaufen ;) Dann muss er gesperrt sein und genau daran arbeite ich gerade ... mit LockWorkStation oder BlockInput ist es noch nicht das wahre... |
Re: STRG + ALT + ENTF sperren
Policies sollten auch lokal funktionieren.
|
Re: STRG + ALT + ENTF sperren
Erklär bitte mal genau, was für eine Art von Programm du machen willst und wieso du gar alles Sperren willst. Ich kenne da auch ne andere Methode: Tastatur mitnehmen und Superkleber in die PS2-Schnittstelle :mrgreen:
Nein, im Ernst jetzt, warum bist du mit dem Sperren der Arbeitsstation nicht zufrieden? |
Re: STRG + ALT + ENTF sperren
So ich habs jetzt anders gelöst ;)) Bald isset soweit dann release ich es hehe ;)
|
Re: STRG + ALT + ENTF sperren
Hi!
Verrätst du uns auch wie? Falls mal wieder jemand das Problem hat. Ciao fkerber |
Re: STRG + ALT + ENTF sperren
Mit LockWorkStation... ist zwar nicht so komfortabel und sieht nicht so schick aus ;) aber egal... Vlt. findet sich ja irgendwann ein anderer Weg
|
Re: STRG + ALT + ENTF sperren
Also wenn ihr doch den Code fürs sperren des Taskmanagers doch noch braucht, könnt ich mal nach suchen, hab den mal irgendwo gespeichert.
|
Re: STRG + ALT + ENTF sperren
Hallo,
ab Win 2k gibt es einen Hook mit dem du alles bis auf CTRL+ALT+ENTF abschalten kannst (mit WH_KEYBOARD_LL (mein Delphi 6 kennt das allerdings noch nicht, da muß man etwas Hand anlegen). Die Buttons beim Drücken von CTRL+ALT+ENTF zu deaktivieren kann man entweder in'ner Domain per Policy oder einfach von Hand die entsprechenden Registry-Werte setzen (unter HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies). |
Re: STRG + ALT + ENTF sperren
Zitat:
|
Re: STRG + ALT + ENTF sperren
Zitat:
|
Re: STRG + ALT + ENTF sperren
Alt + F4 kann er direkt im Source deaktivieren und Strg + Esc + Q ist vollkommener Quak, da bei Strg + Esc das Startmenü aufklappt.
|
Re: STRG + ALT + ENTF sperren
Code:
Weiß einer wie das Programmiertechnisch umzusetzen ist?
ab Win 2k gibt es einen Hook mit dem du alles bis auf CTRL+ALT+ENTF abschalten kannst (mit WH_KEYBOARD_LL (mein Delphi 6 kennt das allerdings noch nicht, da muß man etwas Hand anlegen).
|
Re: STRG + ALT + ENTF sperren
"_LL" ist ein LowLevel Keyboardhook. Bemüh mal die Forensuche oder Google. Aber nicht überrascht sein, wenn du nur C Code findest. ;)
|
Re: STRG + ALT + ENTF sperren
Ich verwende folgende Kode für ne DLL die das macht:
Delphi-Quellcode:
library foo;
uses Windows, Messages, SysUtils; var g_hHookKbdLL: HHOOK = 0; { This only works with on Win NT 5.0 (formely known as Win 2000) upwards, but Delphi's WinAPI is somethink like obselete in this manner. } const WH_KEYBOARD_LL = 13; LLKHF_ALTDOWN = 0x00000020; type { Structure used by WH_KEYBOARD_LL } KBDLLHOOKSTRUCT = record vkCode: DWORD; scanCode: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: DWORD; end; PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT; { Trap task-switching keys by returning without passing along. } function MyTaskKeyHookLL(nCode: Integer; wp: WPARAM; lp: LPARAM): LRESULT; stdcall; var pkh: PKBDLLHOOKSTRUCT; bCtrlKeyDown: BOOL; begin pkh:=PKBDLLHOOKSTRUCT(lp); if nCode=HC_ACTION then begin bCtrlKeyDown := GetAsyncKeyState(VK_CONTROL) shr ((sizeof(SHORT) * 8) - 1)<>0; // Ctrl+Esc if ((pkh^.vkCode=VK_ESCAPE) and bCtrlKeyDown) or // Alt+TAB ((pkh^.vkCode=VK_TAB) and (pkh^.flags and LLKHF_ALTDOWN=LLKHF_ALTDOWN)) or // Alt+Esc ((pkh^.vkCode=VK_ESCAPE) and (pkh^.flags and LLKHF_ALTDOWN=LLKHF_ALTDOWN)) or // Start Menu ((pkh^.vkCode=VK_LWIN) or (pkh^.vkCode=VK_RWIN)) then begin result:=1; exit; end; end; result:=CallNextHookEx(g_hHookKbdLL, nCode, wp, lp); end; function DisableTaskKeys(bDisable: bool): bool; stdcall; begin if bDisable then begin if g_hHookKbdLL=0 then g_hHookKbdLL := SetWindowsHookEx(WH_KEYBOARD_LL, MyTaskKeyHookLL, HInstance, 0); end else if g_hHookKbdLL<>0 then begin UnhookWindowsHookEx(g_hHookKbdLL); g_hHookKbdLL := 0; end; result:=g_hHookKbdLL<>0; end; exports DisableTaskKeys name 'DisableTaskKeys'; end. |
Re: STRG + ALT + ENTF sperren
Code:
Da kommt nen Fehler -> ; erwartet aber 0x00000020 gefunden... Liegt's an Delphi? Steht ja im Sourcecode irgendwas ;)
LLKHF_ALTDOWN = 0x00000020;
|
Re: STRG + ALT + ENTF sperren
0x00000020 ist die C Notation für eine Hexadezimalzahl in Delphi ist das: $00000020.
|
Re: STRG + ALT + ENTF sperren
schreib dir einen msgina hook, damit kannst du system events hooken und z.b. ctrl+alt+del abfangen
|
Re: STRG + ALT + ENTF sperren
Und es weiß immernoch niemand, wozu das ganze jetzt gut sein soll... Das ist als ob man jemand eine Pistole in die Hand drückt und ihn fragt:"Wozu brauchst du die?" Und er antwortet:"Hm, ich werd sie bald benutzen und euch dann sagen, wozu sie war!"
:roll: Also das kann in meinen Augen nur für irgendein böses Programm zu benutzen sein, sonst würde der gute hOnkibOnk schon längst mal verraten haben, wozu das Prog denn nu gut ist... |
Re: STRG + ALT + ENTF sperren
@MisterNiceGuy:
[quote="hOnkibOnkIch werde mein fertiges Programm hier präsentieren....[/quote] Ich bin auch noch gespannt ;) |
Re: STRG + ALT + ENTF sperren
Also mir fällt außer bösen programmen nur eins ein, nämlich Eins, um den PC abzusperren. Wollen wir mal Hoffen, dass du an sowas bastelst. Hab auch mal damit angefangen, ber liegt immoment on ice
|
Re: STRG + ALT + ENTF sperren
Hi.
Um den Taskmanager zu sperren hab ich letztendlich einen Timer genommen und das hier reingeschrieben:
Code:
Wenn man das mit 20 ms oder so timert reicht das vollkommen aus ;) .
procedure TForm1.Timer1Timer(Sender: TObject);
var h: HWND; //Variable für das Handle des Fensters begin h := FindWindow(nil, PChar('Windows Task-Manager')); //nach Fenster mit dem Namen "Windows Task-Manager" suchen if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0); //wenn gefunden (Handle ist ungleich 0) dann sende eine Message: WM_CLOSE - schließen end; Edit: Wie man sieht blockiert der Code nur die Wirkung und nicht die Ursache... das geht aber wesentlich einfacher zu programmieren ;) . Das Startmenü kann man ähnlich blockieren... dort ist die Fensterbezeichnung "Startmenü". Ich glaub aber das die Fenster bei anderen Sprachversionen von Windows auch anders heißen... aber das ist ja jetzt erstmal egal... es geht ums Prinzip :D . C ya! |
Re: STRG + ALT + ENTF sperren
Das ist ja schrecklich unelegant!
|
Re: STRG + ALT + ENTF sperren
@HaCkAttaCk2001: Eigentlich reicht das in der Timerproc aus:
Delphi-Quellcode:
SendMessage(FindWindow(nil, 'Windows Task-Manager'), WM_CLOSE, 0, 0);
Zitat:
|
Re: STRG + ALT + ENTF sperren
ICh hab es ein wenig anders gelöst und das Programm ist unter Freeware zu finden ;)
|
Re: STRG + ALT + ENTF sperren
Zitat:
Das mag wohl sein... aber wenn einem nichts wirklich besseres einfällt nimmt man das halt. Und was soll man sagen? Es funktioniert! C Ya! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 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 by Thomas Breitkreuz