Disable Scheduled Send Receive via VBA

E

Ed White

I have a program that uses SendKeys to start up a program. It takes just a
few seconds for this. However, I usually have Outlook running in the
background, and if a message comes in and an Alert Window pops up during the
SendKeys, it messes up the SendKeys. So, is there a way through VBA (or
VB.Net) to send a command to Outlook to turn off or on the auto send-receive
(i.e. to do what the following keystrokes in Outlook 2007 do:
Tools->Send/Receive->Send/Receive Settings->Disable Scheduled Send/Receive)?
 
C

Colbert Zhou [MSFT]

Hello Ed,

I am not aware of a direct property can control this behavior, but since
the function is exposed in the command bar, we can use the commandbutton's
execute function to achieve the goal. Codes in VBA are,

Sub Test()
Application.ActiveExplorer().CommandBars("Standard").Controls("Send/Re&ceive
").Controls("Send/Recei&ve Settings").Controls("&Disable Scheduled
Send/Receive").Execute
End Sub

But may I have some suggestions as follows?

I think there are many applications running on the target machine. Maybe at
this time, Outlook prompts the Alert Window for new incoming messages. But
the next time, it could be other applications that break the z-order of
desktop windows. So the SendKeys will not work again. We can disable the
Outlook's Send/Receive way using the above way, but for other applications,
it is all out of our control.

So my suggestion is we'd better reconsider the SendKeys design. As far as I
know we have many ways to start a program, either via .NET or directly
calling Windows API. Could you please describe more detailed information on
your scenario, so that I can try to help on this. If it is off topic in
this VBA queue, I can also find some appropriate place to redirect.


Best regards,
Colbert Zhou (colbertz @online.microsoft.com, remove 'online.')
Microsoft Online Community Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://support.microsoft.com/select/default.aspx?target=assistance&ln=en-us.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights
 
S

Steve Rindsberg

Ed White said:
I have a program that uses SendKeys to start up a program. It takes just a
few seconds for this. However, I usually have Outlook running in the
background, and if a message comes in and an Alert Window pops up during the
SendKeys, it messes up the SendKeys. So, is there a way through VBA (or
VB.Net) to send a command to Outlook to turn off or on the auto send-receive
(i.e. to do what the following keystrokes in Outlook 2007 do:
Tools->Send/Receive->Send/Receive Settings->Disable Scheduled Send/Receive)?

Can you use Shell or the ShellExecute API call to start the program instead of
SendKeys? That would seem to be a much simpler and by far more reliable
solution.
 
E

Ed White

Thanks for the response. Your command for Outlook works. Since the command
is a toggle, and I can't always be sure if the command executed properly (or
where I'm starting from), is there a way to read the status of Outlook's auto
Send/Receive (i.e. can I read whether the auto Send/Receive is checked or
not?)

Regarding using SendKeys, , it sure would be nice to find a way around that,
as you are correct that a number of factors that potentially interfere with
it (Outlook being just one of them). The program I'm sending SendKeys to is
from Zacks , called Research Wizard (RW). I use a Shell command to start up
the program, but once it is started, I need to send it a few keystrokes to
start an RW macro would downloads data for me. The commands are Script-->Run
Script--><filename>, so the keystrokes I send with SendKeys are more-or-less
S R <filename>. Since RW is a 3rd party product, I don't have access to its
inner programming or objects, and so I'm not familiar with how I could send
it commands other than through SendKeys. If there is a way to do this, I'd
sure like to know.
 
C

Colbert Zhou [MSFT]

Hello Ed,

Thanks for your clarification. If RW does not expose the automation API, we
have to do this by using SendKeys. So I would like to suggest to conact
their support to make a confirmation whether thier application has the
automation API.

Regarding to determine whether the button is already checked, we can read
the button's State property. If it is unchecked, the value will be
msoButtonUp, otherwise msoButtonDown.

Please try it in your side and let me know if you have any future questions
or concerns. Have a nice day!


Best regards,
Colbert Zhou (colbertz @online.microsoft.com, remove 'online.')
Microsoft Online Community Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed)
 
B

Beijerinc

I might be posting this in the wrong section, but I have a follow-up question
about the Auto Send / Receive.

There's a checkbox for "Send when connected" in Extra --> Settings -->
Emailsettings. I'd like to uncheck this checkbox in a macro, then let the
user compose an email, send x of those emails to x different people and then
check it again. Is there a way to do this? (I've been looking into the whole
Application.ActiveExplorer().CommandBars("Menu Bar").Controls("E&xtra")...
thing, but since the settings is a different window, I don't know where to go
from there. The macro actually stops if I open the Settings window, until I
close it manually.)

I'd like to see if the box is checked or not before I begin aswell, because
I want to run the macro without messing up the settings of Outlook for the
user.

Kind regards,
Rick Beijer

PS: Sorry if the Extra --> settings link isn't correct, my Outlook is not in
English.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top