• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Life & Code

            代碼是咒語(yǔ),我是魔法師

            Win32服務(wù)控制類

            /**
            W32Server.h???
            http://m.shnenglu.com/lovelypig? 橙子
            */
            #ifndef? _CW32SERVER_H
            #define? _CW32SERVER_H
            #include <windows.h>
            #include <stdio.h>

            ?

            class CW32Server
            {
            ?TCHAR??m_szServerName[MAX_PATH];
            ?SC_HANDLE?? m_hService;
            ?SC_HANDLE?? m_hScm;
            ?SERVICE_STATUS ServiceStatus;
            ?BYTE??m_cfgBuf[4096];
            public:

            ?CW32Server(void);
            ?CW32Server(const TCHAR *strServerName);?
            ?BOOL??? Open(const TCHAR *strServerName);??

            ?/**? 返回狀態(tài):
            ??SERVICE_CONTINUE_PENDING The service continue is pending.
            ??SERVICE_PAUSE_PENDING The service pause is pending.
            ??SERVICE_PAUSED The service is paused.
            ??SERVICE_RUNNING The service is running.
            ??SERVICE_START_PENDING The service is starting.
            ??SERVICE_STOP_PENDING The service is stopping.
            ??SERVICE_STOPPED The service is not running.
            ?*/
            ?DWORD?GetState();?????
            ?BOOL??? SetState(DWORD state);
            ?BOOL??? Start();
            ?BOOL??? Stop();

            ?/**
            ??SERVICE_AUTO_START??A service started automatically by the service control manager during system startup.
            ??SERVICE_BOOT_START??A device driver started by the system loader. This value is valid only for driver services.
            ??SERVICE_DEMAND_START?A service started by the service control manager when a process calls the StartService function.
            ??SERVICE_DISABLED??A service that cannot be started. Attempts to start the service result in the error code ERROR_SERVICE_DISABLED.
            ??SERVICE_SYSTEM_START
            ?*/
            ?BOOL??? GetConfig();???//如果返回真,配置狀態(tài)填充在 m_config? 中
            ?SC_HANDLE??? GetHandle();??//需要禁用、啟動(dòng)服務(wù),使用 ChangeServiceConfig(GetHandle(),...)?? 查看MSDN
            ?~CW32Server(void);

            ?QUERY_SERVICE_CONFIG *m_config;
            };


            #endif


            /**
            W32Server.cpp
            http://m.shnenglu.com/lovelypig? 橙子
            */
            #include ".\w32server.h"
            #include <assert.h>

            CW32Server::CW32Server(void)
            {
            ?memset((char*)&m_szServerName,0,sizeof(TCHAR)*MAX_PATH);
            ?memset((char*)&m_config,0,sizeof(m_config));
            ?m_hService = 0;
            ?m_hScm?? = 0;
            ?m_config = (QUERY_SERVICE_CONFIG*)m_cfgBuf;
            }

            CW32Server::CW32Server(const TCHAR *strServerName)
            {?
            ?assert(strServerName);

            ?CW32Server();
            ?_tcscpy(m_szServerName,strServerName);?

            ?m_hScm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
            ?if(!m_hScm)
            ?{
            ??return ;
            ?}
            ?m_hService=OpenService(m_hScm,strServerName,SERVICE_ALL_ACCESS);
            ?if(!m_hService)
            ?{
            ??CloseServiceHandle(m_hScm);
            ??m_hScm = NULL;
            ??? }
            }
            CW32Server::~CW32Server(void)
            {
            ?if( m_hScm )
            ?{
            ??CloseServiceHandle(m_hScm);
            ??m_hScm = NULL;
            ?}
            ?if( m_hService )
            ?{
            ??CloseServiceHandle(m_hService);
            ??m_hService = NULL;
            ?}
            }

            BOOL?? CW32Server:: Open(const TCHAR *strServerName)
            {
            ?assert(strServerName);

            ?if( m_hScm )
            ?{
            ??CloseServiceHandle(m_hScm);
            ??m_hScm = NULL;
            ?}
            ?if( m_hService )
            ?{
            ??CloseServiceHandle(m_hService);
            ??m_hService = NULL;
            ?}

            ?_tcscpy(m_szServerName,strServerName);?
            ?m_hScm=OpenSCManager(0,0,SC_MANAGER_CREATE_SERVICE);
            ?if(!m_hScm)
            ?{
            ??return FALSE;
            ?}
            ?m_hService=OpenService(m_hScm,strServerName,SERVICE_ALL_ACCESS);
            ?if(!m_hService)
            ?{
            ??CloseServiceHandle(m_hScm);
            ??m_hScm = NULL;
            ??return FALSE;
            ?}
            ?return TRUE;
            }

            DWORD?CW32Server::GetState()
            {?
            ?assert(m_hService);

            ??? if(QueryServiceStatus(m_hService,&ServiceStatus))
            ?{
            ??return ServiceStatus.dwCurrentState;
            ?}
            ?else
            ?{
            ??return 0xffffffff;
            ?}
            }

            BOOL??? CW32Server::SetState(DWORD state)
            {
            ?assert(m_hService);

            ?return ControlService(m_hService,state,&ServiceStatus);
            }

            BOOL??? CW32Server::Start()
            {
            ?assert(m_hService);

            ?return StartService(m_hService,0,NULL);

            }

            BOOL??? CW32Server::Stop()
            {
            ?assert(m_hService);

            ?return ControlService(m_hService,SERVICE_CONTROL_STOP,&ServiceStatus);
            }

            BOOL??? CW32Server::GetConfig()
            {
            ?assert(m_hService);
            ?
            ?DWORD cbBufSize = 4096;
            ?DWORD pcbBytesNeeded = 4096;
            ?return QueryServiceConfig(m_hService,m_config,cbBufSize, &pcbBytesNeeded);
            }

            SC_HANDLE? CW32Server::GetHandle()
            {
            ?assert(m_hService);
            ?return m_hService;
            }

            posted on 2006-04-01 09:55 橙子 閱讀(506) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Win32

            評(píng)論

            # re: Win32服務(wù)控制類 2007-01-22 16:40 ss5309

            謝謝.  回復(fù)  更多評(píng)論   

            <2006年4月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            相冊(cè)

            收藏夾

            搜索

            最新評(píng)論

            閱讀排行榜

            久久综合亚洲色HEZYO社区| 99久久精品国产麻豆| 久久97久久97精品免视看| 草草久久久无码国产专区| 色综合久久中文综合网| 久久久精品久久久久久| 亚洲AV乱码久久精品蜜桃| 国产精品一区二区久久精品| 很黄很污的网站久久mimi色| 一本久久a久久精品综合香蕉| 欧美一区二区三区久久综合 | 久久久这里只有精品加勒比| 久久精品国产久精国产思思| 国产日韩欧美久久| 精品综合久久久久久888蜜芽| 久久亚洲天堂| AAA级久久久精品无码区| 中文字幕精品久久久久人妻| 欧美激情精品久久久久| 天天爽天天狠久久久综合麻豆| 99久久精品无码一区二区毛片| 伊人久久大香线蕉亚洲五月天| 久久精品无码一区二区日韩AV| 国产精品9999久久久久| 亚洲精品tv久久久久久久久| 久久亚洲中文字幕精品一区| 亚洲成人精品久久| 97久久综合精品久久久综合| 亚洲αv久久久噜噜噜噜噜| 久久亚洲国产最新网站| 国产一区二区三精品久久久无广告| 国产综合久久久久| 2021精品国产综合久久| 久久久久亚洲Av无码专| 精品久久久无码人妻中文字幕| 99精品国产免费久久久久久下载| 久久久久国产日韩精品网站| 久久国产热这里只有精品| 久久99精品久久久久久野外| 久久久久久国产精品无码下载| 久久人人爽人人爽AV片|