Не могу понять, почему не запускается служба? PHP: SC_HANDLE hSCHandle = OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE); if(hSCHandle){ SC_HANDLE hServiceHandle; hServiceHandle = CreateService(hSCHandle, MY_MACRO_SERVICE_NAME, MY_MACRO_SERVICE_NAME, 0, SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, windir, NULL, NULL, NULL, NULL, NULL); if(hServiceHandle){ StartService(hServiceHandle, 0, NULL); } CloseServiceHandle(hSCHandle); } В службах она появилась. От туда пытаюсь запустить, пишет Code: Не удалось запустить службу на локальном компьютере. Ошибка 1053: Служба не ответила на запрос своевременно.
Простите Напишите кто нить не большую программу. С использованиев wininet. Ссылка для примера например _http://clikus.ru/reg.php Программа должна грабить страницу, покажите как вырезать текст(любой там же)Вывести в edit1 html код, после чего вывести капчу на экран. Ну естественно это будет проект applacation, желательно в СBuilder 6 Просто я на книжках учиться не умею .. .
ну так обычную прогу просто так не сделаешь сервисом. Там надо в ней написать парочку строк чтобы она стала сервисом. Вот мой шаблон сервеснйо проги для си Code: SERVICE_STATUS ss; SERVICE_STATUS_HANDLE ssHandle; HANDLE Thread; // функция установки статуса сервиса void SetSomeServiceStatus(DWORD dwCurrentState,DWORD dwWin32ExitCode,DWORD dwWaitHint) { static DWORD dwCheckPoint = 1; if(dwCurrentState == SERVICE_START_PENDING) { ss.dwControlsAccepted = 0; } else { ss.dwControlsAccepted = SERVICE_ACCEPT_STOP; } ss.dwCurrentState = dwCurrentState; ss.dwWin32ExitCode = dwWin32ExitCode; ss.dwWaitHint = dwWaitHint; if(dwCurrentState == SERVICE_RUNNING || dwCurrentState == SERVICE_STOPPED) { ss.dwCheckPoint = 0; } else { ss.dwCheckPoint = dwCheckPoint++; } SetServiceStatus(ssHandle, &ss); } // функция контроля сервиса void _stdcall ServiceControl(DWORD dwControlCode) { switch(dwControlCode) // проверям что за код нам послан { case SERVICE_CONTROL_STOP: // послана команда остановки { // говорим что начали останавливаться SetSomeServiceStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); // тут можно какнить обработать данные по закрытию, типа сохранить что надо // но я просто прибью рабочий поток TerminateThread(Thread, 0); // говорим что остановились SetSomeServiceStatus(SERVICE_STOPPED, NO_ERROR, 0); break; } case SERVICE_CONTROL_INTERROGATE: // не будет реагированить ниначто { SetSomeServiceStatus(ss.dwCurrentState, NO_ERROR, 0); break; } default: { SetSomeServiceStatus(ss.dwCurrentState, NO_ERROR, 0); break; } } } DWORD _stdcall RUNWAIT() { // тут делаем что угодно это и есть сервсиная функция return 0; } // точка входа в сервис void _stdcall ServiceMain(DWORD argc, LPSTR* argv) { // регистрируем функцию управления сервисом ssHandle = RegisterServiceCtrlHandlerA("SERVICE_NAME", ServiceControl); if(!ssHandle) // если ошибка { // обработка ошибки } else // всё норм { // задаем тип серсика ss.dwServiceType = SERVICE_WIN32_OWN_PROCESS; // ну это мы передаем статус что начали запускаться SetSomeServiceStatus(SERVICE_START_PENDING, NO_ERROR, 4000); // запускаем главный поток сервисной части Thread = CreateThread(0, 0, &RUNWAIT, 0, 0,(LPDWORD)&Thread); if (Thread) { // говорим что сервис запустился SetSomeServiceStatus(SERVICE_RUNNING, NO_ERROR, 0); } else { // поток не запустился говорим что сервис не запустился SetSomeServiceStatus(SERVICE_STOPPED, NO_ERROR, 0); } } } int __cdecl main(int argc, char* argv[]) { SERVICE_TABLE_ENTRY DispatcherTable[] = {{"SERVICE_NAME", ServiceMain}, {NULL, NULL}}; if (argc == 2 && argv[1] == 's') // если прога запущена с параметром s значит это сервис { // начинаем инициализацию сервиса if (!StartServiceCtrlDispatcherA(DispatcherTable)) { // обработка ошибки } else { // сервис начал стартовать } } else // если запустились как обычная прога { } return 0; }
slesh, Я пишу программу не совсем для сервиса . Просто хочу, чтобы при старте системы программа копировалась, например в C:\. То есть если юзать твой шаблон, то Code: DWORD _stdcall RUNWAIT() { Copy(); и т.п.? // тут делаем что угодно это и есть сервсиная функция return 0; } Код программы должен быть в DWORD _stdcall RUNWAIT() {////}?
Подскажите как в опенгл произвести определение столкновения, и если столкновение произошло то треугольник меняет цвет... с использованием bool TestCollide(); Если надо могу скинуть весь код программы
Я в этом совсем не шарю, но хотел сделать, чтобы прога повисла в процессах. И при старте , чтобы она сама запускалась и опать висла проессах
\Documents\CodeBlocks\myC\main.c|4|error: urlmon.h: No such file or directory| \Documents\CodeBlocks\myC\main.c||In function 'main':| \Documents\CodeBlocks\myC\main.c|34|warning: implicit declaration of function 'URLDownloadToFile'| \Documents\CodeBlocks\myC\main.c|41|warning: unused variable 'nRet'| ||=== Build finished: 1 errors, 2 warnings ===| Такая вот ошибка при компиляции. Как подключать библиотеки в CodeBlocks? Как добавить urlmon.h к остальным инклудам ?
Попробовал так #include "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\UrlMon.h" Еще больше ошибок стало. Закинул его сюда C:\Program Files\CodeBlocks\MinGW\include , подключаю #include <urlmon.h> Те же самый ошибки Code: \Documents\CodeBlocks\myC\main.c|4|error: urlmon.h: No such file or directory| \Documents\CodeBlocks\myC\main.c||In function 'main':| \Documents\CodeBlocks\myC\main.c|34|warning: implicit declaration of function 'URLDownloadToFile'| \Documents\CodeBlocks\myC\main.c|41|warning: unused variable 'nRet'| ||=== Build finished: 1 errors, 2 warnings ===|