1. unit U_StartServices;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, WinSVC, StdCtrls;
  6. type
  7. TForm1 = class(TForm)
  8. btn_StartServices: TButton;
  9. btn_StopServices: TButton;
  10. procedure btn_StartServicesClick(Sender: TObject);
  11. procedure btn_StopServicesClick(Sender: TObject);
  12. private
  13. { Private declarations }
  14. public
  15. { Public declarations }
  16. end;
  17. var
  18. Form1: TForm1;
  19. function StartServices(const SvrName: string): Boolean;
  20. implementation
  21. {$R *.dfm}
  22. //开启服务
  23. function StartServices(const SvrName: string): Boolean;
  24. var
  25. SCH, SvcSCH: SC_HANDLE;
  26. arg: PChar;
  27. dwStartType: DWORD;
  28. begin
  29. Result := False;
  30. SCH := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
  31. if SCH <= 0 then Exit;
  32. SvcSCH := OpenService(SCH, PChar(SvrName), SERVICE_ALL_ACCESS);
  33. if (ChangeServiceConfig(
  34. SvcSCH, //   handle   of   service
  35. SERVICE_NO_CHANGE, //SERVICE_NO_CHANGE,   //   service   type:   no   change
  36. SERVICE_AUTO_START, //   change   service   start   type
  37. SERVICE_NO_CHANGE, //   error   control:   no   change
  38. nil, //   binary   path:   no   change
  39. nil, //   load   order   group:   no   change
  40. nil, //   tag   ID:   no   change
  41. nil, //   dependencies:   no   change
  42. nil, //   account   name:   no   change
  43. nil, //   password:   no   change
  44. nil)) then
  45. showmessage('Auto Start OK')
  46. else
  47. showmessage('Auto Start Error');
  48. if SvcSCH <= 0 then Exit;
  49. try
  50. Result := StartService(SvcSCH, 0, arg);
  51. CloseServiceHandle(SvcSCH);
  52. CloseServiceHandle(SCH);
  53. except
  54. CloseServiceHandle(SvcSCH);
  55. CloseServiceHandle(SCH);
  56. Exit;
  57. end;
  58. end;
  59. //停止服务
  60. function StopServices(const SvrName: string): Boolean;
  61. var
  62. SCH, SvcSCH: SC_HANDLE;
  63. SS: TServiceStatus;
  64. begin
  65. Result := False;
  66. SCH := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
  67. if SCH <= 0 then Exit;
  68. SvcSCH := OpenService(SCH, PChar(SvrName), SERVICE_ALL_ACCESS);
  69. if SvcSCH <= 0 then Exit;
  70. try
  71. Result := ControlService(SvcSCH, SERVICE_CONTROL_STOP, SS);
  72. CloseServiceHandle(SCH);
  73. CloseServiceHandle(SvcSCH);
  74. except
  75. CloseServiceHandle(SCH);
  76. CloseServiceHandle(SvcSCH);
  77. Exit;
  78. end;
  79. end;
  80. procedure TForm1.btn_StartServicesClick(Sender: TObject);
  81. begin
  82. if StartServices('PolicyAgent') = true then
  83. application.MessageBox(PChar('PolicyAgent 服务启动成功'), PChar('服务信息'), MB_ICONINFORMATION)
  84. else
  85. application.MessageBox(PChar('PolicyAgent 服务启动失败'), PChar('服务信息'), MB_ICONERROR);
  86. end;
  87. procedure TForm1.btn_StopServicesClick(Sender: TObject);
  88. begin
  89. if StopServices('PolicyAgent') = true then
  90. application.MessageBox(PChar('PolicyAgent 服务停止成功'), PChar('服务信息'), MB_ICONINFORMATION)
  91. else
  92. application.MessageBox(PChar('PolicyAgent 服务停止成功'), PChar('服务信息'), MB_ICONERROR);
  93. end;
  94. end.

复制代码

http://www.appweixin.net/thread-67-1-1.html

Delphi启动/停止Windows服务,启动类型修改为"自动"的更多相关文章

  1. delphi 启动停止windows服务 转

    http://blog.csdn.net/haiou327/article/details/6106233 不用cmd用delphi如何实现启动停止windows服务建议参考一下Delphi的Sckt ...

  2. Web启动,停止Windows服务

    When you grow stronger,the world become more dangerous.当你变得越强大,这个世界反而会变得越危险. ServiceModel.cs代码: publ ...

  3. 玩转Windows服务系列——Windows服务启动超时时间

    最近有客户反映,机房出现断电情况,服务器的系统重新启动后,数据库服务自启动失败.第一次遇到这种情况,为了查看是不是断电情况导致数据库文件损坏,从客户的服务器拿到数据库的日志,进行分析. 数据库工作机制 ...

  4. 玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案

    将VS创建的Windows服务项目编译生成的程序,通过命令行 “服务.exe -Service”注册为Windows服务后,就可以通过服务管理器进行管理了. 问题 通过服务管理器进行启动的时候,发现服 ...

  5. MongoDB做为一项windows服务启动

    MongoDB做为一项windows服务启动 Windows版本安装 MongoDB的官方下载站是http://www.mongodb.org/downloads,可以去上面下载最新的对应版本,有32 ...

  6. C#判断程序是由Windows服务启动还是用户启动

    在Windows系统做网络开发,很多时候都是使用Windows服务的模式,但在调度阶段,我们更多的是使用控制台的模式.在开发程序的时候,我们在Program的Main入口进行判断.最初开始使用Envi ...

  7. Linux Systemd——在RHEL/CentOS 7中启动/停止/重启服务

    RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...

  8. windows服务启动 1053错误

    1.问题描述 今天在启动一个Windows服务时,服务启动不了,且提示:1053错误 那么是什么导致了1053错误呢? 2.他山之石 百度了一下,发现有人作出下面的解释并给出了解决方法: “常常是因为 ...

  9. bat启动/停止oracle服务

    原文:bat启动/停止oracle服务 自己的电脑比较慢,尤其装了oracle10g后,服务开启和关闭用bat文件操作省事点 开启服务 @echo offnet start OracleService ...

随机推荐

  1. web开发注意的一些事

    js命名不要包含"-",在chrome浏览器是测试发现,如果文件包含"-",即使指定js本地缓存了,还会向服务器发送请求. cookie path 区分大小写

  2. Linux下使用ps命令来查看Oracle相关的进程

    Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...

  3. 怪兽z主机豪华版 答问。

    我的淘宝店里,怪兽z主机标准版,分经济版本,标准版,豪华版,三个版本.这里给大家详细介绍一下豪华版的概况. 淘宝购买地址:http://item.taobao.com/item.htm?id=3818 ...

  4. 在Livemedia的基础上开发自己的流媒体客户端

    一.背景 二.Livemedia框架介绍 1.总体框架 2.客户端框架 2.1 客户端openRTSP流程 2.2增加一种新的媒体 2.2.1增加媒体的format 2.2.2 新媒体需要考虑的问题 ...

  5. Node log4js

    一个完善的项目,日志是必不可少的一部分,在node开发中,调试成了让开发者头疼的部分,因此日志成为在node中帮助调试的一个重要模块. 一.Node使用Log4js 1.使用npm工具,在命令行中 执 ...

  6. 关于python 模块导入

    如何将自己写的库加入到python的库路径中: 首先查看python包含的库路径,步骤如下: a.打开python命令界面 b.import  sys    c.sys.path 1.在python安 ...

  7. 没有login页面

    "/"应用程序中的服务器错误. 无法找到资源. 说明:HTTP 404.您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用.请检查以下 URL 并确保 ...

  8. 在后台获取Textarea控件的值

    使用Request.Form方法 1.在前台设置name 属性 <textarea name="Content">hdjfhjdfhdj</textarea> ...

  9. 【转】Tomcat7.0.42源代码运行环境搭建

    转自:http://tyrion.iteye.com/blog/1903608 以前看过Tomcat5的一部分源代码,当时只看了个大概的启动分析,后来看了<How Tomcat Works> ...

  10. html 5 废弃的标签和属性

    第一类:表现性元素 basefont big center font s strike tt u 建议用语义正确的元素代替他们,并使用CSS来确保渲染后的效果 第二类:框架类元素 因框架有很多可用性及 ...