设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3096|回复: 6

[C++语言] Service

[复制链接]

3

主题

0

好友

115

积分

注册会员

Rank: 2

性别
保密
发表于 2013-6-5 10:03:24 |显示全部楼层
10积分

3

主题

0

好友

115

积分

注册会员

Rank: 2

性别
保密
发表于 2013-6-5 10:04:06 |显示全部楼层
#pragma once

#define WIN32_LEAN_AND_MEAN             //  从 Windows 头文件中排除极少使用的信息
// Windows 头文件:
#include <winsock2.h>
#include <tchar.h>

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "mswsock.lib")


class CService
{
public:
CService(void);
~CService(void);

bool Install(LPCTSTR ServiceName);


////VOID Install(LINGER ServiceName);

VOID CtrlHandlerCallback(DWORD opCode);
VOID RunCallback(DWORD argumentCount , LPTSTR *arguments);
private:
TCHAR mServiceName[MAX_PATH];
};


.CPP

#pragma once
#include"Service.h"


/*VOID WINAPI RunCallback(DWORD argumentCount , LPTSTR *arguments)
{
Service.RunCallback(argumentCount , arguments);

return;
}

VOID WINAPI CtrlHandlerCallback(DWORD opCode)
{
Service.CtrlHandlerCallback(opCode);

return;
}


CService::CService(void)
{
}


CService::~CService(void)
{
}
*/

bool CService::Install(LPCTSTR ServiceName)
{
TCHAR ServiceFileName [MAX_PATH] = {0,}; //MAX_PATH
SC_HANDLE ServiceControlManager = NULL;
SC_HANDLE ServiceHandle = NULL;

if (!ServiceName) return FALSE;

//获得运行文件的名称
ServiceFileName [0] = ' "';
GetModuleFileName(NULL, ServiceFileName + 1, MAX_PATH - 1) ;
_tcscat_s(ServiceFileName, MAX_PATH, _T("\"")) ;

//通过Service创建选项打开SCM
ServiceControlManager = OpenSCManager (NULL, NULL, SC_MANAGER_CREATE_SERVICE) ;
if ( !ServiceControlManager) return FALSE;

//Service创建为SERVICE_WIN32_OWN_PROCESS形态
CreateService( ServiceControlManager,
  ServiceName, //Service名称
  ServiceName, //显示的名称设置为一致。
  SERVICE_ALL_ACCESS, //可以进行所有的访问
  SERVICE_WIN32_OWN_PROCESS, //WIN 32形态的文件
  SERVICE_DEMAND_START,
  SERVICE_ERROR_NORMAL,
  ServiceFileName,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL);

//创建成功时返回
if ( !ServiceHandle) {
  //失败
  CloseServiceHandle(ServiceControlManager) ; return FALSE;
}

//关闭使用的句柄
CloseServiceHandle(ServiceHandle) ;
CloseServiceHandle(ServiceControlManager) ;

return TRUE;
}

/*void main ()
{
}
*/
回复

使用道具 评分 举报

27

主题

4

好友

228

积分

中级会员

Rank: 3Rank: 3

生肖
星座
射手座
性别
保密

最佳新人 活跃会员

发表于 2013-6-14 16:18:23 |显示全部楼层
打浆来了·
回复

使用道具 评分 举报

65

主题

3

好友

739

积分

超级版主

Rank: 8Rank: 8

自我介绍
新年第一天据说有雨,全民齐赏日出的计划恐要泡汤。”宋仁宗拍着包拯的肩,“朕决定把你悬挂在城门上。”“但微臣额上的不是太阳是月亮啊!”“没事,挂久一点就会升级成太阳
生肖
星座
狮子座
性别

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 论坛元老

发表于 2013-6-14 22:51:53 |显示全部楼层
你的问题是什么呢
回复

使用道具 评分 举报

3

主题

1

好友

114

积分

注册会员

Rank: 2

自我介绍
胆小,诚实,对朋友认真,不喜欢说
生肖
星座
双子座
性别
保密

最佳新人

发表于 2013-6-29 00:36:38 |显示全部楼层
没有问题!
有什么不知道的地方 可以来yy 4350 哦!那里高手很多。
回复

使用道具 评分 举报

0

主题

0

好友

486

积分

版主

Rank: 7Rank: 7Rank: 7

生肖
星座
水瓶座
性别

最佳新人 活跃会员 论坛元老

发表于 2013-9-9 09:02:23 |显示全部楼层
回复

使用道具 评分 举报

8

主题

2

好友

169

积分

版主

Rank: 7Rank: 7Rank: 7

生肖
星座
双子座
性别
发表于 2013-10-2 09:03:00 |显示全部楼层
哈哈哈,布吉岛
回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语、计算机论坛 ( 粤ICP备12031577 )    

GMT+8, 2020-10-1 09:55 , Processed in 0.185423 second(s), 34 queries .

回顶部