SKY外语计算机学习

标题: Service [打印本页]

作者: 1046945059    时间: 2013-6-5 10:03
标题: Service


作者: 1046945059    时间: 2013-6-5 10:04
#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 ()
{
}
*/

作者: 2012    时间: 2013-6-14 16:18
打浆来了·
作者: rogan    时间: 2013-6-14 22:51
你的问题是什么呢
作者: 格式化    时间: 2013-6-29 00:36
没有问题!
作者: 骏马    时间: 2013-9-9 09:02

作者: 一米阳光    时间: 2013-10-2 09:03
哈哈哈,布吉岛




欢迎光临 SKY外语计算机学习 (http://skywj.com/) Powered by Discuz! X2.5