//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----