С одной стороны, я думаю, вам нужно создать экземпляр Word .visible
, прежде чем вы сможете выполнить .activate
, а с другой стороны, включение Do c не приведет к перемещению окна вперед. Используйте WinActivate
после остальных. Вот как все это будет выглядеть:
^a::
wrdApp := ComObjActive("Word.Application") ; Activate MS Word object
wrdApp.Visible := true
wrdApp.Documents("DocumentA").Activate
WinActivate DocumentA
return
Но, что важно, обратите внимание: DocumentA должен существовать и быть открытым , но не активным , когда вы вводите команду. Может быть, попробуем проверить это состояние. Но почему вы все равно не используете WinActivate
? Со всеми параметрами WinTitle
и et c., Это кажется наиболее пуленепробиваемым.
EDIT : Поскольку OP сказал, что это иногда работает, я завершаю свое предложение о порядок методов не критичен, скорее всего, do c уже является активным, поэтому команда не выполняется.
Hth,