televisi

Automating Outlook pops-up

12 posts in this topic

Hi,

I'm trying to automate the Ms outlook pop-up, when an external application try to send an email using Outlook.

This is what the pop-up window looks like:

Outlook.png.d1667a673cd9d948fe27a487f74f

The following is the Window Info:

>>>> Window <<<<
Title:  Microsoft Office Outlook
Class:  #32770
Position:   766, 393
Size:   359, 213
Style:  0x94C800CC
ExStyle:    0x00010101
Handle: 0x00000000000405EA

>>>> Control <<<<
Class:  Button
Instance:   4
ClassnameNN:    Button4
Name:   
Advanced (Class):   [CLASS:Button; INSTANCE:4]
ID: 4774
Text:   Allow
Position:   54, 151
Size:   75, 23
ControlClick Coords:    32, 14
Style:  0x50010000
ExStyle:    0x00000004
Handle: 0x000000000006058A

>>>> Mouse <<<<
Position:   855, 583
Cursor ID:  0
Color:  0x000000

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
&Deny
&Help
A program is trying to send an e-mail message on your behalf. If this is unexpected, click Deny and verify your antivirus software is up-to-date.

For more information about e-mail safety and how you might be able to avoid getting this warning, click Help.
Allow


>>>> Hidden Text <<<<
DAL=on
&Allow access for

 

The following is my code:

#RequireAdmin
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>

Local $hWnd = WinWait("Microsoft Office Outlook", "",5)
Local $hCtrl = ControlGetHandle($hWnd,"","[ClassNN:Button4]")
;Activate the Window
WinActivate($hWnd)

;Click "Allow button"
Local $hResult = ControlClick($hWnd,"Allow",$hCtrl,"primary",2)
MsgBox($MB_SYSTEMMODAL, "", "hWnd result:" & $hCtrl & " - result: " & $hResult)

 

And the following is the result:

572059a5cbc60_OutlookResult.png.3d0f80a4

As you can see in the MsgBox; it found the "Allow" button and the ControlClick resulted with 1; but then nothing happen.

Does anyone know the resolution for this?

O/S: Windows 7x64

 

Thanks

Share this post


Link to post
Share on other sites



For your info, I'm using AutoIt v.3.3.14.2

Share this post


Link to post
Share on other sites

I think there are outlook settings that doesnt show those popups when you do .Send action.
 If you are interested i can look it up. I have implemented it in my Outlook and those popups dont show.

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

You can create an Outlook add-in which start the Autoit script and then sign the add - in. That way there will be no security risk and no popup.

Share this post


Link to post
Share on other sites

The scenario is coming from MYOB application, on which the finance team needs to send payslips to 500+ email recipients; and I noticed they need to have someone manually clicking the "allow" button (it's so yesterday I think...)

Interesting enough, I tried to follow the  https://support.office.com/en-us/article/I-get-warnings-about-a-program-accessing-e-mail-address-information-or-sending-e-mail-on-my-behalf-df007135-c632-4ae4-8577-dd4ba26750a2?CorrelationId=ab7e60d4-de43-48f4-ba9a-7a23786f755f&ui=en-US&rs=en-US&ad=US  by selecting "Never warn me about suspicious activity (not recommended)"; the problem persist.

I tried this on office 2007 and 2013 too...very strange...

 

11 hours ago, Juvigy said:

You can create an Outlook add-in which start the Autoit script and then sign the add - in. That way there will be no security risk and no popup.

Juvigy, this is interesting method, care to provide an extra insight on this one?

 

Thanks all!

Share this post


Link to post
Share on other sites

Hi,

I finally managed to work-around it by using combination of "Send" keypress.

The following is the code that might help anyone in the future

Global $Title = "Outlook Auto Keypress for MYOB v.1.0"

#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <Misc.au3>

;File properties
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("TrayAutoPause", 1)

;Ensure there is only single instance
If _Singleton($Title, 1) = 0 Then
    MsgBox($MB_SYSTEMMODAL, "Warning", "An occurrence of " & $Title & " is already running! Closing this now")
    Exit
EndIf

;infinite loop
While True

;Wait 5 sec for the window
Local $hWnd = WinWait("Microsoft Office Outlook", "A program is trying to send an e-mail message on your behalf. If this is unexpected, click Deny and verify your antivirus software is up-to-date.")
;Wait 5 sec for the Allow button to be enabled
sleep(5000)

;Activate the Window
WinActivate($hWnd)

If WinActive($hWnd) Then   
   ;ALT+A
   Send("!a")
   ;TAB
   Send("{TAB}")
   ;Space
   Send("{SPACE}")
EndIf

WEnd

 

Now the next question is, how can I rename the posting, to add [SOLVED] in front of the post subject?

Share this post


Link to post
Share on other sites
4 minutes ago, televisi said:

Now the next question is, how can I rename the posting, to add [SOLVED] in front of the post subject?

hi, try edit the first post

Share this post


Link to post
Share on other sites

If you can't edit your first post then you haven't reached a needed post count limit.


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