Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26069
Рейтинг: 2121
#31: 2007-08-17 15:13:42 ЛС | профиль | цитата
Народ! А как его запустить из командной строки? Ну /install и /uninstall это понятно, а вот запуск и останов какой командой?
карма: 22

0
Ответов: 2125
Рейтинг: 159
#32: 2007-08-17 15:34:19 ЛС | профиль | цитата
точно также, как и другие сервисы:

net start <имя сервиса>
net stop <имя сервиса>
карма: 1

0
Разработчик
Ответов: 26069
Рейтинг: 2121
#33: 2007-08-17 15:40:29 ЛС | профиль | цитата
tsdima, спасибо, понял.

[size=-2]------ Добавлено в 15:40
tsdima, а не через cmd можно, или с неактивной консолью?
карма: 22

0
Ответов: 2125
Рейтинг: 159
#34: 2007-08-17 15:49:04 ЛС | профиль | цитата
Ну, можно VBScript-ом, например:

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objService = objWMIService.ExecQuery("select * from Win32_BaseService where Name='Messenger'")
For Each x in objService
x.StartService
Next
карма: 1

0
Разработчик
Ответов: 26069
Рейтинг: 2121
#35: 2007-08-17 16:45:31 ЛС | профиль | цитата
tsdima, совсем забыл про компонент ServiceTools
карма: 22

0
Разработчик
Ответов: 26069
Рейтинг: 2121
#36: 2007-08-18 03:37:04 ЛС | профиль | цитата
tsdima, можно ли назначить из HiAsm'a (или ввести поправки в компонент) сервис не ручным, а автоматическим?

[size=-2]------ Добавлено в 03:20
Оказывается, это довольно просто. Вот улучшенная версия (только pas и ini), позволяющая назначать тип запуска при инициализации сервиса.

карма: 22

0
файлы: 1NTService_1_40.zip [3.3KB] [298]
Разработчик
Ответов: 26069
Рейтинг: 2121
#37: 2007-08-19 10:39:02 ЛС | профиль | цитата
Народ! Кто-нибудь знает, насколько точный таймер у сервисного приложения?
карма: 22

0
Ответов: 2125
Рейтинг: 159
#38: 2007-08-19 14:19:50 ЛС | профиль | цитата
Windows это не real time OC, на неточность всегда приходится рассчитывать. Никакие события не происходят "мгновенно", по крайней мере, на уровне пользовательского приложения, на котором и работает сервис.
карма: 1

0
Разработчик
Ответов: 26069
Рейтинг: 2121
#39: 2007-08-19 18:21:28 ЛС | профиль | цитата
tsdima, ну ты замутил. Мы, помнмтся, на эту тему дебаты вели, про одновременность процессов и отсрочки выполнения. У обычного таймера очень большая усредненная погрешность на шаге 1 ms, особенно если ее превратит делением в 1 sec. Здесь, видимо, сказывается приоритет процесса и прерывание на отрисовку окон. Выше ли точность у сервисного таймера по-сравнению с обычным, я про это спрашивал, всеже приоритет у сервисного -- системный, на уровне ядра, и нет прерывания на оконнные отрисовки?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#40: 2007-08-19 19:05:31 ЛС | профиль | цитата
Вопрос: при заказе 10 мсек, какие гарантии, что таки через 1 сек пройдет событие
Ответ: никаких
карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#41: 2007-08-19 19:38:03 ЛС | профиль | цитата
nesco писал(а):
всеже приоритет у сервисного -- системный

это не так

nesco писал(а):
на уровне ядра

и это не так

nesco писал(а):
и нет прерывания на оконнные отрисовки

тоже не так

Приоритет у сервиса самый обычный - точнее определяется им самим при старте. Тоже самое может сделать и простая программа.
Сервис - приложение уровня пользователя и запускается от имени пользователей. Собственно об этом уже было сказано.
Отрисовка окон - это далеко не прерывания. Это очередь сообщений. Разница между данными понятиями весьма принципиальна.

И последнее: даже уровень ядра не обеспечивает гарантии соблюдения временных интервалов
tsdima писал(а):
Windows это не real time OC, на неточность всегда приходится рассчитывать

карма: 26
0
Разработчик
Ответов: 26069
Рейтинг: 2121
#42: 2007-08-19 20:45:32 ЛС | профиль | цитата
Спасибо за детальное разъяснение. Но сервис -- это фоновая служба и им запрещено работать с апликациями, а значит не тратится системное время на отработку отрисовки, и таймер должен быть точнее, чем стандартный. Мне не важна очень большая точность, но усредненная она должна быть точнее, чем у стандартного таймера обычного приложения в пределах секунды при пересчете на 1 ms.

[size=-2]------ Добавлено в 20:45
Galkov, это как надо укалбасить приложение, чтобы при заказе 10 ms не выдать событие после 1 sec?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#43: 2007-08-19 20:57:19 ЛС | профиль | цитата
Причем тут приложение - это винда...
карма: 9

0
Ответов: 2125
Рейтинг: 159
#44: 2007-08-19 21:17:44 ЛС | профиль | цитата
nesco писал(а):
Но сервис -- это фоновая служба и ... и таймер должен быть точнее, чем стандартный
Ну он же не один единственный, есть масса других сервисов и приложений, и всем процессорного времени хочется Да и зачем нужна исключительная точность? Чтобы гарантировать определённое количество событий в течение определённого времени можно ориентироваться по часам, ну или в конце-концов по Performance Counter. Замеряй прошедшее время и количество событий с момента старта. Всегда можно сказать сколько событий должно было быть и довести их количество до нужного значения.
карма: 1

0
Разработчик
Ответов: 26069
Рейтинг: 2121
#45: 2007-08-19 21:41:33 ЛС | профиль | цитата
Galkov писал(а):
Причем тут приложение - это винда...

У меня такого ни разу не было.
tsdima писал(а):
Да и зачем нужна исключительная точность?
Да не нужна мне большая точность, мне нужно, чтобы таймер имел отклонение порядка 50%, даже 100% пойдет, при 1..5 ms, но ни как Galkov пишит, что при 10 ms выдаст через 1 sec.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)