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

            代碼是咒語,我是魔法師

            Win32服務控制類

            /**
            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);??

            ?/**? 返回狀態:
            ??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();???//如果返回真,配置狀態填充在 m_config? 中
            ?SC_HANDLE??? GetHandle();??//需要禁用、啟動服務,使用 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 橙子 閱讀(502) 評論(1)  編輯 收藏 引用 所屬分類: Win32

            評論

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

            謝謝.  回復  更多評論   

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

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            相冊

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            大蕉久久伊人中文字幕| 久久久久久久亚洲精品| 99久久99久久| 久久亚洲精品无码观看不卡| 一本一本久久a久久精品综合麻豆| 99久久国产亚洲综合精品| 国内精品久久久久久野外| 欧美亚洲国产精品久久| 色综合久久中文色婷婷| 97精品依人久久久大香线蕉97 | 久久精品国产久精国产果冻传媒| 国产高潮国产高潮久久久| 久久久久国色AV免费观看| 久久久久99精品成人片欧美| 久久毛片一区二区| 狠狠精品干练久久久无码中文字幕| 无码人妻精品一区二区三区久久| 狠狠综合久久综合中文88| 久久99精品久久久久久动态图| 久久精品中文字幕一区| 久久亚洲国产最新网站| 久久久久成人精品无码| 2021久久国自产拍精品| 无码国产69精品久久久久网站| 精品久久久久成人码免费动漫| 国产精品永久久久久久久久久| 久久精品国产精品国产精品污| 亚洲愉拍99热成人精品热久久| 久久人妻AV中文字幕| 人人妻久久人人澡人人爽人人精品 | 久久精品国产亚洲AV电影| 久久人人爽人人爽人人av东京热 | 国产高潮国产高潮久久久91| 久久精品一区二区国产| 国产精品一区二区久久| 欧美激情精品久久久久| 精品国产一区二区三区久久| 欧美精品一本久久男人的天堂| 精品综合久久久久久888蜜芽| 久久综合精品国产二区无码| 精品久久久久中文字幕日本|