读书人

请问有关Windows服务的有关问题

发布时间: 2012-01-19 20:57:58 作者: rapoo

请教有关Windows服务的问题,高手请进
我有一个应用程序control1.exe,还有一个WINDOWS服务,server1.exe,我怎么才能在control1.exe中点击 "装载服务 "时把server1.exe加入WINDOWS服务中,然后怎么样才能在control1.exe控制server1.exe的启动和停止?分不多,小弟在此谢过。

[解决办法]
艾,帮up
[解决办法]
楼主的问题,“启动和停止服务”,是非常基本的Win32 Service编程问题啊,为何不自己查MSDN,MSDN里甚至有现成的代码供你拷贝的啊!

MSDN位置:ms-help://MS.MSDNQTR.2003APR.1033/dllproc/base/services.htm,打开你的MSDN,在地址栏里粘贴这个地址并回车。

在打开的页面里你会看到“About Services、Using Services、Service Reference”三个连接,进入“Using Services”,在页面靠下部,你会看到“Starting a service、Stopping a service”连接……
[解决办法]
以下代码是我将迅雷写入服务的一个例子,参考一下


SC_HANDLE schSCManager=NULL;
SC_HANDLE schService=NULL;

schSCManager = OpenSCManager(
NULL, // local machine
NULL, // ServicesActive database
SC_MANAGER_ALL_ACCESS); // full access rights

if (schSCManager == NULL)
{
AfxMessageBox( "OpenSCManager failed! ");
}

LPCTSTR lpszBinaryPathName = "C:\\Program Files\\Thunder Network\\Thunder\\Thunder.exe ";
LPCTSTR lpszDisplayName = "thunder ";
schService = CreateService(
schSCManager, // SCManager database
"under ", // name of service
lpszDisplayName, // service name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS, // service type
SERVICE_AUTO_START, // start type
SERVICE_ERROR_NORMAL, // error control type
lpszBinaryPathName, // service 's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL); // no password

if (schService == NULL)
AfxMessageBox( "CreateService failed! ");
else
AfxMessageBox( "CreateService successed! ");

if (!StartService(
schService, // handle to service
0, // number of arguments
NULL) ) // no arguments
{
AfxMessageBox( "StartService failed! ");
}
else
{
AfxMessageBox( "Service start pending! ");
}
CloseServiceHandle(schService);
CloseServiceHandle(schSCManager);
[解决办法]
UP

读书人网 >VC/MFC

热点推荐