⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 ice中间件 文件传输原代码 更新为服务形式
💻 CPP
字号:
#include <windows.h>

bool RegisterDriver();
bool UnRegisterDriver();
bool StartDriver();
bool StopDriver();

#define DISPNAME_NAME "UpdateService"
CHAR g_szAppName[256] = {0};


void main(void)
{
	strcpy(g_szAppName,"F:\\TrustDomain3.0\\lib\\UpdateService.exe");
	RegisterDriver();
	StartDriver();
}

bool RegisterDriver()
{
	SC_HANDLE	schSCManager;
    SC_HANDLE   schService;
	
	schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
	
	
	schService = CreateService(schSCManager, DISPNAME_NAME, DISPNAME_NAME, SERVICE_ALL_ACCESS, 
		SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS, SERVICE_AUTO_START, 
		SERVICE_ERROR_NORMAL, g_szAppName, NULL, NULL, NULL, NULL, NULL);
    if ( schService == NULL )
	{
        return GetLastError();
	}
	
    CloseServiceHandle( schService );
	CloseServiceHandle( schSCManager );
    return TRUE;
}

bool UnRegisterDriver()
{
	SC_HANDLE	schSCManager;
    SC_HANDLE   schService;
    BOOL        ret;
	
	StopDriver();
	schSCManager = OpenSCManager(	NULL,                 // machine (NULL == local)
		NULL,                 // database (NULL == default)
		SC_MANAGER_ALL_ACCESS // access required
								);
	
    schService = OpenService( schSCManager,
		DISPNAME_NAME,
		SERVICE_ALL_ACCESS
		);
	
    if ( schService == NULL )
        return FALSE;
	
    ret = DeleteService( schService );
	if(ret == NULL )
	{
		return FALSE;
	}
    CloseServiceHandle( schService );
	
	CloseServiceHandle( schSCManager );
	
	return TRUE;
}

bool StartDriver()
{
	SC_HANDLE	schSCManager;
    SC_HANDLE   schService;
    BOOL        ret;
	
	schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
	
	
	
    schService = OpenService( schSCManager,
		DISPNAME_NAME,
		SERVICE_ALL_ACCESS
		);
    if ( schService == NULL )
        return FALSE;
	
    ret = StartService( schService, 0, NULL );
	if(
		(ret!=0)||
		(ret==0&&(GetLastError() == ERROR_SERVICE_ALREADY_RUNNING))
		)
	{
		ret = TRUE;
	}
	
    CloseServiceHandle( schService );
	CloseServiceHandle( schSCManager );
	
    return ret;
}


bool StopDriver()
{
	SC_HANDLE	    schSCManager;
    SC_HANDLE       schService;
    BOOL            ret;
    SERVICE_STATUS  serviceStatus;
	
	schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
	
    schService = OpenService( schSCManager, DISPNAME_NAME, SERVICE_ALL_ACCESS );
	
    if ( schService == NULL )
        return FALSE;
	
    ret = ControlService( schService, SERVICE_CONTROL_STOP, &serviceStatus );
	DWORD result = GetLastError();
    CloseServiceHandle( schService );
	CloseServiceHandle( schSCManager );
	return TRUE;
}











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -