Announcement

Collapse
No announcement yet.

Tastatursperre?

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

  • Tastatursperre?

    Ich schreibe ein Überwachungsprogramm, habe aber keine ahnung, wie ich die Tastatur systemweit sperren kann. Eine Hook-Funktion kann die daten nicht manipulieren und über messages erhalte ich nur daten über mein eigenes Programm.

  • #2
    Hey Robert,

    probier mal hiermit etwas zu machen (bei mir funktoniert es nicht, aber vielleicht kannst Du ja was ändern)... ich weiß übrigens wie man die IP des Rechners über Delphi auslesen kann...

    PROCEDURE TForm1.TurnSystemKeysOff;
    VAR
    dummy: INTEGER;
    BEGIN
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, INTEGER(TRUE), @Dummy, 0)
    END;

    PROCEDURE TForm1.TurnSystemKeysOn;
    VAR
    dummy: INTEGER;
    BEGIN
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, INTEGER(FALSE), @Dummy, 0)
    END;

    C U in school...

    P.S.: May the force be with you..

    Comment


    • #3
      Hallo zusammen,
      leider Funktioniert die Tastatursperre wie vorher beschrieben nur unter 95/98. Wer weiß denn wie das ganze unter NT/2000 zu verwirklichen ist.
      Ich denke es geht nur über einen Hook. Wer hat da denn Erfahrungen?
      Bitte Mail an [email protected]

      Thank you im voraus....

      Jen

      Comment


      • #4
        Hallo Jens-Peter!

        Unter NT bin ich auch noch auf der Suche nach einer Lösung, aber selbst mit Hooks bin ich nicht zu dem Ziel gekommen. :-(
        Irgendwie scheint NT zwei Keyboard-Messages abzusetzen (zu erhalten?), wobei es mir bisher nur gelungen ist, die erste Message abzufangen...

        Ciao, Marcu

        Comment


        • #5
          Hallo zusammen
          Habe mal diesen Source gefunden, der auch getestet ist(Win95/98).
          Einfach als Komponente in Benutzer Compilieren.

          {
          This component for enable/disable keyboard.
          Klavyenizin kontrolu artik elinizde!
          izzet uslu
          istanbul-TURKEY
          http://members.xoom.com/izus
          [email protected]
          }
          unit EDKeyb;
          {$R EDKeyb.res}

          interface

          uses
          Windows, Messages, Classes, Controls, Forms, dsgnintf,WinTypes,Winprocs;

          type

          TAboutProperty = class(TPropertyEditor)
          private
          procedure Edit; override;
          function GetAttributes: TPropertyAttributes; override;
          function GetValue: string; override;
          end;

          TDisableEnableKeyboard = class(TComponent)
          private
          { Private declarations }
          FAbout:TAboutProperty;
          protected
          { Protected declarations }
          public
          function Disable : boolean;
          procedure Enable;
          published
          { Published declarations }
          property About : TAboutProperty read FAbout write FAbout;
          end;

          procedure Register;
          var oldHook: HHook;

          implementation

          function KbHook( code: Integer; wparam: Word; lparam: LongInt ): LongInt;
          begin
          if code < 0 then
          KbHook := CallNextHookEx( oldHook, code, wparam, lparam )
          else
          KbHook := 1;
          end;

          function TDisableEnableKeyboard.Disable : boolean;
          begin
          oldHook := SetWindowsHookEx( WH_KEYBOARD, @KbHook, HInstance, 0 );
          Disable := oldHook <> 0;
          end;

          procedure TDisableEnableKeyboard.Enable;
          begin
          if oldHook <> 0 then begin
          UnhookWindowshookEx( oldHook );
          oldHook := 0;
          end;
          end;

          { TAboutProperty }

          procedure TAboutProperty.Edit;
          begin
          Application.MessageBox('By izzet uslu - 2000'#13#13'E-Mail : [email protected]'#13'WEB : http://members.xoom.com/izus','DisableEnableKeyboard component version 1.0', MB_OK+ MB_ICONINFORMATION);
          end;

          function TAboutProperty.GetAttributes: TPropertyAttributes;
          begin
          GetAttributes:=[paDialog, paReadOnly];
          end;

          function TAboutProperty.GetValue: string;
          begin
          GetValue:='(About)';
          end;

          procedure Register;
          begin
          RegisterComponents('izus', [TDisableEnableKeyboard]);
          RegisterPropertyEditor(TypeInfo(TAboutProperty), TDisableEnableKeyboard, 'ABOUT', TAboutProperty);
          end;

          begin
          oldHook:=0;
          end

          Comment

          Working...
          X