Есть своего рода решение, но оно не очень красивое.Основная проблема заключается в том, что Word регистрируется в ROT (таблица запущенных объектов), и тогда другие приложения могут легко получить доступ к экземпляру Word, зарегистрированному в ROT (именно это делает, например, функция VB GetObject).
Итак, в вашем приложении вам в основном нужно сделать 2 вещи
- Попробуйте GetObject (то есть запросите ROT для работающего экземпляра)
- Если он у вас есть, вы знаете, что ДОЛЖНЫ создать новый экземпляр Word для использования ( CreateObject в VB, процесс отличается от других языков).
- Если вы НЕ делаетеполучить один, вы должны создать 2 новых экземпляра Word.Первый автоматически зарегистрируется в ROT, второй - нет.Используйте второй экземпляр и совсем первый экземпляр.
Даже если вы прервете этот первый экземпляр, он не будет «задним числом» регистрироваться в ROT, а другие приложения, как правило, не будут возражать против ссылки.чтобы использовать его, они автоматически создадут новый экземпляр, который, так как никакой другой экземпляр больше не зарегистрирован в ROT, затем будет зарегистрирован.
Тем не менее, он все еще возможен для других приложений, чтобы получить на вашем экземпляре Word, так что этот метод не пуленепробиваемый.Как?Потому что Word ТАКЖЕ регистрирует каждый загруженный ДОКУМЕНТ в ROT.Но это довольно редко используемая функция.