gfcaim Posted November 7, 2011 Posted November 7, 2011 (edited) Hi - As a keen and learning newbie I am obviously using the WinWaitActive wrong and struggling to see why! My code (snippet below) sends an email that is generated from another program. It tries to activate the email window. If successful then calls a function to send it, if unsuccessful (i.e. zero returned) then assume the email has gone and exit the script. Problem is that WinWaitActive is returning the window handle even though the email is sent and cannot be activated! As mentioned - newbie - can someone put me right please! [font=courier new, courier, monospace] Do WinActivate($EmailTitle) $R=WinWaitActive($EmailTitle,"",3) MsgBox(0,"Test",$R);<<<<<<<<<Debug If $R=0 then $EGone=true Else If $TryCount<5 then MsgBox(0,"Test",$TryCount);<<<<<<<<<Debug call ("SendIt") $TryCount+=1 EndIf EndIf Until ($EGone=True) Or ($TryCount=5)[/font] Edited November 7, 2011 by gfcaim [font="Comic Sans MS"]"I'm not usually a praying man, but if you are up there, please save me Superman!" (Homer J. Simpson)[/font]
guinness Posted November 7, 2011 Posted November 7, 2011 What is $EmailTitle? String? Handle? String that is using the CLASS? What email client are you using? 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
gfcaim Posted November 7, 2011 Author Posted November 7, 2011 $EmailTitle is a string (= "KEDBR") that WinActivate is looking for. Client = Outlook 2007 [font="Comic Sans MS"]"I'm not usually a praying man, but if you are up there, please save me Superman!" (Homer J. Simpson)[/font]
sleepydvdr Posted November 7, 2011 Posted November 7, 2011 Why don't you just do something like this: If WinExists($EmailTitle) Then WinActivate($EmailTitle) WinWaitActive($EmailTitle, "", 3) Call("SendIt") $EGone = True EndIf If Outlook is not open, then this chunk of code won't run. No need to worry about return codes. #include <ByteMe.au3>
gfcaim Posted November 7, 2011 Author Posted November 7, 2011 Why don't you just do something like this: If WinExists($EmailTitle) Then WinActivate($EmailTitle) WinWaitActive($EmailTitle, "", 3) Call("SendIt") $EGone = True EndIf If Outlook is not open, then this chunk of code won't run. No need to worry about return codes. Aha! Told you I was a noob! Exctly what I need, thanks sleepydvdr [font="Comic Sans MS"]"I'm not usually a praying man, but if you are up there, please save me Superman!" (Homer J. Simpson)[/font]
gfcaim Posted November 7, 2011 Author Posted November 7, 2011 (edited) Hang on - still not getting something here. I altered your suggestion slightly (because it would have assumed that the email was sent ok) so the theory of the loop is that at second pass if the email is gine then the window no longer exists and it would end normally. However, it is just getting stuck in the loop as before, even though the window doesn't exist. (I'm trying to learn, honest!) Do if WinExists($EmailTitle) Then WinActivate($EmailTitle) WinWaitActive($EmailTitle, "", 3) Call("SendIt") Else $EGone = True EndIf until ($EGone=True) Edited November 7, 2011 by gfcaim [font="Comic Sans MS"]"I'm not usually a praying man, but if you are up there, please save me Superman!" (Homer J. Simpson)[/font]
water Posted November 7, 2011 Posted November 7, 2011 There is an Outlook UDF available (please check my signature) which results in more reliable code The email is generated by which program? You want to be sure the mail is sent and then proceed with your script? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
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