AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Maus und Tastatur sperren!

Offene Frage von "cherry"
Ein Thema von cherry · begonnen am 29. Sep 2009 · letzter Beitrag vom 30. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Maus und Tastatur sperren!

  Alt 29. Sep 2009, 20:00
Hi Leuts.

Ich versuche gerade eine kleine Anwendung zu schreiben, welche die Maus- und Tastatureingaben vorübergehend untedrückt! Und zwar alle Eingaben, nicht nur die für mein Programm!

Wiso ich das brauche, wolltest du doch gleich fragen oder nicht?! Na ja... Ich lass jetzt mal die ganze Vorgeschichte, da ich sonst eine Stunde lang an diesem Beitrag schreibe. In einem Satzt gehts darum einmalig einen Batch auszuführen der unter keinen umständen unterbrochen werden darf.

Meine erste Idee war alle WH_MOUSE & WH_KEYBORD abzufangen und nicht weiterleiten, der Hook greift aber nicht genug weit unten...

Ideen?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 20:05
LockWorkStation - ist eine WINDOWS-Funktion.

Anwendungsbeispiel:
Delphi-Quellcode:
function LastInput: DWord;
var LInput: TLastInputInfo;
begin
  LInput.cbSize := SizeOf(TLastInputInfo); GetLastInputInfo(LInput);
  Result := GetTickCount - LInput.dwTime;
end;
.
.
.
Procedure..
BEGIN
if Lastinput>100000 then //100 sec
Lockworkstation; // Programme laufen weiter, aber ohne neue Anmeldung keine Aktion möglich
END;
Mehr Infos zu

LASTINPUTINFO: Wenn kein keybd_event und kein mouse_event erfolgt, wird ein Zähler hochgezählt.
Wird ein gewählter Zählerstand (z.B. 100 000 = 100 sec) erreicht (Timer-Abfrage) , wird die WINDOWS-Funktion
LockWorkStation ausgelöst. Alle Programme laufen weiter, aber Tastatur- und Maus-Aktionen werden ohne
Neuanmeldung ignoriert.

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Anwendungsbeispiel:
Der Zählerstand wird auf 0 gesetzt mit dem Befehl mouse_event(0,0,0,0). Den kann man z.B. einfügen (if HIDexist then mouse_event(0,0,0,0)... , wenn der User einen bestimmten USB-Stick benutzt (HID: hiddev.ProductName, hiddev.Attributes.VendorID, hiddev.Attributes.ProductID, hiddev.SerialNumber). Entfernt der User den Stick, wird ein OnRemoval-Ereignis ausgelöst und LockWorkStation wird aktiv.
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 20:48
Zu dem Thema kommt mir gerade ein Gedanke.
Soweit ich weiß lässt sich das ja nicht verhindern,
dass man Strg-Alt-Entf benutzt.

Wie wäre das denn wenn man temporär den Tastaturtreiber deaktiviert,
dann könnte man doch die tastatur garnicht mehr nutzen.
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 20:53
danke fuer deine antwort. gibt es denn keine moeglichkeit das ganze zu machen, ohne dass eine erneute authentifizierungnoetig noetig ist ?

kann man denn die geraete einfach deaktivieren ?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 21:00
Zitat von cherry:
kann man denn die geraete einfach deaktivieren ?
Bei mir geht's nicht ... nur deinstallieren ginge, aber der PC müßte dazu neu gestartet werden und danach wäre die Tastatur dann eh wieder vorhanden

Schreib einen Service, welcher die Batch in ihrem Kontext ausführt.
Ein normaler Benutzer kann diesen dann nicht einfach so beenden.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 21:32
function BlockInput(fBlock: Boolean): Boolean; stdcall; external 'user32.dll'; Untested, aber ich bin mir ziemlich sicher, dass das die Funktion ist die du suchst.

Edit #1:
Ok, habs gerade unter Vista getestet und der Affengriff hat tatsächlich funktioniert... (Das war unter XP aber nicht so, oder?)
Weiterhin könnte ich immernoch bequem über mein G15-Applet alle möglichen Prozesse abschießen und sonst auch mein ganzes System bediehnen...

Edit #2:
Was passiert denn wenn es einen Stromausfall gibt und somit auch das unverzichtbare/göttliche Programm beendet wird?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 21:51
Zitat von mleyen:
Edit #1:
Ok, habs gerade unter Vista getestet und der Affengriff hat tatsächlich funktioniert... (Das war unter XP aber nicht so, oder?)
Weiterhin könnte ich immernoch bequem über mein G15-Applet alle möglichen Prozesse abschießen und sonst auch mein ganzes System bediehnen...
Ich checks mal unter XP, denn es muss ohnehin nur da laufen! -> Hab grad kein Delphi zur Hand, bin morgen wieder im Büro...

Zitat von mleyen:
Edit #2:
Was passiert denn wenn es einen Stromausfall gibt und somit auch das unverzichtbare/göttliche Programm beendet wird?
Tja dann, pech !
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 21:55
STRG+ALT+ENTF geht auch unter XP trotz BlockInput(). Periodisch aufgerufen in sehr kurzen Intervallen, wird der Computer aber trotz STRG+ALT+ENTF dauerhaft blockiert.
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#9

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 21:57
Zitat von Zacherl:
STRG+ALT+ENTF geht auch unter XP trotz BlockInput(). Periodisch aufgerufen in sehr kurzen Intervallen, wird der Computer aber trotz STRG+ALT+ENTF dauerhaft blockiert.
Naja, ich hätte da schon etwas weniger "gebastel" gedacht?!
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Maus und Tastatur sperren!

  Alt 29. Sep 2009, 21:58
Naja was heißt gebastel? In deinem Programm einfach:

Delphi-Quellcode:
while not Aborted do
begin
  BlockInput(true);
  Sleep(10);
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
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