Hallo!
Ich würde gerne von euch wissen ob es die Möglichkeit gibt ALLE Windows-Messages abzufangen (auch die die an andere Programme gesendet werden), damit ich bei meiner Tastensperre auch ausschließen kann dass jemand einfach STRG+ALT+ENTF drückt und dann mein Programm beendet. Geht so etwas? Oder kann man vl. einfach die Tastatur für alle Programme mit Ausnahme von dem das man selber schreibt nicht erreichbar ist?
MFG
Neokil
Hi,
mhh, meines Wissens geht das nicht.
Speziell die Strg-Alt-Entf-Message kannst du nicht abfangen.
Diese sogenannte "Secure Attention Sequence" wird einzig und allein von WinLogon registriert und kein Programm sollte das umgehen können.
Was du machen willst, sollte auch anders gehen. Starte dein Programm unter einem anderen Benutzer und schränke den aktuellen Benutzer ein. Denn als Nicht-Admin kann dieser keine fremden Prozesse beenden.
Andere Sache wäre das "Verstecken" des Prozesses vor dem Taskmanager. (Ist aber mit purem C# nicht machbar)
Gibt bestimmt noch zig andere Möglichkeiten.
beste Grüße
zommi
Wobei es ja auch schon reichen könnte die taskmgr.exe zu ersetzen 😁
oder nen kernel-treiber der die passenden interrupts abfängt und alles filtert
Achja, Wege gibt es viele, aber die meisten sind doch ziemlich holprig.
Und super zu debuggen und testen 😉
<j/k> IMHO in diesem Thread entsteht gerade einen neuen Trojaner/Virus 😄
**:::
also erst mal danke, dass ihr so schnell geantwortet habt.
Schade ist es schon, dass man das nicht so einfach machen kann 😦
Aber kann man vl. wenigstens die Kombinationen ALT+F4 usw. abfangen?
MFG
Neokil
Ja das kann man mit Hooks machen. Das ist sogar relativ unproblematisch da es ja i.d.R. nur deine Anwendung betrifft.
Evtl. geht es auch mit einem simplen eingriff in die WndProc habs aber nicht ausprobiert.
Schade ist es schon, dass man das nicht so einfach machen kann 😦
Da könnte man sich jetzt drüber streiten 😉
Hallo Neokil,
ALT-F4 kannst du im FormClosing Event abfangen (FormClosingEventArgs.Cancel auf true setzen).
Grüsse, harrylask
Man ersetzt nicht irgendwelche Dateien im Betriebssystem!
Stattdessen verwendet man Gruppenrichtlinien, um bestimmte Windows-Funktionen für bestimmte Benutzer abzuschalten (z.B. den Task-Manager oder den Internet Explorer).
wie funktioniert das mit den Gruppenrichtlinien? Kann man da auch bestimmen welche Ordner eine Person öffnen darf?
MFG
Neokil
Such mal nach "gpedit". Da solltest Du einiges finden können...
Grüße,
der Michael
Kann man da auch bestimmen welche Ordner eine Person öffnen darf?
Das macht man mit ACL des jeweiligen Objektes (in diesem Fall ein Ordner, also Rechte Maustaste auf Ordner, Sicherheit) und weißt einer Gruppe entsprechende Berechtigung zu. Im Domaincontroller kann man anschließend festlegen, welche Person zu welcher Gruppe gehört.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
hallo zusammen,
bleibt mal bitte beim Thema Windows-Messages.
herbivore
Ich schlecht beim Thema Windows-Messages bleiben, wenn das, was der Themenstarter machen eigentlich will, mit Windows Messages nicht funktioniert, sondern mit NTFS.
Man ersetzt nicht irgendwelche Dateien im Betriebssystem!
Falls Du auf die GINA anspielst - Winlogon bietet einen ganz einfachen Mechanismus eine eigene GINA zu benutzen, ohne die des Betriebssystems ersetzen zu müssen.
Es gibt dazu auch schon fertige Lösungen von Template bis kompletter GINA mit Zusatzfeatures. Wenn ich mich recht erinnere gibt's da auch schon was bei Codeproject.
Um "alle" Windowsnachrichten aller Anwendungen abzufangen, wie z. B. das Microsoft Tool Spy++ es tut, braucht man einen Hook in einer DLL (s. SetWindowsHook), was mit C# eher nicht geht.
was mit C# eher nicht geht
Doch geht, Codeproject: Processing Global Mouse and Keyboard Hooks in C#
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Hallo kleines_eichoernchen,
das geht leider nicht bei jeder Anwendung, die die DirectInput z.b. benutzen interressieren die Hooks nicht die Bohne.
Gruß Kaji