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

3 visualizaciones (últimos 30 días)
p fontaine
p fontaine el 17 de Mayo de 2012
Editada: Walter Roberson el 29 de Sept. de 2016
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 ....

Respuesta aceptada

p fontaine
p fontaine el 18 de Mayo de 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)

Más respuestas (1)

Jan
Jan el 17 de Mayo de 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 comentarios
p fontaine
p fontaine el 18 de Mayo de 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 el 18 de Mayo de 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. ;-)

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by