• <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://www.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://www.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)論

            閱讀排行榜

            AV无码久久久久不卡蜜桃| 久久午夜福利无码1000合集| 久久99国产精品99久久| 伊人久久大香线蕉精品| 久久国产乱子伦精品免费午夜| 日韩久久无码免费毛片软件| 性做久久久久久久| 日韩亚洲欧美久久久www综合网| 热综合一本伊人久久精品| 久久丫精品国产亚洲av| 成人精品一区二区久久久| 日本五月天婷久久网站| 97精品国产97久久久久久免费| 久久精品国产精品亚洲精品| 久久精品这里热有精品| 久久强奷乱码老熟女网站| 国内精品久久久久久麻豆| 久久精品国产亚洲av日韩| 久久精品国产男包| 国产精品无码久久四虎| 91久久精一区二区三区大全| 亚洲国产精品久久久天堂| 亚洲精品成人久久久| 精品一久久香蕉国产线看播放| A狠狠久久蜜臀婷色中文网| 99精品国产综合久久久久五月天| 久久WWW免费人成—看片| 久久久久久狠狠丁香| 99久久免费国产特黄| 99久久精品影院老鸭窝| 999久久久免费精品国产| 久久亚洲精品中文字幕| 色88久久久久高潮综合影院| av色综合久久天堂av色综合在 | 久久99热精品| 日本久久久久亚洲中字幕| 亚洲国产精品成人久久| 中文字幕无码免费久久| 综合网日日天干夜夜久久| 久久国产免费观看精品3| 国产精品久久永久免费|