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

            ?/**? 返回狀態:
            ??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://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 橙子 閱讀(502) 評論(1)  編輯 收藏 引用 所屬分類: Win32

            評論

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

            謝謝.  回復  更多評論   

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

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            相冊

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            久久激情五月丁香伊人| 国产亚洲精久久久久久无码AV| 久久夜色撩人精品国产小说| 久久99久久99精品免视看动漫| 免费无码国产欧美久久18| 久久综合成人网| 亚洲欧洲久久久精品| 精品欧美一区二区三区久久久| 热久久国产精品| 亚洲国产精品久久久久婷婷软件| 国产精品久久久久影院嫩草| 国产V综合V亚洲欧美久久| 久久久久无码精品国产| 日日噜噜夜夜狠狠久久丁香五月| 久久国产乱子伦免费精品| 欧美熟妇另类久久久久久不卡| 亚洲AV日韩AV永久无码久久| 色欲久久久天天天综合网| 久久久久久无码Av成人影院| 久久久久免费看成人影片| 国产精品无码久久综合 | 国内精品九九久久久精品| 久久国语露脸国产精品电影| 久久人人爽人人爽人人片av麻烦| 麻豆AV一区二区三区久久 | 国产一区二区精品久久| 国内精品久久久久久久久| 94久久国产乱子伦精品免费| 久久久久这里只有精品 | 久久99精品国产99久久6男男| 精品久久久无码人妻中文字幕豆芽| 久久国产乱子伦免费精品| 91精品国产高清久久久久久国产嫩草| 久久电影网| 色偷偷久久一区二区三区| 中文字幕亚洲综合久久| 日日狠狠久久偷偷色综合0| 婷婷伊人久久大香线蕉AV| 国产福利电影一区二区三区,免费久久久久久久精| 久久久久久亚洲精品无码| 亚洲中文字幕无码一久久区|