Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Запустить процесс как службу[Какие есть варианты] |

07.04.2010, 12:24
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Запустить процесс как службу[Какие есть варианты]
ЯП любой 
|
|
|

07.04.2010, 12:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Ну вообще с самого начала нужно писать службу.
Вообще процесс службы отличается от обычного процесса тока небольшими изменениями в коде. А именно: Регистрации функции службы и регистрации функции контроля.
Затем служба создается или через специально созданные функции или через реестр. Первый способ более правильный.
Затем всё запускается через те же функции.
Смотри 5005 статей по делфи
1) написание сервиса:
- Сервисы в Delphi на чистом API
- Написание сервисов Windows NT на WinAPI
2) установка сервиса (программно)
- Инсталляция и удаление сервисов под НТ
3) управление сервисом
- Остановка и запуск сервисов
Если нужно любую прогу запускать, то напиши простенькую службу которая будет запускать твою прогу.
Если ты обычную прогу запустишь как службу, то система может её выкинуть по таймауту, потому что она не зарегает функции службы и контроля.
-----------------------
Еще можно создать службу через реестр. Но винда может не сразу запускать её, а тока после ребута.
-----------------------
А вообще что тебе нужно именно?
- использование контроля?
- использование прав системы?
- просто чтобы был такой типа автозапуск?
- другие вариант?
Последний раз редактировалось slesh; 07.04.2010 в 12:39..
|
|
|

07.04.2010, 13:15
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Нужно прописать свою прогу в сервис(но не через реестр, а с помощью API), и автозапускать её при старте компа.
|
|
|

07.04.2010, 15:37
|
|
Новичок
Регистрация: 06.04.2010
Сообщений: 7
Провел на форуме: 34985
Репутация:
0
|
|
Код:
SC_HANDLE hSCM = ::OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
if( hSCM == NULL )
return FALSE;
SC_HANDLE hService = ::CreateService(
hSCM, _T("MyServiceName"), _T("MyServiceName"),
SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
_T("Path To Executable"), NULL, NULL, NULL, NULL, NULL);
if( hService )
::CloseServiceHandle( hService );
if( hSCM )
::CloseServiceHandle( hSCM );
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|