www.mikrocontroller.net

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


Autor: Oliver Heinrichs (Firma: OliverHeinrichs.de) (dobson)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver Heinrichs (Firma: OliverHeinrichs.de) (dobson)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Oliver Heinrichs (Firma: OliverHeinrichs.de) (dobson)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver Heinrichs (Firma: OliverHeinrichs.de) (dobson)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Oliver Heinrichs (Firma: OliverHeinrichs.de) (dobson)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...
Oder die ganze Latte an "Lsa..."-Funktionen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.