hunsabre Posted February 25, 2011 Share Posted February 25, 2011 I need a resource friendly solution to wait for a window poping up from one of two applications. I don't know all the possible titles. I need to interpret the window from its title and its text and takes further actions upon it. I can not explicitly wait for a specific window with specific title. May some regexp should be used? Link to comment Share on other sites More sharing options...
guinness Posted February 25, 2011 Share Posted February 25, 2011 Have a look at AU3Info to determine the Windows details/info and then look in the Help File for WinWait() or WinWaitActive() 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...
Carlo84 Posted February 25, 2011 Share Posted February 25, 2011 Also check WinList() and WinGetProcess() :-) _SplashProgressImage | _Regionselector | _IsPressed360 | _UserAccountContol_SetLevel | _ListSubFolders Link to comment Share on other sites More sharing options...
hunsabre Posted February 25, 2011 Author Share Posted February 25, 2011 No. in runtime, I have no chance to check AU3Info. The script have to pause and have to analyze the next window content. Depend on the content makes several actions. i dont want to use a winlist comparisation in a while....end cycle to wait for the changed winlist status (new window appeared), because in consumes much more resource. Link to comment Share on other sites More sharing options...
hunsabre Posted February 25, 2011 Author Share Posted February 25, 2011 e.g. $listofwindows[]=winlist() winwait("[PREGEXP: # not in the $listofwindows]") I can not code it to pregexp:( any help Link to comment Share on other sites More sharing options...
hunsabre Posted February 26, 2011 Author Share Posted February 26, 2011 This one can manage the proble, but I not prefer such an infinite kidda loops: $var = WinList() $win1=$var[0][0] while $var[0][0]=$win1 $var = WinList() sleep(500) WEnd $last_tiltle=WinGetTitle("[ACTIVE]") msgbox(0, "Window opened", $last_tiltle) the sleep(500) can reduce the near 50% processor load to ~1% during the running while...wend loop. the 500 msec still can be considered a real time apps. Link to comment Share on other sites More sharing options...
Carlo84 Posted February 28, 2011 Share Posted February 28, 2011 your posts are rather confusing me... but this waits till a visible window of a specified process-name exists and then returns the winHandle you should use in your scripts. $test = waitforWin('notepad.exe') MsgBox(64, 'Window found', 'wHnd = ' & $test & @LF & 'wTitle = ' & WinGetTitle($test)) Func waitforWin($processName) Local $pid, $lWin, $i While 1 $pid = ProcessExists($processName) If $pid <> 0 Then $lWin = WinList() For $i = 1 To $lWin[0][0] ; If Process of the window is same as the process your looking for AND window is vicible then return winHandle If WinGetProcess($lWin[$i][1]) = $pid And BitAND(WinGetState($lWin[$i][1]), 2) Then Return $lWin[$i][1] Next EndIf Sleep(50) WEnd EndFunc ;==>waitforWin _SplashProgressImage | _Regionselector | _IsPressed360 | _UserAccountContol_SetLevel | _ListSubFolders 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