Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
- #AutoIt3Wrapper_Icon=XTU helper.ico
- #AutoIt3Wrapper_Outfile=Para's XTU Helper - ver. 1.05.exe
- #AutoIt3Wrapper_UseUpx=n
- #AutoIt3Wrapper_UseX64=n
- #AutoIt3Wrapper_Res_Fileversion=1.0.5.0
- #AutoIt3Wrapper_Res_LegalCopyright=Paraly
- #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
- Opt("TrayMenuMode", 1 + 2)
- TraySetToolTip("Para's XTU Helper")
- Global $TRAY_Exit = TrayCreateItem("Exit")
- AdlibRegister("_TrayMSG", 100)
- Global $XTU_Drive, $XTU_Path, $currentprofile = ""
- If IsAdmin() = 0 Then
- TrayTip("Para's XTU Helper","No Admin Permissions, can't adjust voltages and probably can't run addon programms that require admin privileges" &@CRLF& "it's recommend to set the XTU Helper as service with Admin privileges",3,2)
- Sleep(3000)
- EndIf
- If FileExists("C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XtuCLI.exe") Then
- $XTU_Path = "C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client"
- $XTU_Drive = "C:"
- ElseIf IniRead(@ScriptDir & "\settings.ini","Main","XTUPath","") <> "" Then
- $XTU_Path = StringRegExpReplace(IniRead(@ScriptDir & "\settings.ini","Main","XTUPath",""),'(?i)\\xtucli.exe','')
- If StringRight($XTU_Path,1) = "\" Then
- $XTU_Path = StringTrimRight($XTU_Path,1)
- EndIf
- $XTU_Drive = StringLeft($XTU_Path,2)
- Else
- Local $LoadPath = FileOpenDialog("Select the xtucli.exe (old XTU version required)", @ProgramFilesDir, "xtucli.exe (xtucli.exe)", 1 + 2)
- If $LoadPath <> "" Then
- $XTU_Path = StringRegExpReplace($LoadPath,'(?i)\\xtucli.exe','')
- $XTU_Drive = StringLeft($LoadPath,2)
- EndIf
- EndIf
- If FileExists($XTU_Path & "\xtucli.exe") = 0 Then
- MsgBox(16,"ERROR","xtucli.exe not found, this file is only available in an old XTU version")
- Exit
- EndIf
- If FileExists(@ScriptDir & "\settings.ini") = 0 Then
- $f = FileOpen(@ScriptDir & "\settings.ini",10)
- FileClose($f)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "Total",1)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "Notifications",1)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "XTUPath","")
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OBDefaultWattage",7)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OBDefaultShortWattage",12)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OBDefaultCPUVoltageOffset",0)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OBDefaultGPUVoltageOffset",0)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OCDefaultWattage",7)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OCDefaultShortWattage",12)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OCDefaultCPUVoltageOffset",0)
- IniWrite(@ScriptDir & "\settings.ini", "Main", "OCDefaultGPUVoltageOffset",0)
- IniWrite(@ScriptDir & "\settings.ini", "Executable", "1","Citra-qt.exe")
- IniWrite(@ScriptDir & "\settings.ini", "OBWattage", "1","9.exe")
- IniWrite(@ScriptDir & "\settings.ini", "OBShortWattage", "1","15.exe")
- IniWrite(@ScriptDir & "\settings.ini", "OBDefaultCPUVoltageOffset", "1","-50")
- IniWrite(@ScriptDir & "\settings.ini", "OBDefaultGPUVoltageOffset", "1","-55")
- IniWrite(@ScriptDir & "\settings.ini", "OCDefaultWattage", "1","10")
- IniWrite(@ScriptDir & "\settings.ini", "OCDefaultShortWattage", "1","15")
- IniWrite(@ScriptDir & "\settings.ini", "OCDefaultCPUVoltageOffset", "1","-50")
- IniWrite(@ScriptDir & "\settings.ini", "OCDefaultGPUVoltageOffset", "1","-55")
- IniWrite(@ScriptDir & "\settings.ini", "RunAddon", "1","C:\Users\Paral\Documents\XPadder\Xpadder.exe CitraProfile /m")
- IniWrite(@ScriptDir & "\settings.ini", "DelayedKeyStroke", "1","{F5},5000")
- EndIf
- $Informations_Total = IniRead(@ScriptDir & "\settings.ini","Main","Total",1)
- $Informations_Notifications = IniRead(@ScriptDir & "\settings.ini","Main","Notifications",1)
- $Informations_OBDefaultWattage = IniRead(@ScriptDir & "\settings.ini","Main","OBDefaultWattage",7)
- $Informations_OBShortWattage = IniRead(@ScriptDir & "\settings.ini","Main","OBDefaultShortWattage",15)
- $Informations_OBCPUVoltageOffset = IniRead(@ScriptDir & "\settings.ini","Main","OBDefaultCPUVoltageOffset",0)
- $Informations_OBGPUVoltageOffset = IniRead(@ScriptDir & "\settings.ini","Main","OBDefaultGPUVoltageOffset",0)
- $Informations_OCDefaultWattage = IniRead(@ScriptDir & "\settings.ini","Main","OCDefaultWattage",7)
- $Informations_OCShortWattage = IniRead(@ScriptDir & "\settings.ini","Main","OCDefaultShortWattage",15)
- $Informations_OCCPUVoltageOffset = IniRead(@ScriptDir & "\settings.ini","Main","OCDefaultCPUVoltageOffset",0)
- $Informations_OCGPUVoltageOffset = IniRead(@ScriptDir & "\settings.ini","Main","OCDefaultGPUVoltageOffset",0)
- Dim $Informations[$Informations_Total][11]
- For $i = 0 To $Informations_Total-1
- $Informations[$i][0] = IniRead(@ScriptDir & "\settings.ini","Executable",$i+1,"")
- $Informations[$i][1] = IniRead(@ScriptDir & "\settings.ini","OBWattage",$i+1,"")
- $Informations[$i][2] = IniRead(@ScriptDir & "\settings.ini","OBShortWattage",$i+1,"")
- $Informations[$i][3] = IniRead(@ScriptDir & "\settings.ini","OBDefaultCPUVoltageOffset",$i+1,"")
- $Informations[$i][4] = IniRead(@ScriptDir & "\settings.ini","OBDefaultGPUVoltageOffset",$i+1,"")
- $Informations[$i][5] = IniRead(@ScriptDir & "\settings.ini","OCDefaultWattage",$i+1,"")
- $Informations[$i][6] = IniRead(@ScriptDir & "\settings.ini","OCDefaultShortWattage",$i+1,"")
- $Informations[$i][7] = IniRead(@ScriptDir & "\settings.ini","OCDefaultCPUVoltageOffset",$i+1,"")
- $Informations[$i][8] = IniRead(@ScriptDir & "\settings.ini","OCDefaultGPUVoltageOffset",$i+1,"")
- $Informations[$i][9] = IniRead(@ScriptDir & "\settings.ini","RunAddon",$i+1,"")
- $Informations[$i][10] = IniRead(@ScriptDir & "\settings.ini","DelayedKeyStroke",$i+1,"")
- Next
- $BatteryStatus = _ComputerGetBattery()
- If $BatteryStatus = False Then
- _ApplySettings($Informations_OBDefaultWattage,$Informations_OBShortWattage,$Informations_OBCPUVoltageOffset,$Informations_OBGPUVoltageOffset)
- $currentprofile = False
- ElseIf $BatteryStatus = True Then
- _ApplySettings($Informations_OCDefaultWattage,$Informations_OCShortWattage,$Informations_OCCPUVoltageOffset,$Informations_OCGPUVoltageOffset)
- $currentprofile = True
- EndIf
- While 1
- $ProcessArray = ProcessList()
- For $i2 = 1 To $ProcessArray[0][0]
- For $i = 0 To $Informations_Total-1
- If $ProcessArray[$i2][0] = $Informations[$i][0] Then
- $EXEPID = $ProcessArray[$i2][1]
- If $Informations[$i][9] <> "" Then
- $AddonPID = Run($Informations[$i][9])
- EndIf
- If $Informations[$i][10] <> "" Then
- $DelayedKeyStroke_splitted = StringSplit($Informations[$i][10],",",1)
- AdlibRegister("_KeyStroke",$DelayedKeyStroke_splitted[1])
- EndIf
- $BatteryStatus = _ComputerGetBattery()
- If $BatteryStatus = False Then
- _ApplySettings($Informations[$i][1],$Informations[$i][2],$Informations[$i][3],$Informations[$i][4])
- $currentprofile = False
- ElseIf $BatteryStatus = True Then
- _ApplySettings($Informations[$i][5],$Informations[$i][6],$Informations[$i][7],$Informations[$i][8])
- $currentprofile = True
- EndIf
- While ProcessExists($EXEPID) > 0
- Sleep(3000)
- $BatteryStatus = _ComputerGetBattery()
- If $currentprofile <> $BatteryStatus Then
- If $BatteryStatus = False Then
- _ApplySettings($Informations[$i][1],$Informations[$i][2],$Informations[$i][3],$Informations[$i][4])
- $currentprofile = False
- ElseIf $BatteryStatus = True Then
- _ApplySettings($Informations[$i][5],$Informations[$i][6],$Informations[$i][7],$Informations[$i][8])
- $currentprofile = True
- EndIf
- EndIf
- WEnd
- If $Informations[$i][9] <> "" Then
- ProcessClose($AddonPID)
- EndIf
- $BatteryStatus = _ComputerGetBattery()
- If $BatteryStatus = False Then
- _ApplySettings($Informations_OBDefaultWattage,$Informations_OBShortWattage,$Informations_OBCPUVoltageOffset,$Informations_OBGPUVoltageOffset)
- $currentprofile = False
- ElseIf $BatteryStatus = True Then
- _ApplySettings($Informations_OCDefaultWattage,$Informations_OCShortWattage,$Informations_OCCPUVoltageOffset,$Informations_OCGPUVoltageOffset)
- $currentprofile = True
- EndIf
- EndIf
- Next
- Next
- $BatteryStatus = _ComputerGetBattery()
- If $currentprofile <> $BatteryStatus Then
- If $BatteryStatus = False Then
- _ApplySettings($Informations_OBDefaultWattage,$Informations_OBShortWattage,$Informations_OBCPUVoltageOffset,$Informations_OBGPUVoltageOffset)
- $currentprofile = False
- ElseIf $BatteryStatus = True Then
- _ApplySettings($Informations_OCDefaultWattage,$Informations_OCShortWattage,$Informations_OCCPUVoltageOffset,$Informations_OCGPUVoltageOffset)
- $currentprofile = True
- EndIf
- EndIf
- Sleep(3000)
- WEnd
- Func _ApplySettings($wattage, $shortwattage, $cpuoffset, $gpuoffset)
- If $wattage > 1 And $wattage < 16 And $shortwattage > 1 And $shortwattage < 16 And $cpuoffset <= 0 And $cpuoffset > -120 And $gpuoffset <= 0 And $gpuoffset > -120 Then
- $CMD_PID = Run(@ComSpec & ' /c NET STOP XTU3SERVICE',"",@SW_HIDE)
- While ProcessExists($CMD_PID) > 0
- Sleep(500)
- WEnd
- $CMD_PID = Run(@ComSpec & ' /c NET START XTU3SERVICE && ' & $XTU_Drive & ' && cd "' & $XTU_Path & '" && xtucli.exe -t -id 34 -v 0 && xtucli.exe -t -id 100 -v 0 && xtucli.exe -t -id 48 -v ' & $wattage & ' && xtucli.exe -t -id 47 -v ' & $shortwattage & ' && xtucli.exe -t -id 34 -v ' & $cpuoffset & ' && xtucli.exe -t -id 100 -v ' & $gpuoffset & ' && TIMEOUT 2 && xtucli.exe -i tuning xml && NET STOP XTU3SERVICE',"",@SW_HIDE)
- While ProcessExists($CMD_PID) > 0
- Sleep(500)
- WEnd
- If $Informations_Notifications = 1 Then
- TrayTip("Para's XTU Helper", "Power Max: " & $wattage & "w" & @CRLF & "Short Power Max: " & $shortwattage & "w" & @CRLF & "CPU Voltage Offset: " & $cpuoffset & @CRLF & "GPU Voltage Offset: " & $gpuoffset,3,1)
- EndIf
- Return True
- Else
- Return False
- EndIf
- EndFunc
- Func _TrayMSG()
- Local $tmsg = TrayGetMsg()
- Select
- Case $tmsg = $TRAY_Exit
- Exit
- EndSelect
- EndFunc
- Func _KeyStroke()
- Send($DelayedKeyStroke_splitted[2])
- AdlibUnRegister("_KeyStroke")
- EndFunc
- Func _ComputerGetBattery(); Function Author Jarvis J. Stubblefield (JSThePatriot) http://www.vortexrevolutions.com/
- Local $colItems, $objWMIService, $objItem
- Dim $aBatteryInfo[1][31], $ti = 1
- $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
- $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Battery", "WQL", 0x10 + 0x20)
- If IsObj($colItems) Then
- For $objItem In $colItems
- ReDim $aBatteryInfo[UBound($aBatteryInfo) + 1][31]
- $aBatteryInfo[$ti][0] = $objItem.Name
- $aBatteryInfo[$ti][1] = $objItem.Availability
- $aBatteryInfo[$ti][2] = $objItem.BatteryRechargeTime
- $aBatteryInfo[$ti][3] = $objItem.BatteryStatus
- $aBatteryInfo[$ti][4] = $objItem.Description
- $aBatteryInfo[$ti][5] = $objItem.Chemistry
- $aBatteryInfo[$ti][6] = $objItem.ConfigManagerErrorCode
- $aBatteryInfo[$ti][7] = $objItem.ConfigManagerUserConfig
- $aBatteryInfo[$ti][8] = $objItem.CreationClassName
- $aBatteryInfo[$ti][9] = $objItem.DesignCapacity
- $aBatteryInfo[$ti][10] = $objItem.DesignVoltage
- $aBatteryInfo[$ti][11] = $objItem.DeviceID
- $aBatteryInfo[$ti][12] = $objItem.ErrorCleared
- $aBatteryInfo[$ti][13] = $objItem.ErrorDescription
- $aBatteryInfo[$ti][14] = $objItem.EstimatedChargeRemaining
- $aBatteryInfo[$ti][15] = $objItem.EstimatedRunTime
- $aBatteryInfo[$ti][16] = $objItem.ExpectedBatteryLife
- $aBatteryInfo[$ti][17] = $objItem.ExpectedLife
- $aBatteryInfo[$ti][18] = $objItem.FullChargeCapacity
- $aBatteryInfo[$ti][19] = $objItem.LastErrorCode
- $aBatteryInfo[$ti][20] = $objItem.MaxRechargeTime
- $aBatteryInfo[$ti][21] = $objItem.PNPDeviceID
- $aBatteryInfo[$ti][22] = $objItem.PowerManagementCapabilities(0)
- $aBatteryInfo[$ti][23] = $objItem.PowerManagementSupported
- $aBatteryInfo[$ti][24] = $objItem.SmartBatteryVersion
- $aBatteryInfo[$ti][25] = $objItem.Status
- $aBatteryInfo[$ti][26] = $objItem.StatusInfo
- $aBatteryInfo[$ti][27] = $objItem.SystemCreationClassName
- $aBatteryInfo[$ti][28] = $objItem.SystemName
- $aBatteryInfo[$ti][29] = $objItem.TimeOnBattery
- $aBatteryInfo[$ti][30] = $objItem.TimeToFullCharge
- $ti += 1
- Next
- $aBatteryInfo[0][0] = UBound($aBatteryInfo) - 1
- If $aBatteryInfo[1][3] = 1 Then
- Return False
- ElseIf $aBatteryInfo[1][3] = 2 Then
- Return True
- EndIf
- If $aBatteryInfo[0][3] = 1 Then
- Return False
- ElseIf $aBatteryInfo[0][3] = 2 Then
- Return True
- EndIf
- EndIf
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement