2016-08-05 13 views
1

Я пытаюсь подключиться к уже существующему окну Word.GetObject внутри VB6 не работает, когда UAC повернут на значение по умолчанию

Set WordApp = GetObject ("Word.Application")

Если UAC выключен это работает отлично. Если UAC повернут на «По умолчанию», я получаю сообщение об ошибке. «Компонент ActiveX не может создать объект».

Как только я заметил в своих экспериментах, что если Word был запущен с «Запуск от имени администратора», все работает нормально. К сожалению, ящик/логин, с которым я должен работать, вероятно, не будут иметь права администратора.

ответ

0

Это звучит как разработчики выпускают воспитывались на спине в 2006

Вы хотите, чтобы оба процесса имеют один и тот же уровень целостности. Это звучит так, как будто вы тестируете в среде IDE с повышенным уровнем, что обычно должно быть так. Если это так, то процесс, который вы хотите автоматизировать, также должен быть повышен.

Это не должно быть проблемой при нормальной работе, поскольку оба процесса обычно выполняются на одном уровне, стандартный пользователь. Если вам нужно что-то другое, то вам нужно манифест с uiAccess = True, и ваш код должен быть подписан и официально установлен.

См. Конфигурация привилегий пользовательского интерфейса (UIPI) и целостность в пределах Windows Integrity Mechanism Design.

Но automating Office has been deprecated for a very long time.

+0

Теперь я просматриваю документацию. В соответствии с инструментом проводника процесса я могу ясно видеть, что мое приложение работает с «целостностью», равной высокой, и когда я запускаю экземпляр слова (вручную) для подключения к нему, он имеет целостность Medium. Проблема все еще существует даже вне IDE, по-видимому, потому, что уровни целостности не совпадают? – Eric

 Смежные вопросы

  • Нет связанных вопросов^_^