xanathos Posted June 12, 2012 Share Posted June 12, 2012 (edited) Hello everyone, I have 2 problems with my script, first it eats CPU like crazy, but I know that's because I didn't put a sleep in the loop, I wanna solve the other problem first, the script is hella slow to quit it takes like 10-15 seconds, sometimes even more to exit! Here is my script, I know its a mess but I'm new to AutoIT expandcollapse popup;---------------------------------------------------------------------------------------------------- ; INCLUDES ;---------------------------------------------------------------------------------------------------- #include <StaticConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> #include <FileConstants.au3> #include <Array.au3> #include <File.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> ;---------------------------------------------------------------------------------------------------- ; GLOBALS ;---------------------------------------------------------------------------------------------------- Global $delayTimer = TimerInit() Global $text Global $hwnd = WinGetHandle("aMSN") Global $hwnd2 = WiNGetHandle("Notepad++") Global $IniFile = @ScriptDir & "Config.ini" Global $ControlID[10] Global $ProgramFilesDir = EnvGet('ProgramFiles(x86)') ; for 64bit Win it will return a valid path. if not $ProgramFilesDir then $ProgramFilesDir = @ProgramFilesDir ; for 32bit Win this will "repair" the broken return from above. ;---------------------------------------------------------------------------------------------------- Global $UpdateEvery = 5000 ; milliseconds Global $CheckEvery = 10000 ; milliseconds ;---------------------------------------------------------------------------------------------------- ; GUI ;---------------------------------------------------------------------------------------------------- #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 1093, 340, 207, 430) $MenuItem1 = GUICtrlCreateMenu("Fichier") $MenuItem2 = GUICtrlCreateMenuItem("Ouvrir", $MenuItem1) $MenuItem3 = GUICtrlCreateMenuItem("Sauvegarder", $MenuItem1) $MenuItem6 = GUICtrlCreateMenuItem("Quitter", $MenuItem1) $MenuItem4 = GUICtrlCreateMenu("Aide") $MenuItem5 = GUICtrlCreateMenuItem("A propos", $MenuItem4) $Edit1 = GUICtrlCreateEdit("", 8, 8, 1073, 153, $ES_READONLY) GUICtrlSetColor(-1, 0xA0FFA0) GUICtrlSetBkColor(-1, 0x202943) GUICtrlSetFont(-1, 8, 400, 0, "Tahoma") $Group1 = GUICtrlCreateGroup("Macro 1:", 8, 168, 209, 137) GUICtrlSetColor(-1, 0xFF0000) $addbtn = GUICtrlCreateButton("+", 160, 184, 25, 17) $Input1 = GUICtrlCreateInput("", 24, 208, 177, 21) $Input2 = GUICtrlCreateInput("", 24, 256, 177, 21) $ControlID[1] = $Input2 $Label1 = GUICtrlCreateLabel("Si trouve:", 24, 192, 49, 15) GUICtrlSetColor(-1, 0xFF0000) $Label2 = GUICtrlCreateLabel("Répondre:", 24, 240, 54, 15) GUICtrlSetColor(-1, 0xFF0000) $Button1 = GUICtrlCreateCheckbox("Démarrer", 144, 280, 57, 17, $BS_PUSHLIKE) GUICtrlSetBkColor(-1, 0xFF0000) GUICtrlCreateGroup("", -99, -99, 1, 1) $Group2 = GUICtrlCreateGroup("Macro 2:", 224, 168, 209, 137) GUICtrlSetColor(-1, 0x0000FF) $Input3 = GUICtrlCreateInput("", 240, 208, 177, 21) $ControlID[2] = $Input3 $Input4 = GUICtrlCreateInput("", 240, 256, 177, 21) $ControlID[3] = $Input4 $Label3 = GUICtrlCreateLabel("Si trouve:", 240, 192, 49, 15) GUICtrlSetColor(-1, 0x0000FF) $Label4 = GUICtrlCreateLabel("Répondre:", 240, 240, 54, 15) GUICtrlSetColor(-1, 0x0000FF) $Button2 = GUICtrlCreateCheckbox("Démarrer", 360, 280, 57, 17, $BS_PUSHLIKE) GUICtrlSetColor(-1, 0x0000FF) GUICtrlCreateGroup("", -99, -99, 1, 1) $Group3 = GUICtrlCreateGroup("Macro 3:", 440, 168, 209, 137) GUICtrlSetColor(-1, 0x008000) $Input5 = GUICtrlCreateInput("", 456, 208, 177, 21) $ControlID[4] = $Input5 $Input6 = GUICtrlCreateInput("", 456, 256, 177, 21) $ControlID[5] = $Input6 $Label5 = GUICtrlCreateLabel("Si trouve:", 456, 192, 49, 15) GUICtrlSetColor(-1, 0x008000) $Label6 = GUICtrlCreateLabel("Répondre:", 456, 240, 54, 15) GUICtrlSetColor(-1, 0x008000) $Button3 = GUICtrlCreateCheckbox("Démarrer", 576, 280, 57, 17, $BS_PUSHLIKE) GUICtrlSetColor(-1, 0x008000) GUICtrlCreateGroup("", -99, -99, 1, 1) $Group4 = GUICtrlCreateGroup("Macro 4:", 656, 168, 209, 137) GUICtrlSetColor(-1, 0x800080) $Input7 = GUICtrlCreateInput("", 672, 208, 177, 21) $ControlID[6] = $Input7 $Input8 = GUICtrlCreateInput("", 672, 256, 177, 21) $ControlID[7] = $Input8 $Label7 = GUICtrlCreateLabel("Si trouve:", 672, 192, 49, 15) GUICtrlSetColor(-1, 0x800080) $Label8 = GUICtrlCreateLabel("Répondre:", 672, 240, 54, 15) GUICtrlSetColor(-1, 0x800080) $Button4 = GUICtrlCreateCheckbox("Démarrer", 792, 280, 57, 17, $BS_PUSHLIKE) GUICtrlSetColor(-1, 0x800080) GUICtrlCreateGroup("", -99, -99, 1, 1) $Group5 = GUICtrlCreateGroup("Macro 5:", 872, 168, 209, 137) GUICtrlSetColor(-1, 0xFFFF00) $Input9 = GUICtrlCreateInput("", 888, 208, 177, 21) $ControlID[8] = $Input9 $Input10 = GUICtrlCreateInput("", 888, 256, 177, 21) $ControlID[9] = $Input10 $Label9 = GUICtrlCreateLabel("Si trouve:", 888, 192, 49, 15) GUICtrlSetColor(-1, 0xFFFF00) $Label10 = GUICtrlCreateLabel("Répondre:", 888, 240, 54, 15) GUICtrlSetColor(-1, 0xFFFF00) $Button5 = GUICtrlCreateCheckbox("Démarrer", 1008, 280, 57, 17, $BS_PUSHLIKE) GUICtrlSetColor(-1, 0xFFFF00) GUICtrlCreateGroup("", -99, -99, 1, 1) ;~ For $i = 0 To 9 ;~ GUICtrlSetData($ControlID[$i], IniRead($IniFile, "Macro1", $i, "")) ;~ Next GUICtrlSetData($Input1, IniRead($IniFile, "Macro 1", "Mot-Clef", "")) GUICtrlSetData($Input2, IniRead($IniFile, "Macro 1", "Réponse", "")) GUICtrlSetData($Input3, IniRead($IniFile, "Macro 2", "Mot-Clef", "")) GUICtrlSetData($Input4, IniRead($IniFile, "Macro 2", "Réponse", "")) GUICtrlSetData($Input5, IniRead($IniFile, "Macro 3", "Mot-Clef", "")) GUICtrlSetData($Input6, IniRead($IniFile, "Macro 3", "Réponse", "")) GUICtrlSetData($Input7, IniRead($IniFile, "Macro 4", "Mot-Clef", "")) GUICtrlSetData($Input8, IniRead($IniFile, "Macro 4", "Réponse", "")) GUICtrlSetData($Input9, IniRead($IniFile, "Macro 5", "Mot-Clef", "")) GUICtrlSetData($Input10, IniRead($IniFile, "Macro 5", "Réponse", "")) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ;---------------------------------------------------------------------------------------------------- ; MAIN LOOP ;---------------------------------------------------------------------------------------------------- While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 If GuiCtrlRead($Button1) = $GUI_CHECKED then Adlibregister("Macro1", 5000) GUICtrlSetData($Button1, "Arrêter") EndIf If GuiCtrlRead($Button1) = $GUI_UNCHECKED then Adlibunregister("Macro1") GuiCtrlSetData($Button1, "Démarrer") EndIf Case $MenuItem2 $file = FileOpenDialog("Ouvrir Fichier...", @ScriptDir, "Ini (*.ini)") GUICtrlSetData($Input1, IniRead($file, "Macro 1", "Mot-Clef", "")) GUICtrlSetData($Input2, IniRead($file, "Macro 1", "Réponse", "")) GUICtrlSetData($Input3, IniRead($file, "Macro 2", "Mot-Clef", "")) GUICtrlSetData($Input4, IniRead($file, "Macro 2", "Réponse", "")) GUICtrlSetData($Input5, IniRead($file, "Macro 3", "Mot-Clef", "")) GUICtrlSetData($Input6, IniRead($file, "Macro 3", "Réponse", "")) GUICtrlSetData($Input7, IniRead($file, "Macro 4", "Mot-Clef", "")) GUICtrlSetData($Input8, IniRead($file, "Macro 4", "Réponse", "")) GUICtrlSetData($Input9, IniRead($file, "Macro 5", "Mot-Clef", "")) GUICtrlSetData($Input10, IniRead($file, "Macro 5", "Réponse", "")) Case $MenuItem6 Exit Case $MenuItem3 $file = FileSaveDialog("Sauvegarder Fichier...", @Scriptdir, "Ini (*.ini)", 16, "" & ".ini") ;~ $file = _WinAPI_GetSaveFileName("Sélectionnez un fichier","Ini (*.ini)", @ScriptDir, "", "ini") ;~ For $i = 0 To 9 IniWrite($file, "Macro 1", "Mot-Clef", GUICtrlRead($Input1)) IniWrite($file, "Macro 1", "Réponse", GUICtrlRead($Input2)) IniWrite($file, "Macro 2", "Mot-Clef", GUICtrlRead($Input3)) IniWrite($file, "Macro 2", "Réponse", GUICtrlRead($Input4)) IniWrite($file, "Macro 3", "Mot-Clef", GUICtrlRead($Input5)) IniWrite($file, "Macro 3", "Réponse", GUICtrlRead($Input6)) IniWrite($file, "Macro 4", "Mot-Clef", GUICtrlRead($Input7)) IniWrite($file, "Macro 4", "Réponse", GUICtrlRead($Input8)) IniWrite($file, "Macro 5", "Mot-Clef", GUICtrlRead($Input9)) IniWrite($file, "Macro 5", "Réponse", GUICtrlRead($Input10)) ;~ Next Case $MenuItem5 Switch MsgBox(4, "Plus de poudre blanche", "T'es sur mon pénis? Je pense que:") Case 6 MsgBox(0, "Ok ok", "Han, t'as compris l'putain d'plan de G&G") Case 7 MsgBox(0, "Eteins l'truc", "J'éteins l'putain d'truc, allez putain!") ShellExecute("http://www.youtube.com/watch?v=ev-VCoMCTlU&t=0m20s") Exit EndSwitch EndSwitch If ProcessExists("amsn.exe") Then OnInit() Else OnUpdate() EndIf WEnd ;---------------------------------------------------------------------------------------------------- ; FUNCTIONS ;---------------------------------------------------------------------------------------------------- Func OnInit() Dim $FileArray[1] Dim $FileNew[1] _FileReadToArray($ProgramFilesDir & "MessengerChat.log", $FileArray) For $i = 1 To $FileArray[0] If StringInStr($FileArray[$i], "says") Then _ArrayAdd($FileNew, $FileArray[$i]) EndIf Next _ArrayDelete($FileNew, 0) _FileWriteFromArray("Test.txt", $FileNew) _FileWriteFromArray("Log.txt", $FileNew) GUICtrlSetData($Edit1, FileRead("Log.txt")) EndFunc ;==>OnInit Func OnUpdate() If TimerDiff($delayTimer) > $UpdateEvery Then $delayTimer = TimerInit() OnInit() EndIf EndFunc ;==>OnUpdate Func Macro1() $search = StringInStr(GuiCtrlRead($Edit1), GuiCtrlRead($Input1)) If $search <> 0 then ;~ Msgbox(0, "", GuiCtrlRead($Input1) & " trouvé") ;~ Send("{LWINDOWN}{END}{LWINUP}") ControlClick($hwnd2, "", "[Class:Button; INSTANCE:133]") ;~ sleep(3000) ControlSend($hwnd, "", "", "{END}") Opt("SendKeyDelay", 100) ControlSend($hwnd, "", "", GuiCtrlRead($Input2)) ControlClick($hwnd2, "", "[Class:Button; INSTANCE:133]") FileDelete($ProgramFilesDir & "MessengerChat.log") FileDelete("Test.txt") EndIf EndFunc ;==>Macro1 Edited June 12, 2012 by xanathos Link to comment Share on other sites More sharing options...
xanathos Posted June 13, 2012 Author Share Posted June 13, 2012 bump Link to comment Share on other sites More sharing options...
armoros Posted June 13, 2012 Share Posted June 13, 2012 Xanathos Not the help you may expected but i tested your script,although i don't know French i played with the buttons it opened a you tube page etc. Didn't noticed any intense cpu use. and the script exited instantly, with no delay. I am on XP sp3 512mb. [font="verdana, geneva, sans-serif"] [/font] Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted June 13, 2012 Share Posted June 13, 2012 Lets see.... If ProcessExists("amsn.exe") Then OnInit() A very slow function running all the time (if amsn.exe is running). Could that be your problem? Try it without amsn running. .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
xanathos Posted June 13, 2012 Author Share Posted June 13, 2012 Lets see.... If ProcessExists("amsn.exe") Then OnInit() A very slow function running all the time (if amsn.exe is running). Could that be your problem? Try it without amsn running. I thought so too, disabled it, no luck it still takes ages to exit, also I'm running Windows 7 64 bit, it could be why? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now