Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Array.au3>
;~ form
$frm = GUICreate("Winlogon", 164, 132)
$btnChange = GUICtrlCreateButton("Modifier", 8, 96, 147, 25)
$txtLogin = GUICtrlCreateLabel("Login", 8, 8, 30, 14)
$inputLogin = GUICtrlCreateCombo("", 8, 24, 145, 25)
$txtDomain = GUICtrlCreateLabel("Domaine", 8, 48, 46, 14)
$inputDomain = GUICtrlCreateCombo("", 8, 64, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
;~ remplissage login
Local $x = 0, $aUserList[100]
$userList = _FileListToArray("C:\Documents and Settings\", "*.*", 2)
If IsArray($userList) Then
For $i = 1 To $userList[0]
Select
Case $userList[$i] = "All Users"
Case $userList[$i] = "NetworkService"
Case $userList[$i] = "Default User"
Case $userList[$i] = "LocalService"
Case $userList[$i] = "Administrateur"
Case Else
$aUserList[$x] = $userList[$i]
$x += 1
EndSelect
Next
ReDim $aUserList[$x]
$aUserList = _ArrayToString($aUserList, "|")
Else
$aUserList = ""
EndIf
GUICtrlSetData($inputLogin, $aUserList)
;~ remplissage domaine
GUICtrlSetData($inputDomain, "domaine1|domaine2|"&@ComputerName, "domaine1")
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "My_WM_COMMAND")
;~ code
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnChange
$login = GUICtrlRead($inputLogin)
$domain = GUICtrlRead($inputDomain)
If $login = "" Or $domain = "" Then
If $login = "" Then
GUICtrlSetBkColor($inputLogin, 0xffff00)
GUICtrlSetState($inputLogin, $GUI_FOCUS)
EndIf
If $domain = "" Then
GUICtrlSetBkColor($inputDomain, 0xffff00)
GUICtrlSetState($inputDomain, $GUI_FOCUS)
EndIf
Else
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\", "DefaultUserName", "REG_SZ", $login)
If @error Then
MsgBox(16,"Erreur Winlogon", "Erreur d'écriture dans la base de registre de la clé DefaultUserName"&@crlf&"Erreur num "&@error)
Exit
EndIf
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\", "DefaultDomainName", "REG_SZ", $domain)
If @error Then
MsgBox(16,"Erreur Winlogon", "Erreur d'écriture dans la base de registre de la clé DefaultDomainName"&@crlf&"Erreur num "&@error)
Exit
EndIf
MsgBox(64,"Winlogon", "Mise à jour de la base de registre effectuée")
Exit
EndIf
EndSwitch
WEnd
;~ pour colorisation input
Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
$nNotifyCode = BitShift($wParam, 16)
$nID = BitAND($wParam, 0xFFFF)
$hCtrl = $lParam
Switch $nID
Case $inputLogin
Switch $nNotifyCode
Case $CBN_EDITCHANGE
GUICtrlSetBkColor($inputLogin, 0xffffff)
Case $CBN_EDITUPDATE
GUICtrlSetBkColor($inputLogin, 0xffffff)
EndSwitch
Case $inputDomain
Switch $nNotifyCode
Case $CBN_EDITCHANGE
GUICtrlSetBkColor($inputDomain, 0xffffff)
Case $CBN_EDITUPDATE
GUICtrlSetBkColor($inputDomain, 0xffffff)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc