Forum: PC-Programmierung VB.net Tastatur sperren -> Tastenkombinationen funktionieren noch


von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich möchte eine Art Internet-Terminal für Windows schreiben. Soweit 
funktioniert auch alles.
Auf der Client-Seite habe ich allerdings noch Probleme.
Den Code im Anhang nutze ich um die Tastatur zu sperren. Funktioniert 
auch. Teilweise. Einige Tastenkombinationen werden trotzdem noch erkannt 
und ausgeführt. Ich habe mal was rumprobiert und das dabei festgestellt.

Strg-Alt-Entf - Funktioniert
Strg-Esc      - Funktioniert nicht
Win-L         - Funktioniert
Win-D         - Funktioniert nicht

Das lässt mich zu dem Schluss kommen, dass nur Login/-out und 
Sperrfunktionen des Windows Systemes durchgelassen werden.
Desktop anzeigen und Startmenü öffnen funktionieren ja nicht mehr.
Wie kann ich diese Funktionen ebenfalls sperren? Ich möchte verhindern, 
dass jemand das Sperrprogramm aushebelt.

Ebenfalls habe ich festgestellt:
Wenn ich das Programm beende, hängt die Windows-Taste fest. Ich kann 
also nicht mehr tippen. Es werden stattdessen die Windows-Befehle wie 
Ausführen, Suchfenster, Desktop anzeigen, e.t.c. ausgeführt.
Warum ist das so? Kann mir das einer erklären?

Zum Gruße,

Oliver

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Fast vergessen:
Ich möchte das Programm auf XP, Vista und 7 lauffähig haben. Und nur den 
Tast-Manager mit der Registry zu sperren läuft leider auch nicht, da 
unter Win7 zumindest ein Menü angezeigt wird, in dem ich erstmal 
auswählen kann, was ich machen möchte.

von Peter (Gast)


Lesenswert?

Oliver Heinrichs schrieb:
> Strg-Alt-Entf - Funktioniert

das wird schwer - MS hat das mit absicht gemacht das sich kein Trojaner 
reinhacken kann und damit einen Login bildschirm vortäuchen kann (Um das 
Passwort abzufangen).

Es soll zwar hacks dafür geben aber das kann es sein das sie mit jedem 
update von MS nicht mehr laufen.
Es gibt aber eine Möglichkeit einen eigenen Login prozess zu schreiben, 
eventuell ist das ja eine Lösung.

Aber ich denke MS wird dafür schon eine fertige Lösung haben, hast du 
wirklich mal alle Policies durchgeschaut ob es nicht etwas fertig gibt?

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Peter schrieb:
> hast du
> wirklich mal alle Policies durchgeschaut ob es nicht etwas fertig gibt?

OMG, da hab ich ja noch gar nicht dran gedacht. Typischer Fall von 
BlackOut. Hab gerade mal durch die gpedit.msc geschaut, was da unter 
Windows 7 so alles möglich ist. Das übersteigt meine Erwartungen um 
einiges. Werde jetzt doch meine Virtuellen Maschinen wieder anschmeissen 
und weiter coden.

Peter, an dieser Stelle vielen Dank. Du hast mich wieder in die richtige 
Richtung gelenkt. Jetzt komme ich wohl wieder alleine klar.

Den Fehler mit der hängenden Taste habe ich auch behoben. Ich hätte bei 
meinem Debug_Exit Knopf die Hook-funktion nicht ausschalten dürfen. Dies 
wird beim Schließen des Formulares sowieso erledigt. Verstehen tu ich 
das nicht, aber gut.

Vielen Dank.

Oliver

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Nur noch mal kurz zum Wiederholen:

Wenn ich die GPO ändern will geschieht das doch nur durch die Einträge 
in der Registry unter:
HKEY_LOC_MA\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\
oder
HKEY_CUR_US\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\

Richtig???

Werden die Einstellungen dann direkt übernommen, oder muss ich den 
Benutzer abmelden, bzw. die Maschine sogar neustarten?

von Peter (Gast)


Lesenswert?

in der Reg muss man die einträge normalerweise nicht selber ändern das 
macht doch der policy editor. Bei den Benutzereinstellungen muss man den 
nutzer neu Anmelden, bei den Computereinstellungen muss man ihn neu 
starten (kann aber bei Win7 schon anders sein)

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Ich möchte das ganze aber auch aus der selbstgeschriebenen Routine 
ändern können.
Zum zweiten ist das eine schöne Möglichkeit um automatisiert zu 
überprüfen, ob die Einstellungen bereits gesetzt sind.
Und letztendlich ist das bei der Installation des Client-Programmes sehr 
hilfreich.
Aber auch hier wieder: Dankeschön.

von Peter (Gast)


Lesenswert?

Oliver Heinrichs schrieb:
> Ich möchte das ganze aber auch aus der selbstgeschriebenen Routine
> ändern können.
denke aber dran, das ein normaler nutzer überhaupt nicht das recht hat 
diese einträge zu ändern - also muss dein Programm als Admin laufen, was 
schon mal nicht sehr gut ist.

von ... (Gast)


Lesenswert?

Außerdem pfuscht man bei sowas nie direkt in der Registry rum! Dazu 
gibts schließlich passende Funktionen in der Win-API, z.B. die hier:
http://msdn.microsoft.com/en-us/library/aa374154(v=VS.85).aspx
Oder die ganze Latte an "Lsa..."-Funktionen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.