Batch Programmierung unter WinXP - Tastatur sperren, Funktion wie sleep

  • #1
B

Björn_2

Bekanntes Mitglied
Themenersteller
Dabei seit
09.07.2004
Beiträge
305
Reaktionspunkte
0
Hallo,

ich möchte unter WinXP SP2 ein Batch-Programm schreiben, bei dem es ungemein wichtig ist, dass der Benutzer keine Möglichkeit hat die Tastatur sowie Mouse zu benutzen, d.h. das Bewegen der Mouse kann ruhig dargestellt werden, es dürfen aber keine Klicks übermittelt werden. Des Weiteren muss ich eine kurze Pause in das Skript einbauen (ca. 15sec.).
Ich bin bei der Such nach dem Sperren der Tastatur auf den Befehl
Code:
CTTY NUL
und beim Entsperren auf
Code:
CTTY CON
.
Doch leider kennt Windows diese Befehle nicht.

Unter DOS muss es wohl früher mal einen Befehl
Code:
sleep
gegeben haben. Den kennt Windows aber auch nicht mehr.

Wisst ihr weiter?

Gruß
Björn
 
  • #3
Hallo,
die oben angesprochenen Änderungen in der Registrierungsdatenbank, die gewünschte Pause und eventuelle Programmstarts o.ä. lassen sich mit AutoIt (Freeware, ) erledigen. Das fertige Skript wird kompiliert und liegt als Win32-Programm vor.

Ralf
 
  • #4
Schönen Dank für eure Antworten doch:

@ Luigi_Tirol:
Leider funktioniert das ganze nicht. Wenn ich den Eintrag in der Reg vornehme, kann ich trotzdem noch Mouse und Keyboard bewegen.
Der Versuch über die rundll.exe scheiterte auch. Es gibt nur noch die rundll32.exe und die kennt nicht mehr mouse und keyboard

@ rp:
Ich habe gerade mal einen Blick ins Manual geworfen doch musste ich leider feststellen, dass das nichts für mich ist.
Mit dll's kenne ich mich nicht aus und weiß nicht wie ich da was kopiere und wie ich es später aufrufen soll. Schade :(


Gibt es denn keine fertigen Scripts dafür??

Gruß
Björn
 
  • #5
Björn_2 schrieb:
Mit dll's kenne ich mich nicht aus...

Ich auch nicht. Für die Registry-Änderung reicht die Funktion RegWrite und für die Pause Sleep. Insgesamt vielleicht 5 bis max. 10 Programmzeilen. Was soll denn das Batch-Programm machen?
AutoIt war ursprünglich (und ist heute noch bestens geeignet), Software-Installationen, die sich nicht vorkonfigurieren lassen (unbeaufsichtigte Installationen, bestimmte Vorgaben, ...) zu automatisieren, also Eingaben in Dialogboxen zu tätigen, Schaltflächen zu betätigen usw.

Ralf
 
  • #6
Ich brauche zwei Programme:

1. eines, das Mouse und Keyboard sperrt

und

2. eines, das die Sperrung wieder aufhebt

Eine Datei zum Schlafen habe ich bereits (Luigi_Tirol sei Dank)

Ich habe mir AutoIt mal angeschaut und denke, dass es die Zeile
Code:
BlockInput(1 bzw. 0)
schon tuen müsste.

Kann die denn so alleine in einer Datei stehen?

Gruß
Björn

P.S.: Eine gute Alternative zum automatischen Installieren von Programmen ist AutoInstallation v.1.0 oder ScriptIt, wobei ich ein Problem mit ScriptIt habe, welches ich auch hier im Forum beschrieben habe
 
  • #7
Hallo,
prinzipiell schreibt man den AutoIt-Skript-Code mit einem Editor in eine Textdatei und speichert diese als *.au3 (das ist die Standard-Erweiterung für AutoIt-Skripte). Anschließend startet man Aut2Exe und wählt als Source die *.au3, als Destination einen Namen für die fertige *.exe und ggf. eine *.ico für ein anderes Icon. Convert erstellt das Programm.
BlockInput ist für diesen Zweck geeignet, wirkt aber nur, solange das Skript läuft. Das heißt, alles, was während der Abschaltung von Tastatur und Mouse passieren soll, müsste aus dem Skript heraus passieren oder das Skript muss eine Pause einlegen. Also z.B.:
BlockInput(1)
RunWait(D:\Setup.exe) ; Setup.exe starten und auf Beendigung warten
BlockInput(0)
Exit

oder wenn alles andere aus dem Batch heraus gestartet werden soll:
BlockInput(1)
Sleep(15000) ; 15 Sekunden warten
BlockInput(0)
Exit

Was soll denn während der Deaktivierung von Tastatur und Mouse erledigt werden?

Ralf
 
  • #8
Hallo,

schönen Dank für die Antwort.
Ich dachte eigentlich ein Script schreiben zu können, dass einmal gestartet wird und dann für unbestimmte Zeit Mouse und Tastatur sperrt und ein weiteres, das ebenfalls nur einmal kurz gestartet wird und dann die Sperrung aufhebt.

Im Prinzip sollte das erst einmal eine Art Scriptsammlung werden.

Mein Vorhaben ist nämlich per unbeaufsichtigter Installation einen Rechner komplett einzurichten und nicht jede Software hat einen Installer, der den Silent-Modus unterstützt. Programme wie ScriptIt beispielsweise, erlauben dem Benutzer die Verwendung von Mouse und Tastatur während der Installation. Ungeduldige Nutzer können dann wild hin und her klicken und ggf. die Installationsroutine zerstören. Daher dann das Sperren der Mouse und des Keyboards.

Ich habe mich jetzt aber doch mal ein wenig mehr mit AutoIt3 beschäftigt (hatte AutoIt2 nicht gefunden) und habe festgestellt, dass es doch nicht so kompliziert ist.

Dann werde ich halt auf ein komplettes Installationsscript mit AutoIt zurückgreifen und das ganze mit BlockInput() steuern.

Gruß
Björn
 
  • #9
Hallo miteinander,

ich arbeite in einem größeren Systemhaus.
Wir nutzen AutoIT momentan für eine Domänenmigration.
Ich bin bisher sehr zufrieden mit den Möglichkeiten.
Die komplette Einrichtung eines PCs würde ich jedoch per Ghost-Image
lösen. Das ist nicht so umständlich.

mfg,
reg_hack
 
Thema:

Batch Programmierung unter WinXP - Tastatur sperren, Funktion wie sleep

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben