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.
Announcement
Collapse
No announcement yet.
Tastatursperre?
Collapse
X
-
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..
-
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
-
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
-
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
Comment