Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Открытие документа в новом окне Добавлено: 17.08.10 17:13  

Автор вопроса:  VB_GKY
Подскажите, как открыть новый экземпляр программы, если она зарегистрирована, как "существующая в единственном экземпляре"?
Имеется некая программа, поддерживающая автоматизацию. Нужно из кода создать объект Application, открыть документ в НОВОМ окне и в итоге, получить для управления объект Document. Беда в том, что любая попытка использовать CreateObject или GetObject приводит к получению ссылки на имеющийся экземпляр приложения и открытию в нем документа без создания нового экземпляра. Если запускать руками, то без проблем - открываем приложение, потом в нем новый документ - и таких хоть десяток. Ни какие объявления типа "Dim App as New ..." не помогают. Что делать?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #1
Добавлено: 17.08.10 23:56
описать язык, задачу, дать бажный код

Ответить

Номер ответа: 2
Автор ответа:
 VB_GKY



Вопросов: 2
Ответов: 4
 Профиль | | #2 Добавлено: 18.08.10 10:37
Пардон, еще раз.

Язык - не принципиально, но лучше один из: VBScript, VBA, VB6, VBNet. Главное, понять как решить проблему. Все равно ведь, скорее всего, потребуется использовать либо WinAPI, либо что-то еще. Писать код не вижу смысла, он элементарен, но если от этого станет понятнее...
  1.  
  2. Dim App as Object
  3. Dim Doc as Object
  4. Set App = CreateObject("QlikTech.QlikView")
  5. Set Doc = MyApp.OpenDoc ("D:\test.qvw")



Все работает, но если приложение "QlikView" уже запущено, то выполнение этого кода приведет к получению ссылки на существующий экземпляр "QlikTech.QlikView" и открытию документа в нем, а нужно - создать новый экземпляр.
То что используется приложение "QlikTech.QlikView" - не принципиально, та же ерунда может быть и с другими приложениями. Проблема явно типовая, потому и вопрос, как ее решать?
Попытка запустить приложение с каким-то пустым известным документом, а потом получить на него ссылку (как это рекомендуется делать для MS Office), приводит к возникновению ошибки.

  1.  
  2. Dim Doc as Object
  3. 'запускаем заведомо новый экземпляр приложения и открываем в нем известный документ
  4. Shell "C:\Program Files\QlikView\qv.exe test.qvw"
  5. 'пытаемся получить ссылку на открытый документ
  6. Set Doc = GetObject("test")



Кроме того, как известно, если написать
  1. Set App = GetObject("QlikTech.QlikView")
, то если уже открыто несколько экземпляров приложения, будет получена ссылка на первый открытый. Вот если бы на последний...

Ответить

Номер ответа: 3
Автор ответа:
 Eugy



Вопросов: 0
Ответов: 73
 Профиль | | #3 Добавлено: 21.08.10 01:43
Это шутка, да?
Set App = GetObject(...
При присвоении переменной App ссылки на объект вызывается деструктор предыдущего объекта сохраненного в App.

Ответить

Номер ответа: 4
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #4
Добавлено: 24.08.10 20:28
visualcomponents viewer или както так. встрооено в вб!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам