rick00 Posted December 20, 2012 Share Posted December 20, 2012 Hi, I'm trying to automate a application setup but none of the function is working for mouse click. I'm using this code: Run("recuva.exe") WinWaitActive("recuva", "Terms of Use") MouseClick("primary", 657, 406, 10) Is there any alternative to use mouse click without coordinates considering the EXE does not have any unique handle on 'Next' button? I have attached the EXE, please have a look at it. I really need to do this anyhow. Any help would be greatly appreciated. Thanks.recuva.exe Link to comment Share on other sites More sharing options...
JohnOne Posted December 20, 2012 Share Posted December 20, 2012 Need a little more than "the function is working" Please look at MouseCoordMode too, look under Opt() in help file, it means you can pass coordinates relative to the window, or client area of the window. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
kylomas Posted December 20, 2012 Share Posted December 20, 2012 rick00, If you are trying to automate remote installation of this product you might want to check out the "portable" version at the Piriform Web site. kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted December 20, 2012 Moderators Share Posted December 20, 2012 Or you could just run it with the silent switch: Run("RCSetup144.exe /S") "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
kylomas Posted December 20, 2012 Share Posted December 20, 2012 Or you could just run it with the silent switch: Run("RCSetup144.exe /S") Good catch, was looking at switches for Recuva, not install!! Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill Link to comment Share on other sites More sharing options...
rick00 Posted December 20, 2012 Author Share Posted December 20, 2012 (edited) Need a little more than"the function is working"Please look at MouseCoordMode too, look under Opt() in to read help file, it means you can pass coordinatesrelative to the window, or client area of the window.Going to read about that. Thanks for the tip. Edited December 20, 2012 by rick00 Link to comment Share on other sites More sharing options...
rick00 Posted December 20, 2012 Author Share Posted December 20, 2012 rick00, If you are trying to automate remote installation of this product you might want to check out the "portable" version at the Piriform Web site. kylomas Or you could just run it with the silent switch: Run("RCSetup144.exe /S") It is not just the Recuva, it is a Installer containing some other apps or ads that gets download upon execution. The Installer is build with DownloadMR kind of a download manager. I just want to auto click the 'Next' button 'x' times. Please have a look at the EXE. Thanks for your time. Link to comment Share on other sites More sharing options...
Developers Jos Posted December 20, 2012 Developers Share Posted December 20, 2012 (edited) Please have a look at the EXE.You will find that not too many smart people will run a posted EXE. I for one have problems trusting myself so won't even consider trusting somebody else's script.Jos Edited December 20, 2012 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
rick00 Posted December 20, 2012 Author Share Posted December 20, 2012 You will find that not too many smart people will run a posted EXE.I for one have problems trusting myself so won't even consider trusting somebody else's script.JosI got a VPS if anyone is having problems trusting my script. Let me know if someone need that so that I can post. You can even take VPS for yourself as a reward. Link to comment Share on other sites More sharing options...
jdelaney Posted December 20, 2012 Share Posted December 20, 2012 Have you not tried control* functions? why use mouseclick? IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
guinness Posted December 20, 2012 Share Posted December 20, 2012 Re-distributing Recuva without Piriform's consent is again their EULA/TOS. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
jdelaney Posted December 20, 2012 Share Posted December 20, 2012 (edited) I've posted this in the past...add your installer location into the "yourinstaller"...it will loop through all active child windows, as they come appear, and then loop through for certain button text, and click them in that order (first applicable)...makes things like installers a piece of cake: expandcollapse popup#include <Array.au3> Dim $aButtonclickOrder[8] = ["Continue", "&Continue", "OK", "&OK", "Yes", "&Yes", "Install", "&Install"] Dim $aExpectedWindowState[3] = [1, 2, 4] ; Window exists, visible, and enabled $PID = Run("yourinstaller") While ProcessExists($PID) $bButtonclicked = False $aHWnds = _ProcessGetWindow($PID) If IsArray($aHWnds) Then For $i = 0 To UBound($aHWnds) - 1 If WaitForWindowState($aHWnds[$i], $aExpectedWindowState, 0, 0) Then ; window exists, is visible, and is enabled. For $j = 0 To UBound($aButtonclickOrder) - 1 $hButton = ControlGetHandle($aHWnds[$i], "", "[CLASS:Button; TEXT:" & $aButtonclickOrder[$j] & "]" ) If IsHWnd($hButton) Then ; button exists If ControlCommand($aHWnds[$i], "", $hButton, "IsEnabled", "") Then ControlFocus($aHWnds[$i], "", $hButton) ControlClick($aHWnds[$i], "", $hButton) Sleep(2000) $bButtonclicked = True ExitLoop EndIf EndIf Next If $bButtonclicked Then ExitLoop EndIf Next EndIf Sleep(1000) WEnd Func _ProcessGetWindow($p_PID, $p_ReturnBestGuess = False) ; #FUNCTION# ============================================================================================================================ ; Name...........: _ProcessGetWindow ; ; Description ...: Returns an array of HWNDs containing all windows owned by the process $p_PID, or optionally a single "best guess." ; ; Syntax.........: _ProcessGetWindow( $p_PID [, $p_ReturnBestGuess = False ]) ; ; Parameters ....: $p_PID - The PID of the process you want the Window for. ; $p_ReturnBestGuess - If True, function will return only 1 reult on a best-guess basis. ; The "Best Guess" is the VISIBLE window owned by $p_PID with the longest title. ; ; Return values .: Success - Return $_array containing HWND info. ; $_array[0] = Number of results ; $_array[n] = HWND of Window n ; ; Failure - Returns 0 ; ; Error - Returns -1 and sets @error ; 1 - Requires a non-zero number. ; 2 - Process does not exist ; 3 - WinList() Error ; ; Author ........: Andrew Bobulsky, contact: RulerOf <at that public email service provided by Google>. ; Remarks .......: The reverse of WinGetProcess() ; ======================================================================================================================================= Local $p_ReturnVal[1] = [0] Local $p_WinList = WinList() If @error Then ;Some Error handling SetError(3) Return -1 EndIf If $p_PID = 0 Then ;Some Error handling SetError(1) Return -1 EndIf If ProcessExists($p_PID) = 0 Then ;Some Error handling ConsoleWrite("_ProcessGetWindow: Process " & $p_PID & " doesn't exist!" & @CRLF) SetError(2) Return -1 EndIf For $i = 1 To $p_WinList[0][0] Step 1 Local $w_PID = WinGetProcess($p_WinList[$i][1]) ; ConsoleWrite("Processing Window: " & Chr(34) & $p_WinList[$i][0] & Chr(34) & @CRLF & " with HWND: " & $p_WinList[$i][1] & @CRLF & " and PID: " & $w_PID & @CRLF) If $w_PID = $p_PID Then ;ConsoleWrite("Match: HWND " & $p_WinList[$i][1] & @CRLF) $p_ReturnVal[0] += 1 _ArrayAdd($p_ReturnVal, $p_WinList[$i][1]) EndIf Next If $p_ReturnVal[0] > 1 Then If $p_ReturnBestGuess Then Do Local $i_State = WinGetState($p_ReturnVal[2]) Local $i_StateLongest = WinGetState($p_ReturnVal[1]) Select Case BitAND($i_State, 2) And BitAND($i_StateLongest, 2) ;If they're both visible If StringLen(WinGetTitle($p_ReturnVal[2])) > StringLen(WinGetTitle($p_ReturnVal[1])) Then ;And the new one has a longer title _ArrayDelete($p_ReturnVal, 1) ;Delete the "loser" $p_ReturnVal[0] -= 1 ;Decrement counter Else _ArrayDelete($p_ReturnVal, 2) ;Delete the failed challenger $p_ReturnVal[0] -= 1 EndIf Case BitAND($i_State, 2) And Not BitAND($i_StateLongest, 2) ;If the new one's visible and the old one isn't _ArrayDelete($p_ReturnVal, 1) ;Delete the old one $p_ReturnVal[0] -= 1 ;Decrement counter Case Else ;Neither window is visible, let's just keep the first one. _ArrayDelete($p_ReturnVal, 2) $p_ReturnVal[0] -= 1 EndSelect Until $p_ReturnVal[0] = 1 EndIf Return $p_ReturnVal ElseIf $p_ReturnVal[0] = 1 Then Return $p_ReturnVal ;Only 1 window. Else Return 0 ;Window not found. EndIf EndFunc ;==>_ProcessGetWindow Func WaitForWindowState($hwndCallersWindow, $aCallersExpectedWindowState, $sCallersTotalWaitSeconds, $sCallersWaitChecks) $iTotalWaitMilSec = $sCallersTotalWaitSeconds * 1000 $iSleepMilSec = $iTotalWaitMilSec / $sCallersWaitChecks ; Get states to log $sExpectedStates = "" For $i = 0 To UBound($aCallersExpectedWindowState) - 1 Switch $aCallersExpectedWindowState[$i] Case 1 $sExpectedStates = $sExpectedStates & "Exists " Case 2 $sExpectedStates = $sExpectedStates & "Visible " Case 4 $sExpectedStates = $sExpectedStates & "Enabled " Case 8 $sExpectedStates = $sExpectedStates & "Active " Case 16 $sExpectedStates = $sExpectedStates & "Minimized " Case 32 $sExpectedStates = $sExpectedStates & "Maximized " Case Else ;If $lgbPerformLog Then Call("SetLogAndActOnState", 0, 2, "WaitForWindowState()", "Callers Win State=[" & $aCallersExpectedWindowState[$i] & "], but values must be in (1,2,4,8,16,32).", False, False) Return False EndSwitch Next $sExpectedStates = StringStripWS($sExpectedStates, 7) ; Strip double spaces, trailing, and leading For $i = 0 To $sCallersWaitChecks $iWinState = WinGetState($hwndCallersWindow) $bExpectedState = True For $iCurrentCheck = 0 To UBound($aCallersExpectedWindowState) - 1 If Not BitAND($iWinState, $aCallersExpectedWindowState[$iCurrentCheck]) Then $bExpectedState = False ExitLoop EndIf Next If $bExpectedState Then ; Log State is as expected ;If $lgbPerformLog Then Call("SetLogAndActOnState", 2, 2, "WaitForWindowState()", "Window State=[" & $iWinState & "] matches callers expected window state[s]=[" & $sExpectedStates & "].", False, False) Return True EndIf Sleep($iSleepMilSec) Next ; Log State did not match expected ;Call("SetLogAndActOnState", 0, 2, "WaitForWindowState()", "Window State=[" & $iWinState & "] did NOT match callers expected window state[s]=[" & $sExpectedStates & "] within expected seconds=[" & $sCallersTotalWaitSeconds & "]", False, False) Return False EndFunc ;==>WaitForWindowState Edited December 20, 2012 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
rick00 Posted December 20, 2012 Author Share Posted December 20, 2012 (edited) Have you not tried control* functions? why use mouseclick? Because 'Next' button does not have any unique controlID. Below is the window info: Title: Recuva Class: WindowsForms10.window.8.app.0.33c0d9d Position: 350, 51 Size: 736, 459 Style: 0x16CA0000 ExStyle: 0x00050100 Handle: 0x002C064E >>>> Control <<<< Class: Internet Explorer_Server Instance: 1 ClassnameNN: Internet Explorer_Server1 Name: Advanced (Class): [CLASS:Internet Explorer_Server; INSTANCE:1] ID: Text: Position: 0, 0 Size: 730, 430 ControlClick Coords: 668, 404 Style: 0x56000000 ExStyle: 0x00000000 Handle: 0x00200272 >>>> Mouse <<<< Position: 1021, 481 Cursor ID: 0 Color: 0xF5F5F5 >>>> StatusBar <<<< >>>> ToolsBar <<<< >>>> Visible Text <<<< >>>> Hidden Text <<<< Loading setup data Edited December 20, 2012 by rick00 Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted December 20, 2012 Moderators Share Posted December 20, 2012 Re-distributing Recuva without Piriform's consent is again their EULA/TOS.As is repackaging it, otherwise I would give my usual spiel about taking the time to properly package the features you want in an MSI I would not install from the executable you post, personally (I'm one of the less than smart people Jos alluded to ). The executable reaches out to the internet and pulls down an executable (Northstar.exe) along with a dll file, and throws them into the temp directory. Everything I see regarding Northstar.exe looks to be malicious. I would highly suggest you get each of the applications you want to install from the vendor's website (as I did in post #4 to test the silent switches). This executable you have in your OP was created by Solimba Aplicaciones S.L., so my virus meter is well into the red Xandy 1 "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
rick00 Posted December 20, 2012 Author Share Posted December 20, 2012 (edited) As is repackaging it, otherwise I would give my usual spiel about taking the time to properly package the features you want in an MSI I would not install from the executable you post, personally (I'm one of the less than smart people Jos alluded to ). The executable reaches out to the internet and pulls down an executable (Northstar.exe) along with a dll file, and throws them into the temp directory. Everything I see regarding Northstar.exe looks to be malicious. I would highly suggest you get each of the applications you want to install from the vendor's website (as I did in post #4 to test the silent switches). This executable you have in your OP was created by Solimba Aplicaciones S.L., so my virus meter is well into the red NO, no virus at all, it just downloads some Adware or ads as you can see while running the installer. You can see Solimba Aplicaciones S.L. is an affiliate network. I can PM you VPS running Autoit so that you can confirm. Let me know. Edited December 20, 2012 by rick00 Link to comment Share on other sites More sharing options...
rick00 Posted December 20, 2012 Author Share Posted December 20, 2012 I've posted this in the past...add your installer location into the "yourinstaller"...it will loop through all active child windows, as they come appear, and then loop through for certain button text, and click them in that order (first applicable)...makes things like installers a piece of cake: expandcollapse popup#include <Array.au3> Dim $aButtonclickOrder[8] = ["Continue", "&Continue", "OK", "&OK", "Yes", "&Yes", "Install", "&Install"] Dim $aExpectedWindowState[3] = [1, 2, 4] ; Window exists, visible, and enabled $PID = Run("yourinstaller") While ProcessExists($PID) $bButtonclicked = False $aHWnds = _ProcessGetWindow($PID) If IsArray($aHWnds) Then For $i = 0 To UBound($aHWnds) - 1 If WaitForWindowState($aHWnds[$i], $aExpectedWindowState, 0, 0) Then ; window exists, is visible, and is enabled. For $j = 0 To UBound($aButtonclickOrder) - 1 $hButton = ControlGetHandle($aHWnds[$i], "", "[CLASS:Button; TEXT:" & $aButtonclickOrder[$j] & "]" ) If IsHWnd($hButton) Then ; button exists If ControlCommand($aHWnds[$i], "", $hButton, "IsEnabled", "") Then ControlFocus($aHWnds[$i], "", $hButton) ControlClick($aHWnds[$i], "", $hButton) Sleep(2000) $bButtonclicked = True ExitLoop EndIf EndIf Next If $bButtonclicked Then ExitLoop EndIf Next EndIf Sleep(1000) WEnd Func _ProcessGetWindow($p_PID, $p_ReturnBestGuess = False) ; #FUNCTION# ============================================================================================================================ ; Name...........: _ProcessGetWindow ; ; Description ...: Returns an array of HWNDs containing all windows owned by the process $p_PID, or optionally a single "best guess." ; ; Syntax.........: _ProcessGetWindow( $p_PID [, $p_ReturnBestGuess = False ]) ; ; Parameters ....: $p_PID - The PID of the process you want the Window for. ; $p_ReturnBestGuess - If True, function will return only 1 reult on a best-guess basis. ; The "Best Guess" is the VISIBLE window owned by $p_PID with the longest title. ; ; Return values .: Success - Return $_array containing HWND info. ; $_array[0] = Number of results ; $_array[n] = HWND of Window n ; ; Failure - Returns 0 ; ; Error - Returns -1 and sets @error ; 1 - Requires a non-zero number. ; 2 - Process does not exist ; 3 - WinList() Error ; ; Author ........: Andrew Bobulsky, contact: RulerOf <at that public email service provided by Google>. ; Remarks .......: The reverse of WinGetProcess() ; ======================================================================================================================================= Local $p_ReturnVal[1] = [0] Local $p_WinList = WinList() If @error Then ;Some Error handling SetError(3) Return -1 EndIf If $p_PID = 0 Then ;Some Error handling SetError(1) Return -1 EndIf If ProcessExists($p_PID) = 0 Then ;Some Error handling ConsoleWrite("_ProcessGetWindow: Process " & $p_PID & " doesn't exist!" & @CRLF) SetError(2) Return -1 EndIf For $i = 1 To $p_WinList[0][0] Step 1 Local $w_PID = WinGetProcess($p_WinList[$i][1]) ; ConsoleWrite("Processing Window: " & Chr(34) & $p_WinList[$i][0] & Chr(34) & @CRLF & " with HWND: " & $p_WinList[$i][1] & @CRLF & " and PID: " & $w_PID & @CRLF) If $w_PID = $p_PID Then ;ConsoleWrite("Match: HWND " & $p_WinList[$i][1] & @CRLF) $p_ReturnVal[0] += 1 _ArrayAdd($p_ReturnVal, $p_WinList[$i][1]) EndIf Next If $p_ReturnVal[0] > 1 Then If $p_ReturnBestGuess Then Do Local $i_State = WinGetState($p_ReturnVal[2]) Local $i_StateLongest = WinGetState($p_ReturnVal[1]) Select Case BitAND($i_State, 2) And BitAND($i_StateLongest, 2) ;If they're both visible If StringLen(WinGetTitle($p_ReturnVal[2])) > StringLen(WinGetTitle($p_ReturnVal[1])) Then ;And the new one has a longer title _ArrayDelete($p_ReturnVal, 1) ;Delete the "loser" $p_ReturnVal[0] -= 1 ;Decrement counter Else _ArrayDelete($p_ReturnVal, 2) ;Delete the failed challenger $p_ReturnVal[0] -= 1 EndIf Case BitAND($i_State, 2) And Not BitAND($i_StateLongest, 2) ;If the new one's visible and the old one isn't _ArrayDelete($p_ReturnVal, 1) ;Delete the old one $p_ReturnVal[0] -= 1 ;Decrement counter Case Else ;Neither window is visible, let's just keep the first one. _ArrayDelete($p_ReturnVal, 2) $p_ReturnVal[0] -= 1 EndSelect Until $p_ReturnVal[0] = 1 EndIf Return $p_ReturnVal ElseIf $p_ReturnVal[0] = 1 Then Return $p_ReturnVal ;Only 1 window. Else Return 0 ;Window not found. EndIf EndFunc ;==>_ProcessGetWindow Func WaitForWindowState($hwndCallersWindow, $aCallersExpectedWindowState, $sCallersTotalWaitSeconds, $sCallersWaitChecks) $iTotalWaitMilSec = $sCallersTotalWaitSeconds * 1000 $iSleepMilSec = $iTotalWaitMilSec / $sCallersWaitChecks ; Get states to log $sExpectedStates = "" For $i = 0 To UBound($aCallersExpectedWindowState) - 1 Switch $aCallersExpectedWindowState[$i] Case 1 $sExpectedStates = $sExpectedStates & "Exists " Case 2 $sExpectedStates = $sExpectedStates & "Visible " Case 4 $sExpectedStates = $sExpectedStates & "Enabled " Case 8 $sExpectedStates = $sExpectedStates & "Active " Case 16 $sExpectedStates = $sExpectedStates & "Minimized " Case 32 $sExpectedStates = $sExpectedStates & "Maximized " Case Else ;If $lgbPerformLog Then Call("SetLogAndActOnState", 0, 2, "WaitForWindowState()", "Callers Win State=[" & $aCallersExpectedWindowState[$i] & "], but values must be in (1,2,4,8,16,32).", False, False) Return False EndSwitch Next $sExpectedStates = StringStripWS($sExpectedStates, 7) ; Strip double spaces, trailing, and leading For $i = 0 To $sCallersWaitChecks $iWinState = WinGetState($hwndCallersWindow) $bExpectedState = True For $iCurrentCheck = 0 To UBound($aCallersExpectedWindowState) - 1 If Not BitAND($iWinState, $aCallersExpectedWindowState[$iCurrentCheck]) Then $bExpectedState = False ExitLoop EndIf Next If $bExpectedState Then ; Log State is as expected ;If $lgbPerformLog Then Call("SetLogAndActOnState", 2, 2, "WaitForWindowState()", "Window State=[" & $iWinState & "] matches callers expected window state[s]=[" & $sExpectedStates & "].", False, False) Return True EndIf Sleep($iSleepMilSec) Next ; Log State did not match expected ;Call("SetLogAndActOnState", 0, 2, "WaitForWindowState()", "Window State=[" & $iWinState & "] did NOT match callers expected window state[s]=[" & $sExpectedStates & "] within expected seconds=[" & $sCallersTotalWaitSeconds & "]", False, False) Return False EndFunc ;==>WaitForWindowState Not working. : ( Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted December 21, 2012 Moderators Share Posted December 21, 2012 NO, no virus at all, it just downloads some Adware or ads as you can see while running the installer. You can see Solimba Aplicaciones S.L. is an affiliate network. I can PM you VPS running Autoit so that you can confirm. Let me know.Ok, I've only been repackaging software for a dozen years, what do I know Good luck. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
jdelaney Posted December 21, 2012 Share Posted December 21, 2012 'not working' isn't very informative IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. 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