| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > сервис |
| Автор: lavan 21.4.2011, 18:44 | ||
| возник вопрос по созданию служб может кто сможет помочь?.Для создания процесса с одним сервисом,надо иметь 3 функции:main,servicemain,servicehandle.написал,получаю ошибку:служба запускается как приложение (ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)в мэйн не использовались такие функции как:OpenSCManager,CreateService. исправил это так:sc create теперь сервис отображается в окне служб,но после того как я нажимаю старт,сервис вроде как запускается,но ничего не делает люди не поленитесь,расскажите пошагово как это работает!!!!!
|
| Автор: xvr 22.4.2011, 12:48 | ||||
Ну так - что просили, то он и делает
В смысле - я тут написал, объясните мне, что именно я написал? http://msdn.microsoft.com/en-us/library/ms685967%28v=VS.85%29.aspx |
| Автор: lavan 22.4.2011, 13:55 |
| весь ваш комент xvr не потеме,прога рабочая,ошибка была в том,что надо было прописывать полный путь к создаваемому лог файлу,и сначало я не понял что через консоль- Службы, при нажатии на старт,автоматически вызываются OpenSCManager(),StartService() вы наверно не стали себя утруждать просмотром кода!потому что код,как минимум должен был создать файл! |
| Автор: xvr 23.4.2011, 07:56 | ||||||
Если бы вы внятно сказали, что вы ожидаете от своего сервиса, вам бы ответили. А так - какой вопрос, такой и ответ
И код я ваш посмотрел - он ужасен |
| Автор: borisbn 23.4.2011, 12:37 |
ВаШкОдНаСтОлЬкОсЛоЖнОчИтАтЬчТоНеТнИкАкОгОжЕлАнИяЭтОдЕлАтЬпОтРуДиТеСьЕгОоТфОрМаТиРоВаТьДлЯнАчАлА lavan, приятно ? |
| Автор: lavan 27.4.2011, 18:03 | ||||
| xvr, все ваши комментарии принимаются,не правильная постановка вопроса от непонимания темы!а на счет кода,обычный код для проверки! borisbn,а как вы видете нормально оформленный код??? попробую задать более четкий вопрос.написал прогу(запускаю кликом по проге) часть программы:
выскакивает ошибка:сервис запускается как приложение но,сервис находится в консоли Службы и через эту консоль его можно запустить. КАК ИЗБАВИТЬСЯ ОТ ЭТОЙ ОШИБКИ???? ели использовать аргументы ком строки то
|
| Автор: borisbn 27.4.2011, 18:46 | ||||
было
хотелось бы ( чтоб не разбирать как каракули у врачей
|
| Автор: xvr 27.4.2011, 19:52 |
Никак. Сервис (именно как сервис) может быть запущен только системой, и только при таком запуске функция StartServiceCtrlDispatcher будет работать. Собственно в сервисах есть 2 совершенно независимых части - регистрация и управление сервисом (это OpenSCManager и все, что от него растет). И сам сервис - это StartServiceCtrlDispatcher и все что от него растет. Управление - это обычное приложение, оно даже не обязано содержаться в том же exe, что и сам сервис (StartServiceCtrlDispatcher). Собственно 'консоли Службы' этим интерфейсом и пользуется Сам сервис же запускается (по команде из 1й части) специальным системным процессом (servises.exe) Собственно, когда вы вызываете StartService из своей программы (той, что два в одном |
| Автор: ASMatic 29.4.2011, 03:05 | ||
не особо там вычитывая но понимая траблу с сервисаме)
РАБОЧИЙ СЕРВИС! - инсталь и юзай.) *есессно код для тестов. |
| Автор: lavan 1.5.2011, 19:35 |
| Всем спасибо за помощь,вроде разобрался! |