Sign in to follow this  
Followers 0
gfcaim

Newbie - WinWaitActive

7 posts in this topic

#1 ·  Posted (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 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]

Share this post


Link to post
Share on other sites



What is $EmailTitle? String? Handle? String that is using the CLASS? What email client are you using?


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

$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]

Share this post


Link to post
Share on other sites

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>

Share this post


Link to post
Share on other sites

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]

Share this post


Link to post
Share on other sites

#6 ·  Posted (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 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]

Share this post


Link to post
Share on other sites

There is an Outlook UDF available (please check my signature) which results in more reliable code :D

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 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0