各位高手:
要把一个可执行文件编写成WindowsXP下的系统服务,应该怎么编写?
要把一个可执行文件编写成WindowsXP下的系统服务,应该怎么编写?
解决方案 »
- 注册表中Clsid和Interface中的GUID什么关系
- 路过就进来看看,,寻求兼职(武汉或上海)
- 怎样让对话框初始化显示时最大化显示而不是全屏幕全屏显示?
- Unicode下XML文件中如何保存二进制数据?
- 那位ggjj能告诉我e话通是怎么做的??
- 200分求指纹预处理滤波增强算法(最好有源码),解决马上给分!!!
- 请问怎样显示一个自绘的光标??
- 分已送干,问题没解决,UTF-8(Unicode) 字符串转为AnsiString,解决汉字乱码的问题
- 找成都市熟悉MCS-51单片机的朋友
- DWORD是什么数据类型啊?
- 求一个完整的VC小程序
- IOCP中,有可能出现数据包发送完成,但并不返回的情况不?
在网上search 下
//添加服务
BOOL AddServices()
{
char name[100];
char info[200];
char path[300]; printf("请输入服务名\n\n");
scanf ("%s",&name);
printf("请输入服务描述\n\n");
scanf ("%s",&info);
printf("请输入程序路径\n\n");
scanf ("%s",&path); SC_HANDLE manager=NULL;
SC_HANDLE service=NULL; if((manager=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE))==NULL)
{
printf("OpenSCManager Error");
}
service=CreateService(
manager,name,info,
SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
path, 0, 0, 0, 0, 0 );
if(service)
printf("服务创建成功\n\n");
else
printf("服务创建失败\n\n"); CloseServiceHandle(service);
CloseServiceHandle(manager);
return 0;
}//删除服务
BOOL DelServices()
{
char name[100];
SC_HANDLE scm;
SC_HANDLE service;
SERVICE_STATUS status; printf("请输入要删除的服务名\n\n");
scanf ("%s",&name); if((scm=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE))==NULL)
{
printf("OpenSCManager Error\n");
}
service=OpenService(scm,name,SERVICE_ALL_ACCESS|DELETE);
if (!service)
printf("OpenService error!\n"); BOOL isSuccess=QueryServiceStatus(service,&status);
if (!isSuccess)
printf("QueryServiceStatus error!\n"); if ( status.dwCurrentState!=SERVICE_STOPPED )
{ isSuccess=ControlService(service,SERVICE_CONTROL_STOP,&status);
if (!isSuccess )
printf("Stop Service error!\n");
Sleep( 500 ); } isSuccess=DeleteService(service);
if (!isSuccess)
printf("删除服务失败!");
else
printf("删除服务成功!"); CloseServiceHandle(service );
CloseServiceHandle(scm);
return 0;
}