vc/mfc 数据库连接字符串的写法

/*

名称:系统服务管理

语言:C++

介绍:对Windows系统服务的状态获取,服务暂停,开启,停止操作代码

*/

void CStartServiceDlg::OnBnClickedButton1()

{

       // 打开服务管理对象

    SC_HANDLE hSC = ::OpenSCManager( NULL, 

                        NULL, GENERIC_EXECUTE);

    if( hSC == NULL)

    {

        TRACE( "open SCManager error");

        return;

    }

    // 打开www服务。

    SC_HANDLE hSvc = ::OpenService( hSC, "W3SVC",

        SERVICE_START | SERVICE_QUERY_STATUS | SERVICE_STOP);

    if( hSvc == NULL)

    {

        TRACE( "Open www erron。");

        ::CloseServiceHandle( hSC);

        return;

    }

    // 获得服务的状态

    SERVICE_STATUS status;

    if( ::QueryServiceStatus( hSvc, &status) == FALSE)

    {

        TRACE( "Get Service state error。");

        ::CloseServiceHandle( hSvc);

        ::CloseServiceHandle( hSC);

        return;

    }

    //如果处于停止状态则启动服务,否则停止服务。

    if( status.dwCurrentState == SERVICE_RUNNING)

    {

        // 停止服务

        if( ::ControlService( hSvc, 

          SERVICE_CONTROL_STOP, &status) == FALSE)

        {

            TRACE( "stop service error。");

            ::CloseServiceHandle( hSvc);

            ::CloseServiceHandle( hSC);

            return;

        }

        // 等待服务停止

        while( ::QueryServiceStatus( hSvc, &status) == TRUE)

        {

            ::Sleep( status.dwWaitHint);

            if( status.dwCurrentState == SERVICE_STOPPED)

            {

                AfxMessageBox( "stop success。");

                ::CloseServiceHandle( hSvc);

                ::CloseServiceHandle( hSC);

                return;

            }

        }

    }

    else if( status.dwCurrentState == SERVICE_STOPPED)

    {

        // 启动服务

        if( ::StartService( hSvc, NULL, NULL) == FALSE)

        {

            TRACE( "start service error。");

            ::CloseServiceHandle( hSvc);

            ::CloseServiceHandle( hSC);

            return;

        }

        // 等待服务启动

        while( ::QueryServiceStatus( hSvc, &status) == TRUE)

        {

            ::Sleep( status.dwWaitHint);

            if( status.dwCurrentState == SERVICE_RUNNING)

            {

                AfxMessageBox( "start success。");

                ::CloseServiceHandle( hSvc);

                ::CloseServiceHandle( hSC);

                return;

            }

      }

    }

    TRACE( "start error。");

    ::CloseServiceHandle( hSvc);

    ::CloseServiceHandle( hSC);

    return;

}



版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处:
[博客园] http://www.cnblogs.com/jingdian1956/p/5898622.html
[若此文确切存在侵权,请联系本站管理员进行删除!]


--THE END--