Jump to content

Newbie - WinWaitActive


gfcaim
 Share

Recommended Posts

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]
Link to comment
Share on other sites

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 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: 22/04/2018

Link to comment
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]
Link to comment
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]
Link to comment
Share on other sites

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]
Link to comment
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 2022-02-19 - Version 1.6.1.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 (NEW 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

 

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...