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

3 次查看(过去 30 天)
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 ....

采纳的回答

p fontaine
p fontaine 2012-5-18
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)

更多回答(1 个)

Jan
Jan 2012-5-17
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 个评论
p fontaine
p fontaine 2012-5-18
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 2012-5-18
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. ;-)

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by