Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Taskmanager

Taskmanager
06.10.2008 17:36:00
Fred
Hallo zusammen
Ich benutze unten stehenden Code, um den Taskmanager zu deaktivieren. Was auch prima im Adminmodus funktioniert. Doch leider wenn ich mich als User mit eingeschränkten Rechten anmelde, Funktioniert dieser Code nicht. Sieht jemand eine Möglichkeit, den Taskmanager auch im eingeschränktem Profiel zu deaktivieren? Ich bin über jede Hilfe Dankbar.
Option Explicit
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 Declare Function GetVersionEx Lib "kernel32" Alias _
"GetVersionExA" (lpVersionInformation As OSVERSIONINFO) _
As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" _
Alias "RegCreateKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, ByRef phkResult As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal _
lpSubKey As String, ByVal ulOptions As Long, ByVal _
samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" _
Alias "RegSetValueExA" (ByVal hKey As Long, ByVal _
lpValueName As String, ByVal Reserved As Long, ByVal _
dwType As Long, lpData As Long, ByVal cbData As Long) _
As Long
Private Declare Function RegSetValueEx_Str Lib "advapi32.dll" _
Alias "RegSetValueExA" (ByVal hKey As Long, ByVal _
lpValueName As String, ByVal Reserved As Long, ByVal _
dwType As Long, ByVal lpData As String, ByVal cbData As _
Long) As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Const SPI_SCREENSAVERRUNNING = 97&
Private Const VER_PLATFORM_WIN32s = 0&
Private Const VER_PLATFORM_WIN32_WINDOWS = 1&
Private Const VER_PLATFORM_WIN32_NT = 2&
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or _
KEY_SET_VALUE Or _
KEY_CREATE_SUB_KEY Or _
KEY_ENUMERATE_SUB_KEYS Or _
KEY_NOTIFY Or _
KEY_CREATE_LINK
Private Const ERROR_SUCCESS = 0&
Private Const REG_DWORD = 4
Private Const REG_SZ = 1
Private Enum RegRoot
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_PERFORMANCE_DATA = &H80000004
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
End Enum

Public Sub prcDeactivateTskMng()
If (Not IsOS_NT) Then
SystemParametersInfo SPI_SCREENSAVERRUNNING, True, "1", 0
Else
prcWriteField "Software\Microsoft\Windows\CurrentVersion\Policies\System", _
"DisableTaskMgr", 1
End If
End Sub



Public Sub prcActivateTskMng()
If (Not IsOS_NT) Then
SystemParametersInfo SPI_SCREENSAVERRUNNING, False, "1", 0
Else
prcWriteField "Software\Microsoft\Windows\CurrentVersion\Policies\System", _
"DisableTaskMgr", 0
End If
End Sub



Private Function IsOS_NT() As Boolean
Dim OSVersion As OSVERSIONINFO
OSVersion.dwOSVersionInfoSize = Len(OSVersion)
Call GetVersionEx(OSVersion)
With OSVersion
If .dwPlatformId = VER_PLATFORM_WIN32_NT Then
IsOS_NT = True
ElseIf .dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
IsOS_NT = False
ElseIf .dwPlatformId = VER_PLATFORM_WIN32s Then
IsOS_NT = False
End If
End With
End Function



Private Sub prcWriteField(KeyName As String, FieldName As String, varValue As Variant, _
Optional RegistryRoot As RegRoot = HKEY_CURRENT_USER)
fncRegValueSet RegistryRoot, KeyName, FieldName, varValue
End Sub



Private Function fncRegValueSet(Root As RegRoot, Key As String, Field As String, _
Value As Variant) As Long
Dim Result As Long, hKey As Long, strValue As String, lngValue As Long
Result = RegOpenKeyEx(Root, Key, 0, KEY_ALL_ACCESS, hKey)
If Result  ERROR_SUCCESS Then
RegCreateKey Root, Key, Result
Result = RegOpenKeyEx(Root, Key, 0, KEY_ALL_ACCESS, hKey)
End If
If Result = ERROR_SUCCESS Then
Select Case VarType(Value)
Case vbInteger, vbLong
lngValue = CLng(Value)
Result = RegSetValueEx(hKey, Field, 0, REG_DWORD, lngValue, 4)
Case vbString
strValue = CStr(Value)
Result = RegSetValueEx_Str(hKey, Field, 0, REG_SZ, _
strValue, Len(strValue) + 1)
End Select
Result = RegCloseKey(hKey)
End If
fncRegValueSet = Result
End Function


Grüße Fred

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Taskmanager
06.10.2008 17:46:00
Tino
Hallo,
ich sehe da nur eine Möglichkeit,
frage den Admin ob Du die entsprechenden Rechte bekommen kannst.
Oder Du müsstest dich in der Hackerszene umsehen. ;-)
Ich lass die Frage offen, kann ja sein dass ich mich irre
Gruß Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige