I did an autoIt script to undervolt the memo, worked very well, but it's still missing log to file, could find out very quicly my memory lowest voltage at 1800Mhz.
Still with a couple bugs, it's not logging to file yet, it uses OCCT and easy tune, and both aren't autoit friendly, so need to do everything using coordinates, I don't if it will work on others resolutions(mine is 1680x1050)
It's my first autoit script in years, so there's lot of room for improvement.
Code:
;Auto undervolt script, open easy tune and OCCT before running and
;make sure there is no window open with the name of the programs(OCCT or EasyTune6 Build 2012.11.21)AutoItSetOption("MouseCoordMode", 0);
$minutes = 5;
if Not WinExists("EasyTune6 Build 2012.11.21") Or Not WinExists("OCCT") Then
MsgBox(0, "Error","OCCT Or Easy Tune not open");
Exit
EndIf
WindowExist ("OCCT");
;Cpu Linpack
MouseClick ( "Left", 149, 111);
;Start test
MouseClick ( "Left", 478, 163);
WindowExist ("EasyTune6 Build 2012.11.21");
;Advanced
MouseClick ( "Left", 408, 95);
;Voltage
MouseClick ( "Left", 173, 101);
While 1
$total = 0;
For $i = 1 To $minutes*60 Step 1
if Not ProcessExists ("linpack_xeon64.exe") Then
MsgBox(0,"","linpack stopped");
Exit
EndIf
Sleep(1000);
Next
WindowExist("EasyTune6 Build 2012.11.21");
;Lower Dram Voltage
MouseClick ( "Left", 292, 284 );
;Set button
MouseClick ( "Left", 275, 515 );
WEnd
Func WindowExist($WindowName = "")
if WinExists ($WindowName) Then
WinActivate($WindowName);
WinWaitActive($WindowName);
Else
MsgBox(0,"Error","Error Retriving window $WindowName");
EndIf
EndFunc
Func LogUndervolt()
Local $file = FileOpen("test.txt", 1)
; Check if file opened for writing OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
FileWriteLine($file, "Underclocked Again at " & _Time() & @CRLF)
FileClose($file)
EndFunc
Func _Time($iSec = 0, $tFormat = 12)
Local $fKey = "HKCU\Control Panel\International", $ap = RegRead($fKey, "s1159")
Local $pStr = RegRead($fKey, "s2359"), $tSep = RegRead($fKey, "sTime"), $sStr = ""
Local $hour = @HOUR
If $tFormat = 12 Then
If $hour = 0 Then $hour = 12
If @HOUR >= 12 Then
$hour = @HOUR
If $hour > 12 Then $hour -= 12
$ap = $pStr
EndIf
Else
$ap = ""
$hour = StringFormat("%02u", $hour)
EndIf
If $iSec <> 0 Then $sStr = $tSep & @SEC
If $ap <> "" Then $ap = Chr(32) & $ap
Return $hour & $tSep & @MIN & $sStr & $ap
EndFunc ;==>_Time
Bookmarks