您的位置:首页 > 编程语言 > C语言/C++

c/c++编写window服务的授权服务(二)

2011-12-03 01:22 274 查看
//c/c++编写window服务的授权服务(二)

//定义授权服务的头文件LicenseService.h

#pragma once
//建立工程:win32控制平台应用程序
//LicenseService.cpp
//用C/C++编写的Window服务一例
//安装与反安装批处理.bat
//方法一:
//echo sc delete LicenseService
//echo sc create LicenseService binpath= E:\Debug\LicenseService.exe
//方法二:
//LicenseService.exe uninstall
//LicenseService.exe install
//LicenseService.exe exec

#include <winsock2.h>

#include <windows.h>
#include <stdio.h>
#include <iostream>
//#include <comdef.h>
#include <tchar.h>
#include <comutil.h>

#pragma comment(lib,"WS2_32.lib")

#define SLEEP_TIME 5000
#define LogFileName "LicenseService.txt"
#define MAX_PENDING_CONNECTS   4

using namespace std;
char* ServiceName="LicenseService";

enum EnumRunState
{
None=0,
Running=1,
Stoped=2,
Pause=3,
};

EnumRunState RunState;

WCHAR* CharPtr2ACharPtr(const char* src);
int WriteToLog(char* str);
char* GetCurDir(void);
char* CurExeDir;  //全局变量当前可执行文件所在目录
int ReplaceStr(char *sSrc, char *sMatchStr, char *sReplaceStr);
char* UnionStr(const char* A,const char* B);
bool EqStr(const char* A,const char* B);
bool IsNumber(string str);
char* WinApi_Year_Month_Day();
//日期比较函数
unsigned long Compare_To_Date(char* datetime1,char* datetime2);
unsigned long Compare_To_Current_Date(char* datetime);
unsigned long Validate_Date(char* date,unsigned short * year,unsigned short * month,unsigned short * day);
//获取机器码函数
char* GetMachineCode(void);
char* GetCpuId(void);
char* md5(char* src);
//有使用权函数
bool IsLencense(void);
//获取ServerConfig.ini参数函数
bool GetServerConfig_ini(void);
//------------------------------------------
//定义文件操作的函数
//属性
FILE* fp;
char* filepath;
//方法
bool OpenFile(void);
int EndFile(void);
char* NextLine(void);
int CloseFile(void);
//------------------------------------------
//ServerConfig.ini
//服务器配置文件的全局参数变量
char* host;
char* port;
char* todate;
char* code;
//------------------------------------------
//定义变量和方法
SERVICE_STATUS ServiceStatus;
SERVICE_STATUS_HANDLE hStatus;
HANDLE terminateEvent; //事件
HANDLE threadHandle;   //线程
//定义服务器控制函数
void ServiceMain(int argc,char** argv);
void ControlHandler(DWORD request);
//开始主机+端口监听函数  //Socket监听程序函数
void StartHostPortListen(char* ipaddr,int port);
DWORD WINAPI HandleSocket(LPVOID lpParam);  //处理Socket请求函数
//
int InitService();
BOOL RunService(WCHAR* sSvcName);
VOID ResumeService();
VOID PauseService();
VOID StopService();
VOID terminate(DWORD error);
//
BOOL SendStatusToSCM (DWORD dwCurrentState,
DWORD dwWin32ExitCode,
DWORD dwServiceSpecificExitCode,
DWORD dwCheckPoint,
DWORD dwWaitHint);
//
void InstallService();
void UninstallService();
//
DWORD WINAPI ServiceThread(LPDWORD param);
//---the--end----
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: