Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Tasten sperren??
X-Gamer
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

Tasten sperren??

beantworten | zitieren | melden

Ich möchte ein Prog machen das im vollbild modus ausgefürht wird und ich will aber das die tasten ( windows taste, strg alt entf,alt f4) gesperrt werden!!

ich hab schon gesucht aber nichts gefunden!!!

Weiß vllt jemand wie das geh??

MfG X-Gamer
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 6.862
Herkunft: Esslingen

beantworten | zitieren | melden

Tastenkombinationen wie Strg-Alt-Entf kann man nicht deaktivieren - aus gutem Grund.
Baka wa shinanakya naoranai.

Mein XING Profil.
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 849
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Es gibt aber durchaus Gründe genau das zu tun zb. wenn bei Clientanwendungen wo der Benutzer nichts ausserhalb der Anwendung zu suchen hat. zb. Surfstations etc.

Würde mich auch interressieren. Jemand eine Idee?
private Nachricht | Beiträge des Benutzers
Corpsegrinder
myCSharp.de - Member



Dabei seit:
Beiträge: 401

beantworten | zitieren | melden

also bei programmen wie vnc geht es ja auch... wenn da jemand auf den rechner zugreift können sämtliche aktionen vom benutzer an der workstation geblockt werden... muss also irgendeine möglichkeit geben
private Nachricht | Beiträge des Benutzers
X-Gamer
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von talla
Tastenkombinationen wie Strg-Alt-Entf kann man nicht deaktivieren - aus gutem Grund.

doch in vb ging es auch hab mal was gelesen drüber!!!

ich brauche es unbediengt!!! ich mache ein prog das den bildschrim füllt und das man es nicht schliessen kann!! man kann es nur mit nem button schließen!!!

mfg x-gamer
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 6.862
Herkunft: Esslingen

beantworten | zitieren | melden

Die alten VB Schnipsel benutzen meist ne Funktion die es nur unter Win9x gab, in den NT Systemen geht das nicht. Dort kann man höchstens durch die Sicherheitsrichtlinien verbieten das der Taskmanager gestartet wird. Aber die Tastenkombi Strg-Alt-Entf an sich lässt sich nicht abschalten, höchstens durch ne eigene Gina Dll. Okay, man könnte noch einen Tastaturfilter schreiben, das würde auch gehen, aber, das sind alles Dinge die nen gescheiter User nie nem Programm erlauben würde sowas auf seinem System zu tun.
Baka wa shinanakya naoranai.

Mein XING Profil.
private Nachricht | Beiträge des Benutzers
steffen_dec
myCSharp.de - Member



Dabei seit:
Beiträge: 322

beantworten | zitieren | melden

Hallo,

ich bin nun auch an dem Thema angelangt.

Ich habe auch schon gelesen dass man Str+Alt+Entf nicht 100%ig sperren kann.

Wie sieht es mit diesen aus:?
Alt+F4
Strg-Esc
Windows-Taste

Hat da jemand einen Tip parat?

Vielen Dank

Gruß
Steffen


EDIT:
ich hab diese Klasse nun für meine Bedürfnisse angepasst http://www.codeproject.com/cs/system/CSLLKeyboard.asp
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von steffen_dec am .
private Nachricht | Beiträge des Benutzers
budili
myCSharp.de - Member



Dabei seit:
Beiträge: 171
Herkunft: B-W

beantworten | zitieren | melden

Servus,

also prinzipiell ist sowas machbar. Ihr könnt das über sogenannte Windows Hooks
realisieren. In diesem Hook müsst ihr halt die nötigen Tastatur Ereignisse abfangen, bevor sie an das Betriebssystem gelangen.

Ist aber etwas heavy ...
Schaut euch mal den Begriff Hooks in der MSDNA an.

Aber so Sachen wie die WinTaste oder Strg-Esc etc. kann man damit abfangen,
nur nicht alle Tastenkombinationen, so wie talla das schon sagte.

Gruß
Budi
Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!
private Nachricht | Beiträge des Benutzers
steffen_dec
myCSharp.de - Member



Dabei seit:
Beiträge: 322

beantworten | zitieren | melden

ja mit diesen Hooks funktionierts einwandfrei
(Klasse siehe link oben)

ich hab nur noch den Taskmanager deaktiviert:


//Taskmanager deaktivieren
                regKey = Registry.CurrentUser.OpenSubKey(
                    @"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
                if (regKey == null)
                    regKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System");
                regKey.SetValue("DisableTaskMgr", 1, RegistryValueKind.DWord);

und dann wieder aktiviert falls sich ein Admin anmeldet


//TaskManager wieder aktivieren
        RegistryKey regKey = Registry.CurrentUser.OpenSubKey(
                    @"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
        if (regKey != null)
            regKey.SetValue("DisableTaskMgr", 0, RegistryValueKind.DWord);

Vielleicht braucht das jemand

Gruß
Steffen
private Nachricht | Beiträge des Benutzers
budili
myCSharp.de - Member



Dabei seit:
Beiträge: 171
Herkunft: B-W

beantworten | zitieren | melden

Moin,

welche Tasten fängst du jetzt ab??

Deaktivierst du nur den Taskmanager oder fängst du auch die
Tasten ab ??


Gruß
Budi
Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!
private Nachricht | Beiträge des Benutzers
steffen_dec
myCSharp.de - Member



Dabei seit:
Beiträge: 322

beantworten | zitieren | melden

Hallo,

ich habe diese klasse erweitert und noch den Parameter AllowOnlyAlphaNumeric hinzugefügt

und dann die HookCallback um eine Abfrage erweitert:


if (AllowOnlyAlphaNumeric)
                {
                    AllowKey = true;
                    //STRG+ESC
                    if (((NativeMethods.GetKeyState(VK_CONTROL) & 0x8000) != 0) && lParam.vkCode == VK_ESC)
                        AllowKey = false;
                    //ALT+ESC
                    if (((NativeMethods.GetKeyState(VK_MENU) & 0x8000) != 0) && lParam.vkCode == VK_ESC)
                        AllowKey = false;
                    //ALT+TAB
                    if (((NativeMethods.GetKeyState(VK_MENU) & 0x8000) != 0) && lParam.vkCode == VK_TAB)
                        AllowKey = false;
                    //ALT+F4
                    if (((NativeMethods.GetKeyState(VK_MENU) & 0x8000) != 0) && lParam.vkCode == VK_F4)
                        AllowKey = false;
                    // left win und right win
                    if ((lParam.vkCode == 91) || (lParam.vkCode == 92))
                        AllowKey = false;
                    // STRG+ALT+ENTF
                    //if (((NativeMethods.GetKeyState(VK_CONTROL) & 0x8000) != 0) &&
                    //    ((NativeMethods.GetKeyState(VK_MENU) & 0x8000) != 0) && lParam.vkCode == VK_DEL)
                    //    AllowKey = false;
                }

STRG+ALT+ENTF lässt sich so nicht abfangen, dass habe ich da zwar versucht, diese werden auch erkannt und versucht zu blocken, windows kriegt es aber dennoch mit... deshalb hab ich einfach nur den Taskmanager deaktiviert...
und am ende beim Dispose von der Klasse wieder aktiviert...

Gruß
Steffen
private Nachricht | Beiträge des Benutzers