Страница: 1 |
Страница: 1 |
Вопрос: Способ запуска EXE
Добавлено: 13.06.06 11:12
Автор вопроса: LamerOnLine | ICQ: 334781088
Ну вот и сабж: есть ActiveX.exe, Start Mode - StandAlone. Соответственно, мне нужно в sub Main() определить каким методом запускался этот exe - непосредственно или, скажем, через CreateObject.
Как вариант делал через snapshot, проверка ParentID-процесса и сравнение с svchost, но чувствую что метод крив до безобразия. Кто-нить с подобной задачей сталкивался?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 13.06.06 12:55
Виноват, забыл про App.StartMode
Номер ответа: 2
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #2
Добавлено: 13.06.06 19:50
Я в сабже не шарю, так вот вопрос - что это за ActiveX EXE? А главное зачем оно нужно?
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 13.06.06 20:28
GetModuleFileName если непосредственно должен вернуть тоже что и при App.ExeName, а если CreateObject то походу <> App.ExeName
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 14.06.06 11:43
Прикалываешься? Вне зависимости от типа запуска процесс будет создан новый, и GetModuleFileName вернет в любом случае одно и то же.
Я в сабже не шарю, так вот вопрос - что это за ActiveX EXE? А главное зачем оно нужно?
Трудно в двух словах объяснить что такое ActiveX и что такое .exe.
В данном случае - нужен программный модуль для автоматического обновления платформы (не ОС) на машине по сети, с двумя вариантами запуска - как обычное приложение (с пользовательским интерфейсом) и как компонент для административного приложения с возможностью переключения в режим полноценного приложения с отвязкой от родителя. ActiveX.exe решает эту задачу, кроме того, запускается в отдельных процессах (класс SingleUse), поскольку Windows Installer не переваривает двух своих ипостасей одновременно
Одна проблемка - приходится создавать дополнительный поток для синхронизации (на случай выгрузки при падении родительского приложения).
В кратце ясно?
ЗЫ Проблема то решена в первом моем же ответе )