Такой вот вопрос,
Нужно мне запустиить из сервиса приложения, чтобы знать его ProcessId.
Но вот из сервиса это сделать не получается, то что такое возможно,
понятно из работы Шедулера.
При запуске в виде приложения никаких проблем.
Сервис вроде ничего особенного не делает, только иконку в трее с менюшкой.
Использовал стандартный модуль.
Да, все это крутится под XP.
Здравствуйте, PaNick, Вы писали:
PN>Такой вот вопрос, PN>Нужно мне запустиить из сервиса приложения, чтобы знать его ProcessId.
Забавная причина Т.е. само приложение тебе не нужно, что оно делеает не важно, запускаешь только для того, чтобы узнать какой полцчится ProcessId?
PN>Но вот из сервиса это сделать не получается, то что такое возможно, PN>понятно из работы Шедулера.
PN>Подробности: Запускаю консольное приложение; Сервис интерактивный.
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Здравствуйте, Аноним, Вы писали:
AS>[]
А>>Интересно как ты представляешь себе не интерактивный, который в трей добавляет иконку ???
AS>А я не представляю.
Здравствуйте, Аноним, Вы писали:
А>ТОгда зачем вопросы задаешь такие?
А зачем ты задаешь такие? Твой первый вопрос можно квалифицировать, как либо желание узнать, как же это возможно, либо как попытку через наводящие вопросы объяснить, что это таки невозможно. А этот вопрос, имхо, только как наезд в мягкой форме. Ну и накой оно тебе?
Кстати, неинтерактивная служба с иконкой — легко. Окрыть нужный десктоп и вперёд. Я не пробовал таким образом делать именно иконку, но окошко, вроде, выводится.
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, PaNick, Вы писали:
SH>Забавная причина Т.е. само приложение тебе не нужно, что оно делеает не важно, запускаешь только для того, чтобы узнать какой полцчится ProcessId?
Задача сервиса заключается в запуске приложения без логона пользователя; но при этом, чтобы при входе, второй мог управлять приложением.
С консольным же приложением проблема такая, что у него заголовок постоянно меняется, и чтобы его поймать приходится использовать ProcessId.
Позже собираюсь посылать туда клавиши, поэтому без CreateProcess не развернешся.
Для вывода иконки можно использовать другое приложение, главное поймать окно и Ввод-Вывод.
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Ты бы хоть коды ошибок проверял.
AS>Сервис точно интерактивный?
Все ОК. Я просто ступил.
При запуске в режиме сервиса нужно указать запуск процесса в OnStart,
А так как я переделал приложение в сервис, то при этом ессно забыл исправить.
Так и висел у меня вызов в OnCreate...
Всем Спасибо за внимание.
... << RSDN@Home 1.1 beta 1 >>
Re[8]: Запуск процесса из сервиса
От:
Аноним
Дата:
15.07.03 06:27
Оценка:
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, Аноним, Вы писали:
А>>ТОгда зачем вопросы задаешь такие?
SH>А зачем ты задаешь такие? Твой первый вопрос можно квалифицировать, как либо желание узнать, как же это возможно, либо как попытку через наводящие вопросы объяснить, что это таки невозможно. А этот вопрос, имхо, только как наезд в мягкой форме. Ну и накой оно тебе?
SH>Кстати, неинтерактивная служба с иконкой — легко. Окрыть нужный десктоп и вперёд. Я не пробовал таким образом делать именно иконку, но окошко, вроде, выводится.
Здравствуйте, Аноним, Вы писали:
А>Извенюсь раз не прав — но опять палце кидалово —
А>ЛЕГКО — но пока сам не пробовал
А кудаж мы без пальцев Я просто не люблю писать сервисы, которые имеют хоть какой-то пользовательский интерфейс. Так как весь интерактив очень плохо работает в Terminal Service и Windows XP с Fast User Switching. Предпочитаю писать для них клиентов.
Но раз уж такое дело, сегодня вечером попробую, о результатах доложу.
Алексей, будьте вежливы к участникам форума, не цитируйте те части сообщения, которые не нужны. -- Alex Fedotov
SH>Код функций SH>bool EnableTakeOwnershipName(); SH>bool SetUserObjectOwner(HANDLE hUser); SH>bool SetUserObjectAccess(HANDLE hUser);
SH>не привожу, он довольно прост. Из под админа теперь работает.
SH>Ну что я могу сказать — спасибо тебе, добрый человек! Наконец-то я начал потихоньку трахаться с security...
А можно все таки получить код функций SH>bool EnableTakeOwnershipName(); SH>bool SetUserObjectOwner(HANDLE hUser); SH>bool SetUserObjectAccess(HANDLE hUser);
хотя конечно он и прост, но все же хотелось его посмотреть
простите за ламерские вопросы
Здравствуйте, Алексей, Вы писали:
А>А можно все таки получить код функций SH>>bool EnableTakeOwnershipName(); SH>>bool SetUserObjectOwner(HANDLE hUser); SH>>bool SetUserObjectAccess(HANDLE hUser);
А>хотя конечно он и прост, но все же хотелось его посмотреть А>простите за ламерские вопросы
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, Алексей, Вы писали:
А>>А можно все таки получить код функций SH>>>bool EnableTakeOwnershipName(); SH>>>bool SetUserObjectOwner(HANDLE hUser); SH>>>bool SetUserObjectAccess(HANDLE hUser);
А>>хотя конечно он и прост, но все же хотелось его посмотреть А>>простите за ламерские вопросы
SH>В среду, если не забуду.
Буду очень признателен!