Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2010, 22:38   #1
m_kostik
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 24
По умолчанию странности ControlServiceEx()

Здравствуйте, уважаемые коллеги!
Проблема такая: написал я сервис, использующий для обработки сообщений ControlServiceEx(). Сервис нормально создается вызовом CreateService(), запускается вызовом StartService(), удаляется вызовом DeleteService(). Но при попытке послать сервису любую (!) команду получаю системную ошибку "Параметр задан неверно". Работаю в Windows7. Вот пример кода посылки команды:

SERVICE_CONTROL_STATUS_REASON_PARAM ETR AddParametr;
DWORD dwControl=SERVICE_CONTROL_PAUSE;

rez = ControlServiceEx(hService, dwControl, SERVICE_CONTROL_STATUS_REASON_INFO, &AddParametr);

Запускал прогу, которая посылает команды, "от имени администратора" - тот же результат. В журнале событий никаких записей. Для смеха создал точно такой же сервис, но расчитанный на ControlService(), так тот работает как часы.
Поиск по MSDN и Google ничего не прояснил. Просто не знаю что и подумать. Третий день бьюсь. У кого какие будут соображения?
m_kostik вне форума Ответить с цитированием
Старый 23.10.2010, 05:32   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

SERVICE_CONTROL_STATUS_REASON_PARAM <> SERVICE_CONTROL_STATUS_REASON_PARAM S

(какого чёрта там пробел появился? я его не вводил)
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 23.10.2010, 13:25   #3
m_kostik
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
SERVICE_CONTROL_STATUS_REASON_PARAM <> SERVICE_CONTROL_STATUS_REASON_PARAM S

(какого чёрта там пробел появился? я его не вводил)
Это просто глюк форума - в режиме редактирования никакого пробела нет. Нет его, естественно, и в моем коде
m_kostik вне форума Ответить с цитированием
Старый 24.10.2010, 17:21   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от m_kostik Посмотреть сообщение
Нет его, естественно, и в моем коде
У вас в коде AddParametr - параметр. А должно быть - параметры.

Последний параметр - должен быть типа SERVICE_CONTROL_STATUS_REASON_PARAM S (params, множественное число). У вас - что-то непонятное. Что ещё за Parameter?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 28.10.2010, 20:19   #5
m_kostik
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
У вас в коде AddParametr - параметр. А должно быть - параметры.

Последний параметр - должен быть типа SERVICE_CONTROL_STATUS_REASON_PARAM S (params, множественное число). У вас - что-то непонятное. Что ещё за Parameter?
Ну Вы даете! AddParametr - это имя переменной, а не ее тип. А имя можно выбирать любым :-)
m_kostik вне форума Ответить с цитированием
Старый 28.10.2010, 20:39   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Да ёкарный бабай. Причём тут AddParametr?

У вас ТИП SERVICE_CONTROL_STATUS_REASON_PARAMETR

PARAMETER! Должно быть PARAMS.

В MSDN написано: SERVICE_CONTROL_STATUS_REASON_PARAMS.

(Вот уж воистину: глаза видят только то, что видит мозг).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
странности с ICQ VovanZ Софт 7 19.06.2010 23:45
Странности в Builder 6 Foxtrod C++ Builder 10 03.10.2009 01:09
Странности Chrome` а ]Wowan[ Софт 1 27.04.2009 04:11
Странности FireBird (Создание пользователей) KiSH333 БД в Delphi 1 10.03.2009 12:39
Странности в работе с событием OnTimer Mixasik Общие вопросы Delphi 3 17.01.2009 01:22