Страница: 1 |
|
Вопрос: Открытие документа в новом окне
|
Добавлено: 17.08.10 17:13
|
|
Автор вопроса: VB_GKY
|
Подскажите, как открыть новый экземпляр программы, если она зарегистрирована, как "существующая в единственном экземпляре"?
Имеется некая программа, поддерживающая автоматизацию. Нужно из кода создать объект Application, открыть документ в НОВОМ окне и в итоге, получить для управления объект Document. Беда в том, что любая попытка использовать CreateObject или GetObject приводит к получению ссылки на имеющийся экземпляр приложения и открытию в нем документа без создания нового экземпляра. Если запускать руками, то без проблем - открываем приложение, потом в нем новый документ - и таких хоть десяток. Ни какие объявления типа "Dim App as New ..." не помогают. Что делать?
Ответить
|
Номер ответа: 2 Автор ответа: VB_GKY
Вопросов: 2 Ответов: 4
|
Профиль | | #2
|
Добавлено: 18.08.10 10:37
|
Пардон, еще раз.
Язык - не принципиально, но лучше один из: VBScript, VBA, VB6, VBNet. Главное, понять как решить проблему. Все равно ведь, скорее всего, потребуется использовать либо WinAPI, либо что-то еще. Писать код не вижу смысла, он элементарен, но если от этого станет понятнее...
-
- Dim App as Object
- Dim Doc as Object
- Set App = CreateObject("QlikTech.QlikView")
- Set Doc = MyApp.OpenDoc ("D:\test.qvw")
Все работает, но если приложение "QlikView" уже запущено, то выполнение этого кода приведет к получению ссылки на существующий экземпляр "QlikTech.QlikView" и открытию документа в нем, а нужно - создать новый экземпляр.
То что используется приложение "QlikTech.QlikView" - не принципиально, та же ерунда может быть и с другими приложениями. Проблема явно типовая, потому и вопрос, как ее решать?
Попытка запустить приложение с каким-то пустым известным документом, а потом получить на него ссылку (как это рекомендуется делать для MS Office), приводит к возникновению ошибки.
-
- Dim Doc as Object
- Shell "C:\Program Files\QlikView\qv.exe test.qvw"
- Set Doc = GetObject("test")
Кроме того, как известно, если написать - Set App = GetObject("QlikTech.QlikView")
, то если уже открыто несколько экземпляров приложения, будет получена ссылка на первый открытый. Вот если бы на последний...
Ответить
|
Страница: 1 |
Поиск по форуму