Nachdem mich auf ein Posting der folgende Kommentar erreicht hat: "Soso, tolle sachen. Was aber interessanter wäre und noch nicht hier ist: Task-Manger verstecken - kann das jemand?"
bezogen auf den Link:
http://dotnet-snippets.de/dns/Snippet_detail.aspx?=427 kommt hier der Code, und die Klasse um den Taskmanageraufruf zu unterbinden (Es geht zwar auch einfacher, aber nicht so sicher).
Der Befehtl wirkt sich auf den derzeit angemeldeten User an. Verwendet man anstelle CurrentUser den Registry Schlüssel Local_Machine ... .
Ist aber nicht sehr zu empfehlen !!!
''Klasse
Public Class clsHideTaskManager
Implements IDisposable
Public Enum TaskManagerState As Integer
Disabled = 1
Enabled = 0
End Enum
Public Reg_hkcu As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser
Public Const subKey As String = "Software\Microsoft\Windows\CurrentVersion\Policies\System"
Public Sub SetTaskManager(ByVal _state As TaskManagerState)
Try
Dim reg As Microsoft.Win32.RegistryKey = Reg_hkcu.OpenSubKey(subKey, True)
If reg Is Nothing AndAlso _state = TaskManagerState.Disabled Then
reg = Reg_hkcu.CreateSubKey(subKey)
ElseIf reg Is Nothing Then
Exit Sub
End If
reg.SetValue("DisableTaskMgr", CInt(_state))
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Public Function GetTaskManagerState() As TaskManagerState
Dim _val As Integer = -1
Dim _reg As Microsoft.Win32.RegistryKey = Reg_hkcu.OpenSubKey(subKey)
''Wird nichts gemacht ist der Taskmanageraufruf moeglich
If _reg Is Nothing Then
Return TaskManagerState.Enabled
Else
_val = CInt(_reg.GetValue("DisableTaskMgr"))
End If
Return CType(IIf(_val = 1, TaskManagerState.Disabled, TaskManagerState.Enabled), TaskManagerState)
End Function
Protected Overrides Sub Finalize()
Me.Dispose()
MyBase.Finalize()
End Sub
Public Sub Dispose() Implements System.IDisposable.Dispose
Try
Reg_hkcu.Close()
Reg_hkcu = Nothing
GC.SuppressFinalize(Me)
Catch
End Try
End Sub
End Class
''Mögliche Anwendung/Aufruf:
''Auf einem Formual eine CheckBox und ein Button plazieren, die Klasse Win32 Registry importieren und lost gehts
Imports Microsoft.Win32.Registry
Public Class Form1
Private cls As New clsHideTaskManager
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
cls.Dispose()
End Sub
Private Sub Loaded(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
cbDisableTM.Checked = cls.GetTaskManagerState = clsHideTaskManager.TaskManagerState.Disabled
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cls.SetTaskManager(CType(IIf(cbDisableTM.Checked, clsHideTaskManager.TaskManagerState.Disabled, _
clsHideTaskManager.TaskManagerState.Enabled), clsHideTaskManager.TaskManagerState))
Button1.Enabled = False
End Sub
End Class
1 Kommentare zum Snippet