Computer sperren

Für allgemeine Fragen zur Programmierung mit PureBasic.
LoD
Beiträge: 9
Registriert: 26.08.2008 19:30

Computer sperren

Beitrag von LoD »

Bei meinem neuen Computer (XP) hab ich ein Problem:
Immer wenn ich einem Benutzerkonto ein Passwort gebe, wird es im Anmeldescreen nicht mehr angezeigt. Alles was ich dann noch machen kann, ist das Passwort über den Administrator zu entfernen und danach das Benutzerkonto über die Konsole zu aktivieren...

Jetzt fehlt mir natürlich eine Möglichkeit den Inhalt meines Computers vor der Allgemeinheit zu verstecken. (Das Screensaverpasswort lass ich mal außen vor, ich mag keine Screensaver ^^)

Aus dieser Not hat sich folgender Code entwickelt:

Registry.pbi ausm Forum (ganz unten)

Mein Code:

Code: Alles auswählen

IncludeFile "registry.pbi"

quit = #False
GetAsyncKeyState_(#VK_ESCAPE)

SendMessage_(#HWND_BROADCAST,#WM_SYSCOMMAND,#SC_MONITORPOWER,2)

;Maus & Tastatur sperren
BlockInput_(#True)

;Taskmanager deaktivieren
        
Reg_CreateKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe")           
Reg_CreateKeyValue(#HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe", "Debugger", "C:\whatever.txt",#REG_SZ)

;Taskleiste deaktivieren
EnableWindow_(FindWindow_("Shell_TrayWnd",0),#False)

time = ElapsedMilliseconds()
Repeat
  If time + 3000 <= ElapsedMilliseconds()
    BlockInput_(#True)
    time = ElapsedMilliseconds()    
  EndIf
  
  If GetAsyncKeyState_(#VK_ESCAPE)&$1 And GetAsyncKeyState_(#VK_CONTROL)
    quit = #True
  EndIf
  
  SendMessage_(#HWND_BROADCAST,#WM_SYSCOMMAND,#SC_MONITORPOWER,2)


  ;Maus sperren  
  SetCursorPos_(5000, 120) 
    
 

Until quit = #True
EnableWindow_(FindWindow_("Shell_TrayWnd",0),#True)
Reg_DeleteValue(#HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe", "Debugger")
End

Was macht der Code?
Er deaktiviert erstmal den Taskmanager und versteckt die Taskleiste. Danach wird mit BlockInput_(#True) die Keyboard- und Mauseingabe gesperrt. Erst nach STRG + ALT + ENTF können wieder Tasten gedrückt werden. Nach 3 Sekunden wird allerdings wieder die komplette Eingabe gesperrt. Während diesen 3 Sekunden muss nun gleichzeitig STRG und ESC gedrückt werden, dann ist die Sperre aufgehoben. Zusätzlich wird der Bildschirm ausgeschalten und zur Sicherheit noch die Maus auserhalb des Bildschirmes plaziert.

Von euch will ich jetzt wissen ob der Code soweit sicher ist, oder obs noch eine andere Möglichkeit gibt die Sperre zu umgehen.

LoD

---------------------------

Code: Alles auswählen

;-TOP
; Kommentar     : Read and change the Registry / FileAssociate
; Author        : Unknown
; Second Author : mk-soft
; Datei         : Registry.pbi
; Version       : 1.01
; Erstellt      : ???
; Geändert      : 18.11.2007
;
; Compilermode  :
;
; ***************************************************************************************

;#PB_Lit2Msg stop

;EnableExplicit

; ***************************************************************************************

Global RegLasterror.l
Global RegLastMessage.s

; ***************************************************************************************

CompilerIf Defined(FormatMessage, #PB_Procedure) = #False
 
  Procedure.s FormatMessage(ErrorNumber.l)

    Protected *Buffer, len, result.s
   
    len = FormatMessage_(#FORMAT_MESSAGE_ALLOCATE_BUFFER|#FORMAT_MESSAGE_FROM_SYSTEM,0,ErrorNumber,0,@*Buffer,0,0)
    If len
      result = PeekS(*Buffer, len - 2)
      LocalFree_(*Buffer)
      ProcedureReturn result
    Else
      ProcedureReturn "Errorcode: " + Hex(ErrorNumber)
    EndIf
   
  EndProcedure

CompilerEndIf

; ***************************************************************************************

Procedure Reg_SetValue(topKey, sKeyName.s, sValueName.s, vValue.s, lType, ComputerName.s = "")
   
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, Result.l
  Protected lpData.s{256}
  Protected lpcbData.l, lValue.l
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
  If ComputerName = ""
    r1 = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn #False
    EndIf
    r1 = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    lpcbData = 255
    Select lType
      Case #REG_SZ
        r1 = RegSetValueEx_(hKey, sValueName, 0, #REG_SZ, @vValue, Len(vValue) + 1)
      Case #REG_DWORD
        lValue = Val(vValue)
        r1 = RegSetValueEx_(hKey, sValueName, 0, #REG_DWORD, @lValue, 4)
    EndSelect
    If r1 = #ERROR_SUCCESS
      Result = #True
    Else
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      Result = #False
    EndIf
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
    Result = #False
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn Result
 
EndProcedure

; ***************************************************************************************

Procedure.s Reg_GetValue(topKey, sKeyName.s, sValueName.s, ComputerName.s = "")
   
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, Result.l
  Protected lpData.s{256}, GetValue.s
  Protected lType.l, lpcbData.l, lpDataDWORD.l
 
  RegLastError = 0
  GetValue.s = ""
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn ""
    EndIf
    r1 = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    lpcbData = 255
    r1 = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
    If r1 = #ERROR_SUCCESS
      Select lType
        Case #REG_SZ
          r1 = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData)
          If r1 = #ERROR_SUCCESS
            GetValue = Left(lpData, lpcbData - 1)
          Else
            GetValue = ""
          EndIf
        Case #REG_DWORD
          r1 = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpDataDWORD, @lpcbData)
          If r1 = #ERROR_SUCCESS
            GetValue = Str(lpDataDWORD)
          Else
            GetValue = ""
          EndIf
      EndSelect
      If r1 = #ERROR_SUCCESS
        Result = #True
      Else
        RegLastError = r1
        RegLastMessage = FormatMessage(RegLastError)
        Result = #False
      EndIf
    Else
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
    EndIf
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn GetValue
 
EndProcedure

; ***************************************************************************************

Procedure.s Reg_ListSubKey(topKey, sKeyName.s, Index, ComputerName.s = "")
 
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, Result.l
  Protected lpName.s{256}, ListSubKey.s
  Protected lpcbName.l
  Protected lpftLastWriteTime.FILETIME
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn ""
    EndIf
    r1 = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    lpcbName = 255
    r1 = RegEnumKeyEx_(hKey, Index, @lpName, @lpcbName, 0, 0, 0, @lpftLastWriteTime)
    If r1 = #ERROR_SUCCESS
      ListSubKey.s = Left(lpName, lpcbName)
    Else
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ListSubKey.s = ""
    EndIf
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
    ListSubKey.s = ""
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn ListSubKey

EndProcedure

; ***************************************************************************************

Procedure Reg_DeleteValue(topKey, sKeyName.s, sValueName.s, ComputerName.s = "")
 
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, DeleteValue.l
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn #False
    EndIf
    r1 = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    r1 = RegDeleteValue_(hKey, @sValueName)
    If r1 = #ERROR_SUCCESS
      DeleteValue = #True
    Else
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      DeleteValue = #False
    EndIf
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
    DeleteValue = #False
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn DeleteValue
 
EndProcedure

; ***************************************************************************************

Procedure Reg_CreateKey(topKey, sKeyName.s, ComputerName.s = "")
 
  ; Result #REG_CREATED_NEW_KEY = 1
  ; Result #REG_OPENED_EXISTING_KEY = 2
 
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, CreateKey.l
  Protected lpSecurityAttributes.SECURITY_ATTRIBUTES
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegCreateKeyEx_(topKey, sKeyName, 0, 0, #REG_OPTION_NON_VOLATILE, #KEY_ALL_ACCESS, @lpSecurityAttributes, @hKey, @CreateKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn #False
    EndIf
    r1 = RegCreateKeyEx_(lhRemoteRegistry, sKeyName, 0, 0, #REG_OPTION_NON_VOLATILE, #KEY_ALL_ACCESS, @lpSecurityAttributes, @hKey, @CreateKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    ;
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn CreateKey

EndProcedure

; ***************************************************************************************

Procedure Reg_DeleteKey(topKey, sKeyName.s, ComputerName.s = "")
 
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, DeleteKey.l
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegDeleteKey_(topKey, @sKeyName)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn #False
    EndIf
    r1 = RegDeleteKey_(lhRemoteRegistry, @sKeyName)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    DeleteKey = #True
  Else
    DeleteKey = #False
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
  EndIf
 
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn DeleteKey

EndProcedure

; ***************************************************************************************

Procedure.s Reg_ListSubValue(topKey, sKeyName.s, Index, ComputerName.s = "")
 
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, Result.l
  Protected lpName.s{256}, ListSubValue.s
  Protected lpcbName.l
  Protected lpftLastWriteTime.FILETIME
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn ""
    EndIf
    r1 = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    lpcbName = 255
    r1 = RegEnumValue_(hKey, Index, @lpName, @lpcbName, 0, 0, 0, 0)
    If r1 = #ERROR_SUCCESS
      ListSubValue = Left(lpName, lpcbName)
    Else
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ListSubValue.s = ""
    EndIf
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
    ListSubValue.s = ""
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn ListSubValue
   
EndProcedure

; ***************************************************************************************

Procedure Reg_KeyExists(topKey, sKeyName.s, ComputerName.s = "")
   
  Protected hKey.l, lhRemoteRegistry.l
  Protected r1.l, KeyExists.l
 
  RegLastError = 0
 
  If Left(sKeyName, 1) = "\" : sKeyName = Right(sKeyName, Len(sKeyName) - 1) : EndIf
  If Right(sKeyName,1)="\" : sKeyName = Left(sKeyName, Len(sKeyName) - 1) : EndIf
 
  If ComputerName = ""
    r1 = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  Else
    r1 = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
    If r1 <> #ERROR_SUCCESS
      RegLastError = r1
      RegLastMessage = FormatMessage(RegLastError)
      ProcedureReturn #False
    EndIf
    r1 = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey)
  EndIf
 
  If r1 = #ERROR_SUCCESS
    KeyExists = #True
  Else
    RegLastError = r1
    RegLastMessage = FormatMessage(RegLastError)
    KeyExists = #False
  EndIf
 
  ; Close Key
  RegCloseKey_(hKey)
  ; Close Remote
  If lhRemoteRegistry
    RegCloseKey_(lhRemoteRegistry)
  EndIf
 
  ProcedureReturn KeyExists
 
EndProcedure

; ***************************************************************************************

Procedure Reg_DeleteKeyWithAllSub(topKey,sKeyName.s,ComputerName.s = "")
   
   Protected i.l
   Protected a$="", b$
   
   Repeat
      b$=a$
      a$=Reg_ListSubKey(topKey,sKeyName,0,"")
      If a$<>""
         Reg_DeleteKeyWithAllSub(topKey,sKeyName+"\"+a$,"")
      EndIf
   Until a$=b$
   Reg_DeleteKey(topKey, sKeyName, ComputerName)
EndProcedure

; ***************************************************************************************

Procedure Reg_CreateKeyValue(topKey,sKeyName.s,sValueName.s,vValue.s,lType,ComputerName.s = "")
   Reg_CreateKey(topKey,sKeyName,ComputerName)
   ProcedureReturn Reg_SetValue(topKey,sKeyName,sValueName,vValue,lType,ComputerName)
EndProcedure

; ***************************************************************************************

Procedure AssociateFileEx(AF_Ext$,ext_description$,programm$,icon$,prgkey$,cmd_description$,cmd_key$)
   
   Protected cmd$, key$
   
   cmd$=Chr(34)+programm$+Chr(34)+" "+Chr(34)+"%1"+Chr(34)
   If GetVersion_() & $FF0000 ; Windows NT/XP
      Reg_CreateKeyValue(#HKEY_CLASSES_ROOT, "Applications\"+prgkey$+"\shell\"+cmd_description$+"\command","",cmd$,#REG_SZ,"")
      If ext_description$
         Key$=AF_Ext$+"_auto_file"
         Reg_CreateKeyValue(#HKEY_CLASSES_ROOT  ,"."+AF_Ext$           ,"",Key$            ,#REG_SZ,"")
         Reg_CreateKeyValue(#HKEY_CLASSES_ROOT  ,Key$               ,"",ext_description$,#REG_SZ,"")
         If icon$
            Reg_CreateKeyValue(#HKEY_CLASSES_ROOT,Key$+"\DefaultIcon","",icon$           ,#REG_SZ,"")
         EndIf
      EndIf
      Reg_CreateKeyValue(#HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\."+AF_Ext$,"Application",prgkey$,#REG_SZ,"")
   Else ;Windows 9x
      Reg_CreateKeyValue(#HKEY_LOCAL_MACHINE  ,"Software\Classes\."+AF_Ext$                     ,"",prgkey$         ,#REG_SZ,"")
      If ext_description$
         Reg_CreateKeyValue(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$                   ,"",ext_description$,#REG_SZ,"")
      EndIf
      If icon$
         Reg_CreateKeyValue(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$+"\DefaultIcon"    ,"",icon$           ,#REG_SZ,"")
      EndIf
      If cmd_description$<>cmd_key$
         Reg_CreateKeyValue(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$+"\shell\"+cmd_key$,"",cmd_description$,#REG_SZ,"")
      EndIf
      Reg_CreateKeyValue(#HKEY_LOCAL_MACHINE  ,"Software\Classes\"+prgkey$+"\shell\"+cmd_key$+"\command","",cmd$,#REG_SZ,"")
   EndIf
EndProcedure

; ***************************************************************************************

Procedure Remove_AssociateFile(AF_Ext$,prgkey$)
   
   Protected key$
   
   If GetVersion_() & $FF0000 ; Windows NT/XP
      Reg_DeleteKeyWithAllSub(#HKEY_CLASSES_ROOT,"Applications\"+prgkey$,"")
      key$=AF_Ext$+"_auto_file"
      Reg_DeleteKeyWithAllSub(#HKEY_CLASSES_ROOT,"."+AF_Ext$,"")
      Reg_DeleteKeyWithAllSub(#HKEY_CLASSES_ROOT,key$,"")
      Reg_DeleteKeyWithAllSub(#HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\."+AF_Ext$,"")
   Else ;Windows 9x
      Reg_DeleteKeyWithAllSub(#HKEY_LOCAL_MACHINE  ,"Software\Classes\."+AF_Ext$,"")
      Reg_DeleteKeyWithAllSub(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$,"")
   EndIf
EndProcedure

; ***************************************************************************************

Procedure AssociateFile(AF_Ext$,ext_description$,programm$,icon$)
   AssociateFileEx(AF_Ext$,ext_description$,programm$,icon$,GetFilePart(programm$),"open","open")
EndProcedure
;#PB_Lit2Msg start

; *************************************************************************************** 
[/quote]
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Beitrag von Helle »

Du kannst in der Registry unter "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" festlegen, welcher User bei der Anmeldung angezeigt wird. Ein DWord-Wert anlegen mit dem Nutzernamen, Wert = 0 = Name wird nicht angezeigt (so kann man auch angelegte Nutzer aussperren!), Wert = 1 = Nutzer wird angezeigt.
Ich hoffe, deine Frage richtig verstanden zu haben.

Gruß
Helle
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Man kanns sich auch einfach machen und LockWorkStation verwenden. ^^
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
LoD
Beiträge: 9
Registriert: 26.08.2008 19:30

Beitrag von LoD »

@Helle:
Schon probiert... geht leider auch net, werd bei Gelegenheit mal wieder alles neu draufspieln, dann wirds scho wieder hinhaun.
Aber eigentlich wollte ich eh bloß wissen, ob der Code soweit "sicher" ist und nur mit der Tastenkombination beendet werden kann, oder ob ich was überseh hab.. :)

@Thorium:
So mach ich normalerweiße ja immer (bzw. mit der Windowstaste und L), aber ohne Passwort für das Benutzerkonto isses witzlos ;)
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Mit CTRL+ALT+DEL+DEL kommt wieder das Anmeldefenster wie man es noch aus Win2000 kennt. Gut um sich als Administrator anmelden zu können.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten