Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
Set ca = CreateObject("CATIA.Application")

Запускаю приложение, если оно не открыто
Если оно уже открыто - цепляется открытый экземпляр.
Надо - если есть открытый экземпляр приложения - запустить еще один, что бы работать в нем.
Проверить есть ли открытый экземпляр могу через Getobject.
А вот открыть повторно не соображу как....
9 ноя 21, 11:05    [22393504]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 69095
Serg197311
Set ca = CreateObject("CATIA.Application")


Запускаю приложение, если оно не открыто
Если оно уже открыто - цепляется открытый экземпляр.
Надо - если есть открытый экземпляр приложения - запустить еще один, что бы работать в нем.
Проверить есть ли открытый экземпляр могу через Getobject.
А вот открыть повторно не соображу как....

Может такую конструкцию заюзать ?
Set WshShell = CreateObject("WScript.Shell")
Return = WshShell.Run("c:\CATIA.exe", 0, True)
9 ноя 21, 16:13    [22393720]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
Прогер_самоучка

Может такую конструкцию заюзать ?
Set WshShell = CreateObject("WScript.Shell")
Return = WshShell.Run("c:\CATIA.exe", 0, True)

Попробовал..... открывается, но виснет нафиг и приложение и Акс...
Может там еще что добавить надо?
11 ноя 21, 12:18    [22394585]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
Блин, при параметре TRUE приложение запускается, но управление в АКС не передается, все так и висит, пока приложение не закроешь. После этого выполнение программы продолжается
При параметре FALSE выполнение программы продолжается, но приложение не успевает открыться, то есть подхватывается старый процесс......
Где б середину то найти? что бы приложение запустилось и управление было обратно в код передано?
11 ноя 21, 12:35    [22394594]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
можно Exec посмотреть, он статус отдает

Сообщение было отредактировано: 11 ноя 21, 14:57
11 ноя 21, 14:57    [22394660]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Serg197311
А вот открыть повторно не соображу как....

Ватсон, сделайте в папке с интерфейсом копию управляющей программы, например CATIA_2 и запускайте её когда нужно любым удобным способом - хоть по ярлыку с рабочего стола, хоть по кнопке из формы в CATIA...
Единственное неудобство - нужно при внесении изменений в CATIA, делать новую копию CATIA_2, но и это можно автоматизировать - при запуске CATIA - убиваем старую версию CATIA_2 и делаем новую...
Естественно предполагается, что база разделенная и мы манипулируем только с управляющей программой...
Ну и естественно CATIA_2 ты сможешь запустить только один раз...
11 ноя 21, 18:25    [22394772]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
Извини - но не смог понять почти ничего....
vmag

Ватсон, сделайте в папке с интерфейсом

Это где? Есть папка где лежит база и есть папка где лежит CATIA.....Или еще где?
vmag
копию управляющей программы, например CATIA_2

Это имеется ввиду exeшник катин? Или еще один экземпляр базы?
vmag
и запускайте её когда нужно любым удобным способом - хоть по ярлыку с рабочего стола, хоть по кнопке из формы в CATIA...

это понял - но нужно запустить именно из Акса, из него же выполнить некоторые действия а потом закрыть новый экземпляр кати

vmag
Единственное неудобство - нужно при внесении изменений в CATIA, делать новую копию CATIA_2, но и это можно автоматизировать - при запуске CATIA - убиваем старую версию CATIA_2 и делаем новую...


Если бы можно было убивать уже открытый экземпляр - вопросов бы не было. Убивать нельзя, он должен остаться открытым

vmag
Естественно предполагается, что база разделенная и мы манипулируем только с управляющей программой...
Ну и естественно CATIA_2 ты сможешь запустить только один раз...

База разделенная....дальше не очень понял..... Холмс))))
12 ноя 21, 07:19    [22394900]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5209
Может это чем-то поможет? WMI-определить, работает ли процесс или программа
12 ноя 21, 10:03    [22394929]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
Joss
Может это чем-то поможет? WMI-определить, работает ли процесс или программа

Думаю не поможет... открыт ли экземпляр CATIA или нет я могу определить через getobject
запустить второй могу допустим через wshell.run...
Наверное если в API покопаться поглубже - как-нибудь через hwnd или идентификатор процесса можно определить что второй экземпляр уже открылся...
А вот как его в обработку получить? в виде object нужной структуры?
через get или createobject первый открытый экземпляр подтягивается...
12 ноя 21, 10:35    [22394940]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Serg197311
Думаю не поможет... открыт ли экземпляр CATIA или нет я могу определить через getobject


ты можешь определить что первая программа открыта визуально (глазами) и в ней нажать кнопку открыть копию этой программы (они рядом лежат)


Serg197311
База разделенная....дальше не очень понял..... Холмс))))
12 ноя 21, 10:54    [22394955]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
vmag

ты можешь определить что первая программа открыта визуально (глазами) и в ней нажать кнопку открыть копию этой программы (они рядом лежат)

Ну могу и так... вопрос вот в чем
"А вот как его в обработку получить? в виде object нужной структуры?
через get или createobject первый открытый экземпляр подтягивается..."
12 ноя 21, 10:57    [22394957]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Serg197311
"А вот как его в обработку получить? в виде object нужной структуры?


а с какой целью ?
мы там (во втором экземпляре) разве не собираемся работать с клавиатурой, кнопки нажимать ?
12 ноя 21, 11:02    [22394960]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
vmag
Serg197311
"А вот как его в обработку получить? в виде object нужной структуры?


а с какой целью ?
мы там (во втором экземпляре) разве не собираемся работать с клавиатурой, кнопки нажимать ?

нет,не собираемся. Все что надо сделать - выполнит код из Акса.
12 ноя 21, 11:50    [22394983]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Serg197311,

наверно долгоиграющий ?
может его тупо запустить тут же только с DoEvents()
???
ну или копию настроить так, чтобы при старте отработал код и и она завершилась...

Сообщение было отредактировано: 12 ноя 21, 12:02
12 ноя 21, 11:57    [22394990]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
vmag
Serg197311,

наверно долгоиграющий ?

Не понял

vmag
может его тупо запустить тут же только с DoEvents()
???
ну или копию настроить так, чтобы при старте отработал код и и она завершилась...

Код - в Аксе,не в Кате
Надо, чтобы Акс запустил второй экземпляр Кати,и в нем выполнил нужные действия(еще раз - действия выполняет код из Акса, не из Кати)
Уже получается все, кроме получения этого второго экземпляра Кати как object, чтобы действия выполнять именно в нем, а не в первом экземпляре.
12 ноя 21, 12:50    [22395019]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Serg197311,

кто такая катя?
12 ноя 21, 14:01    [22395073]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
court
Member

Откуда:
Сообщений: 2438
Serg197311
Надо, чтобы Акс запустил второй экземпляр Кати,и в нем выполнил нужные действия(еще раз - действия выполняет код из Акса, не из Кати)
перенести этот код в макрос CATIA, не вариант ?
http://catiadoc.free.fr/online/basug_C2/basugbt0101.htm
Running Macros Using the CNEXT Command
To start a session and run a macro automatically, run the command like this:

cnext -env CATIA.V5R19.B19 -macro E:\tmp\Mymacro.CATScript
12 ноя 21, 14:37    [22395119]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
vmag
Serg197311,

кто такая катя?

CATIA
[url=]https://ru.wikipedia.org/wiki/CATIA[/url]
12 ноя 21, 14:50    [22395129]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
court
перенести этот код в макрос CATIA, не вариант ?

Не-а.... Надо из Акса
Если не найду выхода - буду ловить открытую Катю и сообщать юзеру чтобы он ее сам закрыл( мне из Акса - нельзя,там все не просто, и только юзер может решить, каким образом выходить и какие опции приэтом использовать)
Но не хотелось бы......
12 ноя 21, 14:53    [22395131]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
court
Member

Откуда:
Сообщений: 2438
Serg197311
Если не найду выхода - буду ловить открытую Катю и сообщать юзеру чтобы он ее сам закрыл
дык, нормальный вариант - "дёшево и сердито" :)

нуу, если очень сильно захочешь заморочиться, то тут - Доступ к нескольким работающим копиям CATIA (VB)
боролись с подобным (получение ссылок на все запущенные CATIA.Application), но там всё "сложно" ))
12 ноя 21, 15:11    [22395149]     Ответить | Цитировать Сообщить модератору
 Re: Повторно открыть приложение  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 1105
court
, если очень сильно захочешь заморочиться, то тут - Доступ к нескольким работающим копиям CATIA (VB)
боролись с подобным (получение ссылок на все запущенные CATIA.Application), но там всё "сложно" ))

Спасибо!! От же ж блин какая закавыка то выходит.... Думал-как-то попроще можно.....
12 ноя 21, 15:35    [22395165]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить