|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.04.2013, 11:21 | #1 |
Пользователь
Регистрация: 09.03.2010
Сообщений: 48
|
Служба Windows и запуск приложения
Всем привет!
У меня такая ситуация: 1. Имеется служба, работающая нормально и правильно. 2. Имеется приложение, которое запускается этой службой. Приложение тоже рабочее и правильное. Работае это у меня так- служба (Svc) стартует, затем проверяет работает ли приложение (App). Если App не работает, то Svc инициирует его запуск вот так: Код:
Если App завершился принудительно (хитрый юзер) или с ошибкой, т.е. отсутствует его дескриптор-то App запускается службой снова. Все тем же способом. А теперь внимание! Это все работает на 32 бит XP и 7 (и возможно на 8-не пробовал). Но это не работает на 64бит. А не работает именно: Код:
А вот инструкция на запуск не работает принципиально (я так подозреваю). Я так понимаю, что дело все в архитектуре 64битной системы. И запуск там осуществляется как-то иначе, чем в 32 бит. Прошу подсказки как побороть эту проблему. |
09.04.2013, 11:29 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
запуск гуевого приложения из службы - криво
|
09.04.2013, 11:50 | #3 |
Участник клуба
Регистрация: 11.08.2012
Сообщений: 1,226
|
Попробуйте запустить через CreateProcessAsUser
|
09.04.2013, 11:53 | #4 |
Пользователь
Регистрация: 09.03.2010
Сообщений: 48
|
не криво. Все нормально. В трее висит и не пикает.
Попробую. Рассмотрел я этот вариант- он мне не подходит. В случае архитектуры х86 у меня сервис запускает приложение под пользователем SYSTEM (это и было нужно). А если использовать Create ProcessAsUser, то запуск будет в активной сессии пользователя. А ему не обязательно видеть что что-то запущено и тем более иметь возможность это завершить. Конечно мой сервис отслеживает завершение этого приложения, но тем не менее, не хотелось бы вообще показывать. Последний раз редактировалось Stilet; 10.04.2013 в 22:10. |
10.04.2013, 10:37 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
то в трее то не виден то надо то не надо ... походу вы не оч. представляете чего делаете
|
10.04.2013, 11:10 | #6 | |
Пользователь
Регистрация: 09.03.2010
Сообщений: 48
|
Цитата:
Я не спрашиваю "как мне запустить из службы приложение, причем так, чтоб оно у пользователя в активном сеансе появилось в трее?". Я не спрашиваю "как мне запустить приложение так, чтоб оно висело в трее?". Реализация окон сделана для красоты и удобства личного. Висение в трее сделано для удобства и гашения интерактивностив 0 сеансе. Окошки в 0 сеансе в висте, семерке и т.д. вынуждаюют систему информаировать о том, что в этом нулевом сеансе есть приложение, которое хочет с вами повзаимодествовать (т.е. активное окно появилось). Мой вопрос заключается в следующем: в системе (Вин7) с архитектруой х86 есть служба, которая выполняет операцию запуска моего приложения от имени SYSTEM в 0 сеансе без интеркативного взаимодействия с пользователем. Операция запуска такая: Код:
Цель достигнута. Однако, такой фокус не прокатывает на архитектуре 64бит на вин 7 (скорее всего и на ХР 64бит не прокатит-не пробовал). При этом служба запускается от имени SYSTEM, функционирует нормально, не "зависла" и отвечает вовремя, пишет в журнал событий системы требуемую информацию. НО приложение из службы не запускается. Инструкция запуска такая же, как и для 86 архитектуры: Код:
Мне нужно программу или другим способом в службе запустить в 0 сеансе от имени SYSTEM, или все тем же методом, но что-то сделать с запускаемым файлом. Параметры совместимости я руками правил- не помогает никак. |
|
10.04.2013, 11:30 | #7 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
|
10.04.2013, 12:14 | #8 | |
Пользователь
Регистрация: 09.03.2010
Сообщений: 48
|
Цитата:
Суть моего вопроса в другом |
|
10.04.2013, 12:52 | #9 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
Может дело в пути к запускаемому приложению? Как он определяется?
Возможно нужно вызывать Wow64DisableWow64FsRedirection |
10.04.2013, 13:11 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Windows служба | Лета | Win Api | 9 | 05.07.2012 13:06 |
windows служба | welcomeTo | C# (си шарп) | 2 | 01.10.2011 03:38 |
Запуск Delphi- приложения при запуске стандартных программ Windows. | Max_0 | Общие вопросы Delphi | 5 | 24.11.2010 18:29 |
Служба Windows | Dezmont_ | Win Api | 7 | 30.04.2010 10:40 |
Windows Привязать запуск приложения к клавише. | jojahti | Windows | 10 | 12.01.2010 17:15 |