Программный запуск стороннего приложения

1. alm_ilya 25 06.10.14 10:41 Сейчас в теме
Есть самописное (на Visual Studio) приложение с пусковым *.exe файлом. Необходимо проверить, запущенно ли оно на компьютере и, если нет, то запустить. А после выполнения некоторых операций, закрыть. Приложение будет находиться всегда в одном и том же каталоге. Как это сделать?
В плане запуска я понимаю что нужно использовать процедуру "ЗапуститьПриложение", а остальные проблемы как решить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kuzev 47 06.10.14 10:52 Сейчас в теме
(1) taurus_, в самописном приложении можно сделать так, чтобы оно не позволяло запускать себя второй раз.
3. alm_ilya 25 06.10.14 10:54 Сейчас в теме
(2) kuzev,
О, это идея, спасибо! А как его закрыть из 1с?
5. kuzev 47 06.10.14 10:56 Сейчас в теме
(3) taurus_, в самописном приложении можно сделать так, чтобы оно само закрывалось после выполнения некоторых операций.
7. alm_ilya 25 06.10.14 11:00 Сейчас в теме
(5) kuzev,
Не, не вариант. Инициировать закрытие надо именно из 1с.
9. Cooler 22 06.10.14 11:07 Сейчас в теме
(7)
Инициировать закрытие надо именно из 1с.
taskkill (tskill) спасет отца русской демократии.
11. kuzev 47 06.10.14 11:09 Сейчас в теме
(7) taurus_, в программке можно проверять наличие некого файла (а-ля флаг), который Вы из 1С будете создавать (как команды). В программке сделайте периодический запуск процедуры (делается через компонент "таймер" или нечто подобное) на проверку наличия этого файла. Впрочем, Вам виднее, т.к. я не в курсе нюансов задачи.
4. kuzev 47 06.10.14 10:54 Сейчас в теме
(1) taurus_, а так... делаете job на ПК.

PS. Причем здесь 1С?
6. alm_ilya 25 06.10.14 10:59 Сейчас в теме
(4) kuzev,
делаем связь между 1с и АТС. Эта програмка на VS выступает парсером комманд из 1с в АТС. Соответственно надо чтобы в определенный момент 1с проверяла, запущена ли эта програмка или нет. Ну и закрывала её после использования. С защитой от повторного запуска разобрались (с вашей подсказки, спасибо ещё раз))). Как теперь закрыть приложение не подскажете?
8. Cooler 22 06.10.14 11:00 Сейчас в теме
(1) Отследить, запущено ли приложение можно поискав его в списке процессов: http://infostart.ru/public/19509/

С запуском проблем быть не должно, а вот "после выполнения некоторых операций, закрыть" - где должны выполняться операции? В приложении или в 1С?
10. FallenMad 11 06.10.14 11:08 Сейчас в теме
WMI тебе в помощь.

MSDN

скрипт vb
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colProcesses = objWMIService.ExecQuery _ 
    ("Sel ect * fr om Win32_Process Where Name = 'Database.exe'") 
 
If colProcesses.Count = 0 Then 
    Wscript.Echo "Database.exe is not running." 
Else 
    Wscript.Echo "Database.exe is running." 
End If 
Показать
12. kuzev 47 06.10.14 11:14 Сейчас в теме
Я в таких случаях делаю просто прогу, которая в фоне работает (в трее висит, как хотите) и с некой периодичностью выполняет определенные действия.
13. alm_ilya 25 06.10.14 11:26 Сейчас в теме
Всем спасибо! Будем копать...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот