Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0015: [Strg] + [Alt] + [Entf] (de) aktivieren

 von 

Beschreibung 

Hiermit lässt sich der Aufruf des Taskmanagers über die Tastenkombination [Strg] + [Alt] + [Entf] programmgesteuert verhindern.
Dieser Tipp ist nicht für NT-basierende Microsoft Windows Betriebssysteme gedacht.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

SystemParametersInfoA (SystemParametersInfo)

Download:

Download des Beispielprojektes [2,05 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

'Deklaration: Globale Form API-Konstanten
Private Const SPI_SCREENSAVERRUNNING As Long = 97&

'Deklaration: Globale Form API-Funktionnen
Private Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA" ( _
    ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, _
    ByVal fuWinIni As Long) As Long

Private Sub Command1_Click()
    'Deklaration: Lokale Prozedur-Variablen
    Dim lngErgebnis As Long

    lngErgebnis = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, "1", 0)
    Label1.Caption = "[Strg] + [Alt] + [Entf] ausgeschaltet"
End Sub

Private Sub Command2_Click()
    'Deklaration: Lokale Prozedur-Variablen
    Dim lngErgebnis As Long

    lngErgebnis = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
    Label1.Caption = "[Strg] + [Alt] + [Entf] eingeschaltet"
End Sub

Private Sub Form_Load()
    'Control-Eigenschaften initialisieren
    Command1.Caption = "Aus"
    Command2.Caption = "Ein"

    Call Command2_Click
End Sub


'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 23 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Condor am 15.07.2005 um 15:09

Also einen Prozess sofort beenden wenn er gestartet wird,und vorallem die Überwachungsroutine kosten Resourcen.

Um BlueDevil's Beitrag zu ergänzen:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr = "1" (REGDWORD)

Um ihn zu aktivieren den Wert einfach auf 0 setzen.
Und um es vorweg zu nehmen: Die Taskmgr.exe kann man nicht löschen,und ein Zugriff auf die Services hat in 99% aller Fälle einen Bluescreen zur Folge ;)
Condor

Kommentar von Phil am 10.09.2004 um 12:09

Hallo,

ich kam eben auf eine NT/XP Idee. Suche auch gerade nach alle integrierten Tastenkürzel ausschalten.

Man könnte über einen neuen Benutzer alle Programme ausführen sperren, und das eigene in den Autostart legen mit der Priorität Programme starten zu dürfen..

Ich hab Hoffnung,
Phil

Kommentar von VB Newbie am 09.06.2004 um 17:19

Das geht doch auch viel einfacher.
Nix mit Registry Einträge oder so...
Man kann einfach einen Timer nehmen der ständig die aktiven Prozesse überwacht und wenn der Taskmanager dabei sein sollte ihn sofort beendet!
So mach ich das immer wenn ich diese Funktion brauch...

(Hab ich mir natürlich nicht selbst ausgedacht. Stand auf irgendeiner Seite in einem Tip)

Kommentar von BlueDevil am 26.12.2003 um 03:43

Ergänzung zu meinem Beitrag:
Ihr müsst den Registry Ordner "System" und die
Zeichenfolge "DisableTaskMgr" selber erstellen!
Mfg BlueDevil

Kommentar von BlueDevil am 26.12.2003 um 03:29

Das unterbinden von "Strg+Alt+Entf" funktioniert! auch bei NT-Systemen (NT,2000,XP) http://www.activevb.de/rubriken/faq/affengriff.html
Da ist es beschrieben.
Mfg BlueDevil

Kommentar von Heinz Stolz am 04.11.2003 um 16:25

Hallo,

dieser Trick funktioniert nicht richtig bei mir.
Ich hab das ausprobiert auf Win95 mit VB6.

Das Ausschalten der [STRG]-[TAB]-[ENTF]-Tastenkombination geht, aber nicht das Wiedereinschalten.

Ich hab das Ganze etwas abgeändert. Hier der Code:

Option Explicit
Private Declare Function SystemParametersInfo Lib "user32.dll" _
Alias "SystemParametersInfoA" ( _
ByVal uAction As Long, _
ByVal uParam As Long, _
ByRef lpvParam As Long, _
ByVal fuWinIni As Long _
) As Long

Private Const SPI_SCREENSAVERRUNNING As Long = 97&

Private Function CtrlAltDel(ByVal blnEnabled As Boolean) As Boolean
Dim lngOld As Long
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, blnEnabled, lngOld, 0&)
CtrlAltDel = (lngOld <> 0)
End Function

Private Sub Form_Load()
Dim lngErgebnis As Long
lngErgebnis = CtrlAltDel(True)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim lngErgebnis As Long
lngErgebnis = CtrlAltDel(False)
End Sub


Ich brauch das um nach dem Start eines Formulars die Funktion abzuschalten und beim Entladen wieder einzuschalten.

Können Sie mir dabei helfen?

Mit freundlichen Grüßen,

Heinz Stolz

Kommentar von Jochen Wierum am 18.03.2003 um 15:54

Hallo Sven,

Copmuterspiele nutzen DirectX, das ist etwas anderes! Allerdings blokiert DirectX unter bestimmten Einstellungen diese Tasten, das ist richtig!

Such mal in den TnTs, ich bin mir zimlich sicher, dass es hier auch einen Trick gibt, um unter Win 2k/XP den Taskmanager zu sperren...

Kommentar von Sven S. am 18.03.2003 um 13:20

Warum funkttioniert dieses Prog nicht unter XP und anderen neuen Betiebssystemen?
Bei Computerspielen funktioniert das doch! Wenn ich das hier mit C++ mach geht es auch! Aber ich will es mit VB machen da mir C++ noch zu schwer ist und ich es noch nicht ganz verstehe.
THX im vorraus

Kommentar von Bean am 12.03.2003 um 15:18

ALSO FÜR WINDOWS NT 2000 oder XP...

guckt mal auf

http://msdn.microsoft.com/msdnmag/issues/02/09/CQA/default.aspx

da stehts schön beschrieben...

Kommentar von Christian am 14.01.2003 um 17:55

Habe problem bei Win xp das bei mir die Tastenkombination ALT+Tab nichtmehr funktioniert. Habe mich schon in vielen support Seiten von Windwos umgesehen dort wird dieses Problem nicht genaut erläutert bzw. ist nicht vorhanen vielleicht könnt ihr mir helfen...

Kommentar von Thomas am 22.12.2002 um 14:59

Bin auch schon lange auf der Suche anch einer Lösung für meine Chipkartensoftware, welche ich endlich auch 2k und XP tauglich machen möchte.
Aber scheinbar wweiß niemand eine Lösung, um den Affengriff unter diesen Systemen sperren zu können.

Kommentar von XXmas am 30.08.2002 um 20:30

wie soll man dann ein programm schreiben, das den zugang zum computer nur mit chipkarte erlaubt, wenn das ganze per CTRL+ALT+DEL zu umgehen ist (unter win2k und NT)
any ideas ???

Kommentar von Florian R. am 30.07.2002 um 12:27

Hallo,
mit der SystemParametersInfo-API-Funktion können verschiedene Windowseinstellungen gesetzt werden.
Welche kann man in der MSDN library nachlesen.
Naja, und mit dem Wert 97 teilt man dem System mit ob der Bildschirmschoner läuft oder nicht.
Wenn man dem System sagt er würde laufen, wird [Strg]+[Alt]+[Entf] sowie [Alt]+[Tab] deaktiviert.
Dies geht nur unter Windows 9x, ME.
Auf NT-basierenden Systemen ist diese Wirkung nicht herbeiführbar,
da man so die Sicherheit des Systems bedrohen würde.
siehe auch
Microsoft Knowledge Base Article - Q161133
MfG Florian

Kommentar von Chris Blättermann am 17.07.2002 um 11:02

Wie kann man denn die Tastatur umprogrammieren? Ich möchte die komplette Tastatur unter 2k oder XP sperren!

Kommentar von zzz am 02.05.2002 um 20:53

weden hier nur fragen gestellt , oder antwortet auch jemand
??

Kommentar von Roman Balla am 11.03.2002 um 09:43

Wie kann man das unterbinden, wenns im VB nicht funktioniert?

Kommentar von Ulrich Huhn am 29.01.2002 um 13:58

unter nt u. w2k geht das nur, wenn man die tastaturcodes umprogrammiert :), also einen ganz anderen weg geht.

Kommentar von sebi am 27.01.2002 um 20:59

wieso funktioniert das unter winNT nicht?? gibts da irgendwelche möglichkeiten, dass es auch hier funktioniert?

Kommentar von Johannes GR. am 25.01.2002 um 16:17

Ich wollte wissen, ob man auch andere Tastenkombinationen wie ALT+TAB, CTRL+ESC oder die Windowstaste deaktivieren kann!

Kommentar von EiPaLittau am 17.01.2002 um 14:49

Mit Win 2000 funktionierts ebenfalls nicht...

Kommentar von PBR am 30.09.2001 um 22:52

Kann man auch ALT+F4 oder ALT+TAB deaktivieren???

Kommentar von Michael Katlein am 03.11.2000 um 09:17

Sorry ... schon gesehen!
Mit NT4 geht's nicht!

Kommentar von Michael Katlein am 03.11.2000 um 09:15

Bei mir Fuktioniert es leider nicht:
Ich verwende
- VB6 / SP3 (eng)
- WinNT BackOffice Server 4.5 (eng) / SP 6
any ideas?!?