Word automation : how to bring the document to the front ?

3 views (last 30 days)
With the following lines I can open a Word document in automation mode:
hComServer = actxserver('Word.Application');
hComServer.Visible = 1;
hComServer.Documents.Open('c:\foo.doc');
but I can't figure out how to bring the window to the front ....

Accepted Answer

p fontaine
p fontaine on 18 May 2012
It seems that Windows prevents from such a focus stealing by default so as to defeat annoying adware ...
A solution can be to set the windows registry key
HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout
to a decimal value of 0
then calling
hComServer.Activate
now activates and brings the window to the front but sometimes several calls seem to be necessary
(NB : reboot required after registry modification)

More Answers (1)

Jan
Jan on 17 May 2012
Does this work:
hComServer.Visible = 1
or
hComServer.Activate
?
[EDITED]: Perhaps:
oDoc = hComServer.Documents.Open('c:\foo.doc');
oDoc.Activate;
Or:
hComServer.ActiveWindow.Activate();
You can use "methods(hComServer)" to inspect the possibilities.
  2 Comments
p fontaine
p fontaine on 18 May 2012
unfortunately no ...
hComServer.Visible = 1 makes the Word Window visible
hComServer.Activate activates the window
but none of this commands bring the Word window to the front ......
Jan
Jan on 18 May 2012
Is there a command to get the hWnd of the Word Window? I do not use the Microsoft Office on my Matlab computer, because I need it for serious work, such that I cannot test this. ;-)

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!