`
175203509
  • 浏览: 6476 次
  • 性别: Icon_minigender_1
  • 来自: 淄博
社区版块
存档分类
最新评论

c++builder控制服务

阅读更多
//判断msdtc服务是否启动
      if(!IsServerRunning("msdtc")){
      // Application->MessageBox("未启动","提示",MB_OK);
        //启动 msdtc 服务
        xxStartService("msdtc");
      }


/

bool __fastcall TfrmMain::xxStartService(LPCSTR ServiceName)
  {
          bool   ret;
          SC_HANDLE   hService;
          SC_HANDLE   hManager;
          SERVICE_STATUS   stus; 
  
          hManager   =   OpenSCManager(NULL,
                  0,   SC_MANAGER_ALL_ACCESS); 
          if   (hManager==NULL)   return   false; 
          hService   =   OpenService(hManager, 
                  ServiceName,   SERVICE_ALL_ACCESS);
          if   (hService   &&   QueryServiceStatus(hService,&stus)){
              //如果服务在运行
              if   (   stus.dwCurrentState     ==   SERVICE_STOPPED   ){
                          //启动服务
                ret   =   StartService(hService,   NULL,   NULL   );
              } 
          } 
          else   { 
                ret   =   false; 
          } 
          if   (hService   !=   NULL) 
                          CloseServiceHandle(hService); 
                          
          CloseServiceHandle(hManager); 
  
          return   ret; 
  }


bool __fastcall TfrmMain::xxStopService(LPCSTR ServiceName)
  { 
          bool   ret; 
          SC_HANDLE   hService; 
          SC_HANDLE   hManager; 
          SERVICE_STATUS   stus;
  
          hManager   =   OpenSCManager(NULL, 
                  0,   SC_MANAGER_ALL_ACCESS); 
          if   (hManager==NULL)   return   false;
          hService   =   OpenService(hManager, 
                  ServiceName,   SERVICE_ALL_ACCESS);
          if   (hService   &&   QueryServiceStatus(hService,&stus))   {

                //判断这个服务是否在运行
                if   (   stus.dwCurrentState     ==   SERVICE_RUNNING   ){

                                //              //服务名称 关闭服务
                      ret   =   ControlService(hService,SERVICE_CONTROL_STOP,&stus); 
                    }
              }
          else 
                  ret   =   false; 
          if   (hService   !=   NULL) 
                  CloseServiceHandle(hService); 
  
          CloseServiceHandle(hManager);
  
          return   ret;
  }

   //判断系统服务是否启动
   bool __fastcall TfrmMain::IsServerRunning(LPCSTR ServiceName)
  { 
          SC_HANDLE   hScManage   =   OpenSCManager("",NULL,SC_MANAGER_ALL_ACCESS);
         
          SERVICE_STATUS   SrvStatus; 
        
          DWORD   dwStat   =   0; 
          
          if(hScManage   >   0) 
          {
                 
                  SC_HANDLE   hSrv   =   OpenService(hScManage,ServiceName,SERVICE_QUERY_STATUS);
                  
                  if(hSrv   >   0) 
                  { 
                        
                          if(QueryServiceStatus(hSrv,   &SrvStatus))
                                  dwStat   =   SrvStatus.dwCurrentState;
                        
                          CloseServiceHandle(hSrv);
                  }
          }
          CloseServiceHandle(hScManage);
          return   dwStat   ==   SERVICE_RUNNING;
  }
分享到:
评论
1 楼 gongji 2010-05-04  
原来楼上也是一位borland分子啊,我也是!

相关推荐

    c++ builder 2007 安装程序

    4. **IDE(集成开发环境)**:C++ Builder 2007的IDE提供了一站式的开发体验,包括源代码编辑、项目管理、调试、版本控制和构建工具。它的代码编辑器支持语法高亮、自动完成和错误提示等功能。 5. **数据库支持**:...

    C++ BUILDER 2010 安装序列号

    然而,正如所有商业软件一样,C++ Builder 2010也采用了许可证管理机制来控制软件的合法使用。这通常涉及到安装序列号或激活码的概念。安装序列号是一种由制造商分配的唯一代码,用于验证软件副本的合法性。在C++ ...

    C++Builder Printer打印机程序

    2. **打印API**:C++Builder集成了Windows API,可以通过`Printer`对象来控制打印机。开发者可以设置页边距、纸张尺寸、字体样式等,以及画布上的绘图操作,实现定制化的打印需求。 3. **报表生成**:"report8_11....

    C++ Builder 50经典入门

    ### C++Builder 5.0 经典入门知识点解析 #### 一、C++Builder 5.0 简介 - **定义与背景**:C++Builder 5.0 是由 Interprise(Borland)公司推出的一款基于 C++ 语言的快速应用程序开发(Rapid Application ...

    c++builder自制控件

    C++Builder是一款强大的集成开发环境,它以C++语言为基础,提供了丰富的VCL(Visual Component Library)组件库,使得开发者可以快速构建桌面应用程序。在这个场景中,“自制控件”指的是开发者利用C++Builder的...

    C++Builder6.0 USBHid

    C++Builder 6.0 是一个集成开发环境(IDE),由Borland公司(现为Embarcadero Technologies)开发,主要用于创建C++语言的应用程序。这个标题提及的"C++Builder6.0 USBHid"是指在C++Builder 6.0环境中用于处理USB ...

    C++builder控制数据库输出到excel

    在这个场景中,我们讨论的是如何利用C++Builder来控制数据库,并将数据导出到Excel格式,以便创建专业的报表。 首先,要实现这个功能,你需要C++Builder中的几个关键组件。其中最重要的可能是BDE(Borland Database...

    精彩c++builder 6程序设计.rar

    《精彩c++builder 6程序设计》是一本深入探讨C++Builder 6开发环境和编程技术的资源集合。C++Builder 6是Borland公司(后来被Embarcadero Technologies收购)推出的一款强大的集成开发环境(IDE),它集成了C++...

    c++builder制作的简单系统服务

    6. **控制服务**:一旦安装,你可以通过“服务”管理工具或命令行工具sc.exe来启动、停止或查询服务的状态。 7. **调试服务**:由于服务通常在后台运行,调试可能会比较复杂。C++Builder提供了调试服务的功能,但...

    C++builderjiaocheng.rar_C Builder_C++ Builder_网络 C++builder

    C++Builder是一款由Embarcadero Technologies开发的集成开发环境(IDE),主要用于编写C++语言的应用程序。它结合了强大的编译器、图形化用户界面设计工具和数据库连接能力,为开发者提供了一站式的解决方案。C++...

    C++Builder 资料库

    C++Builder 资料库 提供50多个例子,带目录 1.怎样在C++Builder中创建使用DLL 2.用C++Bulider在WIN.INI中保存信息 3.如何在C++Builder中检测硬件 4.C++Builder如何响应消息及自定义消息 5.利用C++ ...

    C++ Builder做的图书馆系统

    《C++ Builder构建的图书馆管理系统详解》 C++ Builder是一款由Embarcadero Technologies公司推出的集成开发环境(IDE),它以其高效、灵活的C++编程能力,为开发者提供了丰富的工具和库,使得创建桌面应用程序变得...

    C++ builder 6.0 实现摄像头视频捕捉

    8. **GUI设计**:在C++ Builder中,使用VCL组件库创建用户界面,如TForm、TButton、TLabel等,使用户能够控制视频捕获的过程,如开始、暂停、停止等。 9. **错误处理**:在实现过程中,必须考虑各种可能出现的错误...

    C++ Builder 6.0 基础教程

    ### C++ Builder 6.0 基础教程:深入解析关键知识点 #### C++ Builder:集成开发环境的典范 C++ Builder 6.0,作为一款由Borland公司开发的强大集成开发环境(IDE),提供了诸多高效且智能的功能,旨在帮助开发者...

    c++builder 音乐播放器

    C++Builder是一款强大的集成开发环境(IDE),专为使用C++语言进行Windows应用程序开发而设计。在这个场景中,我们讨论的是使用C++Builder构建的音乐播放器应用。音乐播放器是一种常见的多媒体应用程序,它允许用户...

    C++Builder6编程实例精解.pdf

    C++Builder6不仅提高了开发效率,还提供了底层硬件访问的能力,尤其适合于需要高性能和深度系统控制的Win32应用程序开发。相较于早期的版本,C++Builder6加入了更多的网络开发组件,并改善了可视化设计环境,让...

    C++Builder c++builder高级应用开发指南

    《C++Builder高级应用开发指南》是一本专为C++Builder开发者量身打造的专业书籍,旨在帮助读者深入理解和掌握C++Builder的高级特性,提升在实际项目中的开发能力。本书涵盖了多个关键领域,如硬件交互、图形用户界面...

    C++builder_连接USB接口的方法

    ### C++Builder 连接与访问 USB 接口方法详解 #### 标题与描述解析 根据提供的标题“C++builder_连接USB接口的方法”以及描述“C++builder_访问USB接口的方法”,我们可以理解到本篇文章的主要目的是介绍如何在C++...

    C++Builder6编程实例精解

    ### C++Builder6编程实例精解 #### 一、C++Builder6简介及特点 **C++Builder6**是一款由Borland公司推出的强大的32位Windows开发工具,旨在为开发者提供一个高效的环境来创建高性能的Win32应用程序。与早期版本...

Global site tag (gtag.js) - Google Analytics