Announcement

Collapse
No announcement yet.

Tastatursperre

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tastatursperre

    Moin<p>
    Ist es in Delphi möglich bestimmte Tasten zu sperren, so dass im fertigen Programm z.B. 'Strg'+'Alt'+'Entf' nicht gedrückt werden können? Danke!

  • #2
    Hallo Sascha,

    mit einem Hook kannst Du unter anderem alle Tastatureingaben "abfangen" und "manipulieren" bevor sie an Dein Programm weitergereicht werden. Die Tastenkombination Strg + Alt + Enft kannst Du unter NT und W2K nicht "abfangen" (die einzige Lösung die eventuell funktioniert ist ein eigener Tastaturtreiber). Bei Win95 u. Win98 weiß ich nicht ob Du diese Tastenkombination "abfangen kannst".

    Das folgende kleine Beispiel zeigt einen möglichen Weg:
    <pre>
    type
    function HotKey(int: integer; key, lparam: word): integer; stdcall;

    var
    hook: integer;
    <p>
    <b>implementation</b>
    <p>
    function HotKey(int: integer; key, lparam: word): integer; stdcall;
    begin
    if int <> 0 then callnexthookex(hook, int, key, lparam);
    result := 0;
    case key of
    VK_F2: Form1.button1.enabled := false;
    VK_F3: Form1.button1.enabled := true;
    end;
    end;
    <p>
    <p>
    procedure TForm1.FormCreate(Sender: TObject);
    var
    a: integer;
    begin
    hook := SetWindowsHookEx(wh_keyboard, @HotKey, 0, getwindowthreadprocessid(handle, @a));
    end;
    </pre>

    Tschüß

    Torste

    Comment

    Working...
    X