Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi STRG + ALT + ENTF sperren (https://www.delphipraxis.net/21889-strg-alt-entf-sperren.html)

Luckie 9. Mai 2004 17:48

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.

CReber 9. Mai 2004 18:29

Re: STRG + ALT + ENTF sperren
 
Code:
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).
Weiß einer wie das Programmiertechnisch umzusetzen ist?

Luckie 9. Mai 2004 18:31

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. ;)

fiasko 9. Mai 2004 20:56

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.

CReber 10. Mai 2004 08:11

Re: STRG + ALT + ENTF sperren
 
Code:
  LLKHF_ALTDOWN = 0x00000020;
Da kommt nen Fehler -> ; erwartet aber 0x00000020 gefunden... Liegt's an Delphi? Steht ja im Sourcecode irgendwas ;)

Luckie 10. Mai 2004 08:16

Re: STRG + ALT + ENTF sperren
 
0x00000020 ist die C Notation für eine Hexadezimalzahl in Delphi ist das: $00000020.

w3seek 10. Mai 2004 08:32

Re: STRG + ALT + ENTF sperren
 
schreib dir einen msgina hook, damit kannst du system events hooken und z.b. ctrl+alt+del abfangen

MisterNiceGuy 10. Mai 2004 09:01

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

alcaeus 10. Mai 2004 13:25

Re: STRG + ALT + ENTF sperren
 
@MisterNiceGuy:
[quote="hOnkibOnkIch werde mein fertiges Programm hier präsentieren....[/quote]

Ich bin auch noch gespannt ;)

Thorben86 10. Mai 2004 13:29

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.
Seite 3 von 4     123 4      

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