powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / попрос по службам windows
25 сообщений из 33, страница 1 из 2
попрос по службам windows
    #38135679
noob123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть 2 вопроса по службам windows.
при запуске службы через exe файл, выскакивает окошко "сбой при запуске службы windows" "Невозможно запустить службу из командной строки или отладчика..." - все правильно. но вопрос в том как перехватить это окошко и вывести свое. или просто как определить как запущено приложение как служба или как процесс?

и второй вопрос. например служба Radmin запускает дополнительный процесс "radmin component" которая показывает иконку в трее и предоставляет консоль для управления службой. так же Radmin следит чтобы этот процесс всегда работал, и если его убить руками то он тут же снова запустится.
как организовать подобное поведение? (хотя бы в какую сторону копать)
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135709
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123как определить как запущено приложение как служба или как процесс? Environment.UserInteractive
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135770
noob123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кnoob123как определить как запущено приложение как служба или как процесс? Environment.UserInteractive

не всегда верно. если у службы поставить флаг "разрешить взаимодействие с рабочим столом" то Environment.UserInteractive так же будет true
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135874
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123,

а что вы хотите-то я не понимаю. Вариантов можно много придумать, например ключ запуска "service,console..."
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135914
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123,

по поводу второй части вопроса рассмотрите вариант, внутри сервиса хочтится wcf сервис, который позволяет управлять вашим сервисом, снимать с него специфические показатели и т. п..

клиент wcf отдельно пишите, общаетесь через pipe, или tcp /ip
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135924
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

опечатка забавная у тебя). Кстати а разве в Вин сервисе нет метода для передачи каких-то аргументов?
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135925
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123или просто как определить как запущено приложение как служба или как процесс?
служба является процессом.
Если Environment.UserInteractive - не устраивает - придётся доставать бубен и шаманить(точно нужна интерактивная служба?)


noob123следит чтобы этот процесс всегда работал, и если его убить руками то он тут же снова запустится.
как организовать подобное поведение? (хотя бы в какую сторону копать)
Обрабатывать завершение дочернего процесса(событие Exited) и при необходимости перезапускать его
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135927
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanКстати а разве в Вин сервисе нет метода для передачи каких-то аргументов?
конечно есть
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135931
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

ну кроме Start,Stop и тд? Хотя WCF наверное лучший выход,но требует лишних телодвижений
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135932
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123как перехватить это окошко и вывести свое. или просто как определить как запущено приложение как служба или как процесс?
А это и не нужно делать, журнал событий для кого сделан?
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135952
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivan,

опечатка с трубы пишу, по поводу не убиваемого процесса, гугли на сайте wasm.ru, там были исходники, но если памяти не изменяет, то оно один хрен может быть снято под админом с помощью debug api
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135958
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это было автору
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135969
noob123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отвечаю сразу всем.
как сделать взаимодействие между службой и приложением я знаю.

вопрос был в том как запустить дочерний процесс и отслеживать его работу. типа завершился и тд.

МСУnoob123как перехватить это окошко и вывести свое. или просто как определить как запущено приложение как служба или как процесс?
А это и не нужно делать, журнал событий для кого сделан?

тебе не нужно, а кому то может и нужно. например мне.
если запустить тот же радмин (rserver3.exe) выскочит MessageBox с текстом: "Программа будет работать только как системная служба". все четко и красиво. а если запустить приложение мое, то вылезает большое окно "Невозможно запустить службу из командной строки или отладчика..." которое пугает пользователя, и мне нафиг не нужно.
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135977
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123если запустить тот же радмин (rserver3.exe) выскочит MessageBox с текстом: "Программа будет работать только как системная служба". все четко и красиво. а если запустить приложение мое, то вылезает большое окно "Невозможно запустить службу из командной строки или отладчика..." которое пугает пользователя, и мне нафиг не нужно.Можно написать программу, которая работает и как служба, и как приложение, в зависимости от того, как она запущена.
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135978
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123выскочит MessageBox с текстом: "Программа будет работать только как системная служба".

ну так же сказали:
if (Environment.UserInteractive) {Console.WriteLine("Нужна служба"); Console.ReadLine(); return; }
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135990
noob123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кnoob123если запустить тот же радмин (rserver3.exe) выскочит MessageBox с текстом: "Программа будет работать только как системная служба". все четко и красиво. а если запустить приложение мое, то вылезает большое окно "Невозможно запустить службу из командной строки или отладчика..." которое пугает пользователя, и мне нафиг не нужно.Можно написать программу, которая работает и как служба, и как приложение, в зависимости от того, как она запущена.

можно, только в том и вопрос, как определить "как она запущена".

Arm79noob123выскочит MessageBox с текстом: "Программа будет работать только как системная служба".

ну так же сказали:
if (Environment.UserInteractive) {Console.WriteLine("Нужна служба"); Console.ReadLine(); return; }

читай выше, вариант не катит. так как Environment.UserInteractive не зависит от того как запущено приложение. он может быть true даже в случае если приложение запущено как служба.
...
Рейтинг: 0 / 0
попрос по службам windows
    #38135999
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanИзопропил,

ну кроме Start,Stop и тд? Хотя WCF наверное лучший выход,но требует лишних телодвижений

SCM поддерживает посылку пользовательских сообщений (коды 128-256)
Если этого недостаточно - любая форма RPC подойдёт
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136003
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123,

тогда делайте специальный аргумент, я же вам говорил. Где запускаете службу передавайте аргумент ""service". И вперед -
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
If(args.Count>0 && args[0]=="service")
{
я служба
}
else
{
я не служба
}
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136004
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136007
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123Environment.UserInteractive не зависит от того как запущено приложение. он может быть true даже в случае если приложение запущено как служба

А у вас сервис интерактивный?
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136011
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123отвечаю сразу всем.
как сделать взаимодействие между службой и приложением я знаю.

вопрос был в том как запустить дочерний процесс и отслеживать его работу. типа завершился и тд.

МСУпропущено...

А это и не нужно делать, журнал событий для кого сделан?

тебе не нужно, а кому то может и нужно. например мне.
если запустить тот же радмин (rserver3.exe) выскочит MessageBox с текстом: "Программа будет работать только как системная служба". все четко и красиво. а если запустить приложение мое, то вылезает большое окно "Невозможно запустить службу из командной строки или отладчика..." которое пугает пользователя, и мне нафиг не нужно.

мониторить создание/завершение процесса можно через wmi. может и подойдет тебе. можно и других методов нагенерить
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136014
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интерактивная служба - это хороший, добрый косяк.
Должны быть веские основания для использования. Необходимость выплюнуть мессаджбокс - таким основанием не является.

Если топикстартер настаивает - нужно определить родительский процесс и если это services.exe - приложение запущено как сервис
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136020
noob123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netivannoob123,

тогда делайте специальный аргумент, я же вам говорил. Где запускаете службу передавайте аргумент ""service". И вперед -
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
If(args.Count>0 && args[0]=="service")
{
я служба
}
else
{
я не служба
}



хорошо. это решение костыль. потом кто-нить запустить службу myservice.exe /service , вылезет "я служба" и потом выпадет окно что нихрена не служба.

Arm79noob123Environment.UserInteractive не зависит от того как запущено приложение. он может быть true даже в случае если приложение запущено как служба

А у вас сервис интерактивный?

предположим что да. тоесть даже если сделать не интерактивным то всеравно, это решение получается не универсальным.
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136024
noob123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилИнтерактивная служба - это хороший, добрый косяк.
Должны быть веские основания для использования. Необходимость выплюнуть мессаджбокс - таким основанием не является.

Если топикстартер настаивает - нужно определить родительский процесс и если это services.exe - приложение запущено как сервис

попробую.
...
Рейтинг: 0 / 0
попрос по службам windows
    #38136031
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob123,

что значит интерактивная служба? Пользователю Формы с приветом кидать? ИЛи вы хотите форму для управления вашей службой? я запутался.
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / попрос по службам windows
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]