NT服务程序我会做了,但服务功能怎么实现我不知道。请高手帮忙(急)
Kaile 2000-07-13 05:27:00 我想自启动一个服务 服务功能程序是d:\temp\zbserver.exe 代码如下: SC_HANDLE schService;
SC_HANDLE schSCManager;
TCHAR szPath[512];
/*
if ( GetModuleFileName( NULL, szPath, 512 ) == 0 )
{
_tprintf(TEXT("Unable to install %s - %s\n"), TEXT(SZSERVICEDISPLAYNAME), GetLastErrorText(szErr, 256));
return;
}
*/
strcpy(szPath,"D:\\temp\\zbserver.exe");
schSCManager = OpenSCManager(
NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
);
if ( schSCManager )
{
schService = CreateService(
schSCManager, // SCManager database
TEXT(SZSERVICENAME), // name of service
TEXT(SZSERVICEDISPLAYNAME), // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS, // service type
SERVICE_DEMAND_START, // start type
SERVICE_ERROR_NORMAL, // error control type
szPath, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
TEXT(SZDEPENDENCIES), // dependencies
NULL, // LocalSystem account
NULL); // no password
if ( schService )
{
if(StartService(schService,0,0))
printf("%s started.\n", SZSERVICEDISPLAYNAME);
else
printf("StartService failed \n" );
_tprintf(TEXT("%s installed.\n"), TEXT(SZSERVICEDISPLAYNAME) );
CloseServiceHandle(schService);
}
else
{
_tprintf(TEXT("CreateService failed - %s\n"), GetLastErrorText(szErr, 256));
}
CloseServiceHandle(schSCManager);
}
else
_tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(szErr,256));
每次运行都无法启动zbserver.exe ,如果不用zbserver.exe用上三行则可以启动服务但实现不了我的功能,请高手指点