#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <GuiMonthCal.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
#include <StaticConstants.au3>
#include <File.au3>
#Include <GuiEdit.au3>
#include <Misc.au3>
#include <Date.au3>
#include <GDIPlus.au3>
#include <Inet.au3>
#include <SendMessage.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <Misc.au3>
#include <array.au3>
Func _Bildschirm_Sperren()
	Global $aData[9] = [ @ComputerName, @LogonServer, @OSVersion, @HomeDrive & '\', @HomeShare, @IPAddress1, @LogonDomain, @OSServicePack, @UserName & ',' & ' ' & 'Based @' & ' ' & @UserProfileDir ]

	IF $aData[4] = '' Then
		$aData[4] = ' _Kein Programmort gefunden...'
	Else
		$aData[4] = @HomeShare
	EndIF
	IF $aData[7] = '' Then
		$aData[7] = ' _Kein Servicepack gefunden...'
	Else
		$aData[7] = @OSServicePack
	Endif
	While 1
		$code =  InputBox('Computer Sperre 1.1 - Saguhilla Software', 'Computer Informationen' & @CRLF & @CRLF & 'Loginserver  ' & $aData[1] & @CRLF & 'Windows-Version: ' & $aData[2] & @CRLF & 'Windows-Ort: ' & $aData[3] & @CRLF  & 'Programm Installationrtso:' & $aData[4] & @CRLF & 'IP-Adresse:' & $aData[5] & @CRLF & 'Login-Domaine: ' & $aData[6] & @CRLF & 'Service-Pack:' & $aData[7] & @CRLF & 'Username:' & $aData[8] & @CRLF & @CRLF & 'Um diesen Computer zu sperren,' & @CRLF & @CRLF & 'gebe bitte ein Passwort ein !!!' & $aData[0], Default, '*M10', 300, 305, 300, 300)
		If @error Then
			ExitLoop
		Else
			Exitloop
		EndIf
	WEnd

	$Locked = GUICreate('Computer Sperre 1.1 - Saguhilla Software', @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
	GUISetBkColor(0x000000, $Locked)
	$Progress1 = GUICtrlCreateProgress((@DesktopWidth - 400) / 2, @DesktopHeight / 2 + 20, 400, 10)
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	GUICtrlCreatePic('lock.gif', 430, 130, 164, 144)
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	$WrongPw = GUICtrlCreateEdit('', 10, 14, 300, @DesktopHeight - 14, BitOR($ES_AUTOVSCROLL, $ES_READONLY), 0)
	GUICtrlSetFont(-1, 12, 800, 0, 'MS Sans Serif')
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetBkColor(-1, 0x000000)
	$InputPw = GUICtrlCreateInput('', @DesktopWidth / 2 - 100, @DesktopHeight / 2 - 10, 200, 20, BitOR($ES_CENTER, $ES_PASSWORD), 0)
	GUICtrlSetFont(-1, 12, 800, 0, 'MS Sans Serif')
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetBkColor(-1, 0x000000)
	GUICtrlCreateLabel('? PASSWORT ?', @DesktopWidth / 2 - 125, @DesktopHeight / 2 - 95, 260, 50, $ES_CENTER, 0)
	GUICtrlSetFont(-1, 30, 800, 0, 'MS Sans Serif')
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetBkColor(-1, 0x000000)
	$labelPw = GUICtrlCreateLabel('Bitte geben Sie ein Passwort ein...', @DesktopWidth / 2 - 195, @DesktopHeight / 2 - 50, 400, 20, $ES_CENTER, 0)
	GUICtrlSetFont(-1, 12, 800, 0, 'MS Sans Serif')
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetBkColor(-1, 0x000000)
	WinSetState('[CLASS:Shell_TrayWnd]', '', @SW_HIDE)
	WinSetTrans($Locked, '', 240)
	GUISetState()
	_MouseTrap(@DesktopWidth, @DesktopHeight)

	While 1

		If _IsPressed('0D') Then
			If GUICtrlRead($InputPw) == $code Then
				GUICtrlSetData($InputPw, '')
				GUICtrlSetData($labelPw, 'Bitte warten...')
				GUICtrlSetFont(-1, 12, 800, 0, 'MS Sans Serif')
				GUICtrlSetColor(-1, 0x66FF00)
				For $i = 1 To 100 Step 5
					GUICtrlSetData($Progress1, $i)
					Sleep(30)
				Next
				WinSetState('[CLASS:Shell_TrayWnd]', '', @SW_SHOW)
				Exit
			Else
				GUICtrlSetData("011298", '')
				GUICtrlSetData($labelPw, 'Falsches Passwort !!!')
				GUICtrlSetFont(-1, 12, 800, 0, 'MS Sans Serif')
				GUICtrlSetColor(-1, 0xFF0000)
			EndIf
		EndIf

		If Not WinActive('Computer Sperre 1.1 - Saguhilla Software') Then
			GUICtrlSetData($labelPw, 'Passwort eingeben !!!')
			GUICtrlSetFont(-1, 12, 800, 0, 'MS Sans Serif')
			GUICtrlSetColor(-1, 0xFF0000)
			WinActivate('Computer Sperre 1.1 - Saguhilla Software')
			_MouseTrap(@DesktopWidth, @DesktopHeight)
		EndIf

		If ProcessExists('Taskmgr.exe') Then
			ProcessClose('Taskmgr.exe')
		Endif
	WEnd
EndFunc

Func _OFF()
    Local Const $Off = 2, $On = -1

    Opt("WinTitleMatchMode", 4)
    $hwnd = WinGetHandle('classname=Progman')
    _ToggleMonitor($hWnd, $Off)
EndFunc

Func _ToggleMonitor($hwnd, $OnOff)
    Local Const $WM_SYSCOMMAND = 274
    Local Const $SC_MONITORPOWER = 61808
    _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $OnOff)
    If @error Then
        MsgBox(0,"Bildschirm ERROR !!!", "Error: " & @error)
        Exit
    EndIf
EndFunc
_ip()
Func _ip()
	Global $sIP = _GetIP()
	If $sIP = -1 Then MsgBox(64,"SaguSoft","Sie haben derzeit keine Internetverbindung...")
	If Not $sIP = -1 Then MsgBox(32,"SaguSoft","Sie haben derzeit eine Internetverbindung...")
	_Main()
EndFunc

Func _Main()
	Local $GUI, $msg, $german, $english, $ExitLoop
	Global Const $Windows_Font = "Microsoft YaHei"
	Local $Computer, $Computer_herunterfahren, $Computer_neustarten, $Computer_standbyeen, $Programme_and_Anwendungen, $paint, $editor, $internetex, $taskmgr, $rechner, $cmd, $cmdbef
	Local $Computer_einfrieren, $Benutzer_abmelden, $Bildschirm_ausschalten, $Bildschirm_sperren, $helpitem

;________________________________________________________________________
	$GUI = GUICreate("Saguhilla Schnellstarter 2011 (FREE-Edition)",280,60, @DesktopHeight+130, @DesktopDepth+450,$WS_POPUP)
	GUICtrlCreateLabel("Saguhilla Schnellstarter 2011", 10, 15, 180, 140)
	GUISetBkColor(0x4876FF)
	GUICtrlSetFont(-1, 9, 800, 1, $Windows_Font)
	$filemenu = GUICtrlCreateMenu("Schnell Start")
	
	
	$Computer = GUICtrlCreateMenu("Computer", $filemenu)
	
	$Computer_herunterfahren = GUICtrlCreateMenuItem("Computer herunterfahren", $Computer)
	$Computer_neustarten = GUICtrlCreateMenuItem("Computer neustarten", $Computer)
	$Computer_standbyeen = GUICtrlCreateMenuItem("Computer standbyeen", $Computer)
	$Computer_einfrieren = GUICtrlCreateMenuItem("Computer einfrieren", $Computer)
	$Computer_standbyeen = GUICtrlCreateMenuItem("", $Computer)
	$Benutzer_abmelden = GUICtrlCreateMenuItem("Benutzer abmelden", $Computer)
	$Computer_standbyeen = GUICtrlCreateMenuItem("", $Computer)
	$Bildschirm_ausschalten = GUICtrlCreateMenuItem("Bildschirm ausschalten", $Computer)
	$Bildschirm_sperren = GUICtrlCreateMenuItem("Bildschirm sperren", $Computer)
	
	$Programme_and_Anwendungen = GUICtrlCreateMenu("Programme & Anwendungen", $filemenu)
	
	$paint = GUICtrlCreateMenuItem("""Paint"" ausführen", $Programme_and_Anwendungen)
	$editor = GUICtrlCreateMenuItem("""Editor"" ausführen", $Programme_and_Anwendungen)
	$internetex = GUICtrlCreateMenuItem("""Internetexplorer"" ausführen", $Programme_and_Anwendungen)
	$explorer = GUICtrlCreateMenuItem("""Dateiexplorer"" ausführen", $Programme_and_Anwendungen)
	$taskmgr = GUICtrlCreateMenuItem("""Taskmanager"" ausführen", $Programme_and_Anwendungen)
	$rechner = GUICtrlCreateMenuItem("""Rechner"" ausführen", $Programme_and_Anwendungen)
	$cmd = GUICtrlCreateMenuItem("""CMD"" ausführen", $Programme_and_Anwendungen)
	$cmdbef = GUICtrlCreateMenuItem("CMD.exe Befehle anzeigen...", $Programme_and_Anwendungen)
	
	$separator1 = GUICtrlCreateMenuItem("", $filemenu)
	$exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
	$helpmenu = GUICtrlCreateMenu("?")
	$aboutitem = GUICtrlCreateMenuItem("Über SSoft", $helpmenu)
	$aboutitem = GUICtrlCreateMenuItem("", $helpmenu)
	$helpitem = GUICtrlCreateMenuItem("Hilfe anzeigen", $helpmenu)
	$german = GuiCtrlCreateButton("[X]", 245, 1, 25, 25)
	GUICtrlSetBkColor(-1,0x4876FF)
	GUISetState()

	While 1
		$msg = GUIGetMsg()

		Select
			Case $msg = $GUI_EVENT_CLOSE
				ExitLoop
				
			Case $msg = $german
				Dim $iMsgBoxAnswer
				$iMsgBoxAnswer = MsgBox(4388,"Saguhilla Schnellstarter 2011","Möchten Sie ""Saguhilla Schnellstarter 2011"" wirklich beenden ???")
				Select
				   Case $iMsgBoxAnswer = 6 ;Yes
						Exit
				   Case $iMsgBoxAnswer = 7 ;No
							
				EndSelect
			Case $msg = $Computer_herunterfahren
				TrayTip("Der Computer wird in 1 Sekunde heruntergefahren...","Bitte warten, der Computer wird nun ausgeschaltet...",0.5,5)
				Sleep(900)
				Shutdown(1)
				
			Case $msg = $Computer_standbyeen
				TrayTip("Der Computer wird jetzt in den Standbye-Modus versetzt...","Bitte warten, der Computer wird in den Standbye-Modus versetzt...",0.5,5)
				Sleep(900)
				Shutdown(32)
				
			Case $msg = $Benutzer_abmelden
				TrayTip("Der Benutzer " & @UserName & " wird jetzt abgemeldet...","Bitte warten, Sie werden abgemeldet...",0.5,5)
				Sleep(900)
				Shutdown(0)
			Case $msg = $Computer_einfrieren
				TrayTip("Der Computer wird jetzt eingefriert...","Bitte warten, der Computer wird eingefriert...",0.5,5)
				Sleep(900)
				Shutdown(64)
				
			Case $msg = $Computer_neustarten
				TrayTip("Der Computer wird jetzt neugestartet...","Bitte warten, der Computer wird neugestartet...",0.5,5)
				Sleep(900)
				Shutdown(2)
			Case $msg = $Bildschirm_ausschalten
				_OFF()
			Case $msg = $Bildschirm_sperren
				_Bildschirm_Sperren()
			Case $msg = $aboutitem
				MsgBox(0,"Über S_Soft","Dieses Programm und seine Teile sind Copyright 2009 - " & @YEAR & " bei" & @CRLF & "Christian Freisheimer..." & @CRLF & "Veränderung, Anderweilige Verwendung dieses Programmes verstossen gegen die AGB`s aller Produkte von S_Soft... ")
				ShellExecute("iexplore.exe","saguhilla-soft.2page.de")
				
			Case $msg = $helpitem
				ShellExecute("iexplore.exe","saguhilla-soft.2page.de")
			Case $msg = $paint
				ShellExecute("paint.exe")
			Case $msg = $explorer
				ShellExecute("explorer.exe")
			Case $msg = $editor
				ShellExecute("wordpad.exe")
			Case $msg = $internetex
				ShellExecute("iexplore","")
			Case $msg = $taskmgr
				ShellExecute("taskmgr.exe")
			Case $msg = $rechner
				Run("calc.exe")
			Case $msg = $cmd
				ShellExecute("cmd.exe")
			Case $msg = $cmdbef
				MsgBox(64,"CMD-Befehle", "Tippen Sie im CMD-Fenster ""help"" und danach [ENTER] ein...")
				ShellExecute("cmd.exe","help")
		EndSelect
	WEnd

	GUIDelete()
	
EndFunc