#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#RequireAdmin
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
Opt("TrayIconHide", 1)

Global $iState
If @CPUArch = "X64" And Not @AutoItX64 Then _
		DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "ptr", $iState)
Run(@ComSpec & " /c " & 'systeminfo > ' & @TempDir & '\Systeminfos.txt', "", @SW_HIDE)

#region GUI $mainGUI ###
$mainGUI = GUICreate("System-Information v2.1", 591, 325)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Label1 = GUICtrlCreateLabel("Computername", 24, 24, 75, 17)
$Label2 = GUICtrlCreateLabel("Benutzername", 24, 56, 72, 17)
$Label3 = GUICtrlCreateLabel("Betriebssystem", 24, 88, 74, 17)
$Label4 = GUICtrlCreateLabel("Service Pack", 24, 120, 68, 17)
$Label5 = GUICtrlCreateLabel("C: Datenträgerkennsatz", 24, 152, 116, 17)
$Label6 = GUICtrlCreateLabel("C: Seriennummer", 24, 184, 84, 17)
$Label7 = GUICtrlCreateLabel("C: Gesamtspeicher", 24, 216, 93, 17)
$Label8 = GUICtrlCreateLabel("C: Freier Speicher", 24, 248, 85, 17)
$Label9 = GUICtrlCreateLabel("IP-Adresse", 312, 24, 55, 17)
$Label10 = GUICtrlCreateLabel("Startverzeichnis", 312, 56, 79, 17)
$Label11 = GUICtrlCreateLabel("Windowsverzeichnis", 312, 88, 101, 17)
$Label12 = GUICtrlCreateLabel("Desktop-Verzeichis", 312, 120, 95, 17)
$Label13 = GUICtrlCreateLabel("Desktop-Breite", 312, 152, 74, 17)
$Label14 = GUICtrlCreateLabel("Desktop-Höhe", 312, 184, 73, 17)
$Label15 = GUICtrlCreateLabel("Datum", 312, 216, 35, 17)
$Label16 = GUICtrlCreateLabel("Uhrzeit", 312, 248, 37, 17)

$Input1 = GUICtrlCreateInput("", 176, 16, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input2 = GUICtrlCreateInput("", 176, 48, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input3 = GUICtrlCreateInput("", 176, 80, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input4 = GUICtrlCreateInput("", 176, 112, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input5 = GUICtrlCreateInput("", 176, 144, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input6 = GUICtrlCreateInput("", 176, 176, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input7 = GUICtrlCreateInput("", 176, 208, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input8 = GUICtrlCreateInput("", 176, 240, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input9 = GUICtrlCreateInput("", 448, 16, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input10 = GUICtrlCreateInput("", 448, 48, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input11 = GUICtrlCreateInput("", 448, 80, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input12 = GUICtrlCreateInput("", 448, 112, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input13 = GUICtrlCreateInput("", 448, 144, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input14 = GUICtrlCreateInput("", 448, 176, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input15 = GUICtrlCreateInput("", 448, 208, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Input16 = GUICtrlCreateInput("", 448, 240, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))

$Button1 = GUICtrlCreateButton("Passwörter der Benutzer verwalten", 16, 272, 187, 41)
GUICtrlSetOnEvent($Button1, "_Passwoerter")
$Button2 = GUICtrlCreateButton("Check System", 208, 272, 187, 41)
GUICtrlSetOnEvent($Button2, "_CheckSystem")
$Button3 = GUICtrlCreateButton("Erweitert", 400, 272, 185, 41)
GUICtrlSetOnEvent($Button3, "_info")
GUISetState(@SW_SHOW, $mainGUI)
#endregion GUI $mainGUI ###

#region GUI $GUI_info ###
$GUI_info = GUICreate("Erweiterte Infos", 615, 438)
GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSEinfo")
$myedit = GUICtrlCreateEdit("", 8, 8, 601, 361, BitOR($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
$testram = GUICtrlCreateButton("Arbeitsspeicher auf Fehler überprüfen", 8, 384, 203, 49)
GUICtrlSetOnEvent($testram, "_testram")
$derfag = GUICtrlCreateButton("Festplatte defragmentieren", 408, 384, 203, 49)
GUICtrlSetOnEvent($derfag, "_defrag")
#endregion GUI $GUI_info ###

#region GUI $GUI_Pass ###
$GUI_Pass = GUICreate("Passwort ändern", 370, 171)
GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSEpass")
GUICtrlCreateLabel("Hier können Sie die Passwörter der einzelnen Benutzer ändern:", 8, 8, 302, 17)
GUICtrlCreateLabel("Name des zu bearbeitenten Benutzerkontos (z.B. Heike):", 8, 32, 272, 17)
$iptUser = GUICtrlCreateInput(@UserName, 16, 48, 121, 21)
GUICtrlCreateLabel("Neues Passwort (um das Passwort zu entfernen, bitte das Feld leer lassen):", 8, 88, 357, 17)
$pw = GUICtrlCreateInput("", 16, 104, 121, 21)
$PwWrite = GUICtrlCreateButton("OK", 147, 136, 75, 25)
GUICtrlSetOnEvent($PwWrite, "_PassWrite")
#endregion GUI $GUI_Pass ###

While Sleep(100) ; Im Leerlauf bummeln
WEnd

Func _CheckSystem()
	GUICtrlSetData($Input1, "" & @ComputerName)
	GUICtrlSetData($Input2, "" & @UserName)
	GUICtrlSetData($Input3, "" & @OSType)
	GUICtrlSetData($Input4, "" & @OSServicePack)
	GUICtrlSetData($Input5, "" & DriveGetLabel("C:\"))
	GUICtrlSetData($Input6, "" & DriveGetSerial("C:\"))
	GUICtrlSetData($Input7, "" & Round(DriveSpaceTotal("C:\") / 1024, 2) & " GB")
	GUICtrlSetData($Input8, "" & Round(DriveSpaceFree("C:\"), 2) & " MB")
	GUICtrlSetData($Input9, "" & @IPAddress1)
	GUICtrlSetData($Input10, "" & @StartupDir)
	GUICtrlSetData($Input11, "" & @WindowsDir)
	GUICtrlSetData($Input12, "" & @DesktopDir)
	GUICtrlSetData($Input13, "" & @DesktopWidth)
	GUICtrlSetData($Input14, "" & @DesktopHeight)
	GUICtrlSetData($Input15, "" & @MDAY & "." & @MON & "." & @YEAR)
	GUICtrlSetData($Input16, "" & @HOUR & ":" & @MIN & ":" & @SEC)
EndFunc   ;==>_CheckSystem

Func CLOSEClicked()
	If @CPUArch = "X64" And Not @AutoItX64 Then _
			DllCall("kernel32.dll", "int", "Wow64RevertWow64FsRedirection", "dword", $iState)
	FileDelete(@TempDir & '\Systeminfos.txt')
	MsgBox(0, "Made by LB-T3ch", "Verbesserungen, Anregungen oder Fehler an AutoIt.de : lukasboy, Cheater Dieter")
	Exit
EndFunc   ;==>CLOSEClicked

Func _info()
	GUICtrlSetData($myedit, FileRead(@TempDir & "\Systeminfos.txt"))
	GUISetState(@SW_SHOW, $GUI_info)
EndFunc   ;==>_info

Func _Passwoerter()
	GUISetState(@SW_HIDE, $mainGUI)
	GUISetState(@SW_SHOW, $GUI_Pass)
EndFunc   ;==>_Passwoerter

Func _defrag()
	Switch @OSVersion
		Case "WIN_7", "WIN_VISTA"
			ShellExecute("dfrgui.exe")
		Case Else
			ShellExecute("dfrg.msc")
	EndSwitch
EndFunc   ;==>_defrag
;####################################################################
Func _testram()
	MsgBox(0, "Error", "MdSched.exe nicht gefunden ?" & @TAB)
;~ 	ShellExecute("MdSched.exe") ;i es wird eine Error-Meldung ausgegeben, MdSched.exe nur bei Win 7 ??
EndFunc   ;==>_testram
;####################################################################
Func _CLOSEinfo()
	GUISetState(@SW_HIDE, $GUI_info)
EndFunc   ;==>_CLOSEinfo

Func _PassWrite()
	$user = GUICtrlRead($iptUser)
	$passwort = GUICtrlRead($pw)
	If $passwort = "" Then
		If MsgBox(1, "Änderungen bestätigen", "Das Passwort des Benutzers '" _
		& $user & "' wird nun entfernt.") = 1 Then Run(@ComSpec & " /c " _
		& 'net user ' & $user & ' ' & $passwort, "", @SW_HIDE)
	Else
		If MsgBox(1, "Änderungen bestätigen", "Das Passwort des Benutzers '" _
		& $user & "' wird nun in '" & $passwort & "' geändert.") = 1 Then Run(@ComSpec _
		& " /c " & 'net user ' & $user & ' ' & $passwort, "", @SW_HIDE)
	EndIf
	ShellExecute(@ScriptFullPath)
	GUISetState(@SW_HIDE, $GUI_Pass)
	GUISetState(@SW_SHOW, $mainGUI)
EndFunc   ;==>_PassWrite

Func _CLOSEpass()
	GUISetState(@SW_HIDE, $GUI_Pass)
	GUISetState(@SW_SHOW, $mainGUI)
EndFunc   ;==>_CLOSEpass

; Ende
