首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Delphi中创建Windows服务?

在Delphi中创建Windows服务需要遵循以下步骤:

  1. 创建一个新的Delphi控制台应用程序项目。
  2. 在项目中添加一个新的单元,例如“ServiceUnit”。
  3. 在新单元中,继承TService类并覆盖其方法。例如:
代码语言:delphi
复制
unit ServiceUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TMyService = class(TService)
    procedure ServiceExecute(Sender: TService);
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  MyService: TMyService;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  MyService.Controller(CtrlCode);
end;

function TMyService.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TMyService.ServiceStart(Sender: TService; var Started: Boolean);
begin
  { Place your code here }
  Started := True;
end;

procedure TMyService.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  { Place your code here }
  Stopped := True;
end;

procedure TMyService.ServiceExecute(Sender: TService);
begin
  { Place your code here }
end;

end.
  1. 在项目的.dpr文件中,将TMyService设置为主要的服务对象。例如:
代码语言:delphi
复制
program MyServiceProgram;

uses
  SvcMgr,
  ServiceUnit in 'ServiceUnit.pas' {MyService};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TMyService, MyService);
  Application.Run;
end.
  1. 编译并安装服务。可以使用sc命令行工具或者使用TServiceController组件。
代码语言:delphi
复制
sc create MyService binPath= "C:\path\to\your\service.exe"
  1. 启动服务。
代码语言:delphi
复制
sc start MyService
  1. 停止服务。
代码语言:delphi
复制
sc stop MyService
  1. 删除服务。
代码语言:delphi
复制
sc delete MyService

在这个过程中,你可以根据需要自定义服务的行为,例如在ServiceStartServiceStop方法中添加自己的代码,以及在ServiceExecute方法中实现长时间运行的任务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在c#创建Windows服务

在这里,我将在c# . net解释Windows服务。 1、Windows服务的介绍。 2、如何在c# . net创建Windows服务。...介绍 Windows服务通常在操作系统OS启动并在后台运行应用程序时启动。Windows服务在自己的会话执行应用程序。它可以自动启动,也可以手动暂停、停止和重新启动。...步骤8 在这一步,我们将实现一个计时器,并编写代码在给定的时间调用服务。我们将在文本文件创建一个简单的写操作。 ?...步骤14 按以下步骤打开服务: 按下窗口键+ R,打开命令行窗口。 输入services.msc 找到你的服务。 ? ? ? 服务输出: ? 将在您的bin文件夹创建一个日志文件夹。...总结 在本文中,我们学习了如何使用来自命令行的InstallUtil.exe创建Windows服务并安装/卸载它。

4.1K20

使用Topshelf创建Windows 服务

Windows 服务由三部分组成: 一个服务可执行文件; 一个服务控制程序(SCP); 服务控制管理器(SCM),负责在 HKLM"SYSTEM"CurrentControlSet"Services 下创建服务键值...用户可通过 SCP 控制服务的启动、停止、暂停等,SCP 会通过 SCM 调用服务程序 开发一个Windows服务通常也比较简单,在开发的时候我们期望以命令行方式运行,想对Windows服务有更多的控制...下面的代码就是创建了一个Windows服务: using System;     using System.Collections.Generic;     using System.IO;...StructureMapServiceLocator来掩藏StructureMap,创建Windows服务的名称是stuff,可以吊相应的方法启动,停止服务。...服务 默认情况下,Windows服务只能运行一个实例,如果我们想运行多个实例怎么办,可以在Topshelf的命令行参数增加–instance 来指定实例的名称,也可以通过运行时读取配置文件来达到目的

97560

使用 C 创建 Windows 服务

使用 C 创建 Windows 服务 最近需要将一些命令行程序包装成后台服务, 本来可以用 .NET 完成, 不过又想尝试一下用 C 语言实 现 Windows 服务, 发现用 C 语言做 Windows...服务也是很容易的, 步骤如下: 1 包含必要的头文件, 并定义一些常量, 代码如下: #include #include // 服务线程暂停时间; #define..., 响应在服务管理器服务的操作(停止、重新启动)。...SetServiceStatus(ServiceStatusHandle, &ServiceStatus); return; } 6 服务入口函数, 运行在后台服务线程服务的逻辑主要在这个函数实现...\MemoryStatus.exe 注意: 服务名称必须与代码服务名称保持一致, binPath= 之后必须保留一个空格!

1.4K20

Windows服务创建及安装

我们将研究如何创建一个作为Windows服务的应用程序。内容包含什么是Windows服务,如何创建、安装和调试它们。...创建一个Windows服务   我们即将创建的这个服务除了演示什么也不做。服务被启动时会把一个条目信息登记到一个数据库当中来指明这个服务已经启动了。...在服务运行期间,它会在指定的时间间隔内定期创建一个数据库项目记录。服务停止时会创建最后一条数据库记录。这个服务会自动向Windows应用程序日志当中登记下它成功启动或停止时的记录。   ...Visual Studio .NET能够使创建一个Windows服务变成相当简单的一件事情。启动我们的演示服务程序的说明概述如下。 1. 新建一个项目 2....添加服务安装程序   创建一个Windows服务,仅用InstallUtil程序去安装这个服务是不够的。

1.4K50

用.NET创建Windows服务

作者:Mark Strawmyer 我们将研究如何创建一个作为Windows服务的应用程序。内容包含什么是Windows服务,如何创建、安装和调试它们。...创建一个Windows服务 我们即将创建的这个服务除了演示什么也不做。服务被启动时会把一个条目信息登记到一个数据库当中来指明这个服务已经启动了。...在服务运行期间,它会在指定的时间间隔内定期创建一个数据库项目记录。服务停止时会创建最后一条数据库记录。这个服务会自动向Windows应用程序日志当中登记下它成功启动或停止时的记录。...Visual Studio .NET能够使创建一个Windows服务变成相当简单的一件事情。启动我们的演示服务程序的说明概述如下。 1. 新建一个项目 2. ...添加服务安装程序 创建一个Windows服务,仅用InstallUtil程序去安装这个服务是不够的。

1K30

C# 创建Windows服务demo

一、准备工作 1.操作系统:Windows 10 X64 2.开发环境:VS2017 3.编程语言:C# 4. .NET版本:.NET Framework 4.5 二、创建Windows Service...三、创建安装、启动、停止、卸载服务Windows窗体 1.我们以winform为例子吧,建一个简单的界面,这里命名为ServiveMan,修改属性text为windows服务管理,拖入四个Button...2.整理了一个Windows服务管理的类,这里我采用的是单例模式,如果有不理解的,我下一篇文章就分享一下单例模式。...安装服务,需要使用UACAdministrator的权限,鼠标右击项目,在弹出的上下文菜单中选择“添加”->“新建项”,在弹出的选择窗体中选择“应用程序清单文件”并单击确定,如下图所示: ?...ok,今天关于windows服务的demo就分享到这了,如果有疑问的可以留言,讲的不对的欢迎指出!!!

80510

使用C#创建Windows服务

一、开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二、创建Windows Service...9、至此,Windows服务已经创建完毕。...三、创建安装、启动、停止、卸载服务Windows窗体 1、在同一个解决方案里新建一个Windows Form项目,并命名为WindowsServiceClient,如下图所示: ?...5、由于需要安装服务,故需要使用UACAdministrator的权限,鼠标右击项目“WindowsServiceClient”,在弹出的上下文菜单中选择“添加”->“新建项”,在弹出的选择窗体中选择...12、点击“停止服务”按钮,将会停止运行服务,如下图所示: ? 13、点击“卸载服务”按钮,将会从服务删除MyService服务

1.6K00

何在Windows运行bash

当微软宣布,将在Windows10上面支持bash时,所有的Unix命令行用户都为之雀跃了。上周三,微软发布了一个测试版本,开始支持了这项功能。 为了运行bash,首先要进行几步操作。...首先,需要获得Windows10的build 14316。...Windows10会进行确认,是否安装bash内测版,并在运行Linux子系统之前执行安装程序。 完成这些不怎么愉快的步骤之后,就可以在Windows上面使用Bash了。...微软计划将来在Windows上支持更多的shell,这样其他像csh等shell的粉丝也能在Windows上工作了。 有趣的是,倍受欢迎的PowerShell脚本工具或将登录Linux。...原文:How to get Bash running on Windows(译者/赖信涛 责编/孙思) CSDN原创文章,禁止任何形式的转载。

3.3K80

何在Windows和Linux服务检测混淆命令

在防范Windows命令混淆方面,现有的方案要么是缺乏相应工具,要么只是解决了部分问题,并没有彻底解决所有问题。...Flerken可分为Kindle和Octopus这两个模块,其中Kindle针对的是Windows模糊检测工具,而Octopus针对的是Linux模糊测试工具。...工具安装&使用 工具安装 1、 确保服务器端已安装了Python 3.x,你可以使用下列命令来检测: [root@server:~$]python –V 2、 安装依赖组件,所有的依赖组件已在requirement.txt...声明: [root@server:~$]python –V 3、 登录MySQL控制台,导入数据库: source/your path/Flerken/flerken/lib/flerken.sql...获取帮助信息 如果你对Flerken的使用有任何疑问,可以直接创建issue并进行标注,我们会尽快解决大家提出的问题: ?

2.9K30

创建Windows服务(Windows Services)N种方式总结

最近由于工作需要,写了一些windows服务程序,有一些经验,我现在总结写出来。...目前我知道的创建创建Windows服务有3种方式: a.利用.net框架类ServiceBase b.利用组件Topshelf c.利用小工具instsrv和srvany 下面我利用这3种方式,分别做一个...b.利用组件Topshelf 本方式特点:代码简单,开源组件,Windows服务可运行多个实例 Topshelf是一个开源的跨平台的服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务...,还包含一个定时器Timer,每隔5秒往文本文件写入字符 public class MyClass { readonly Timer _timer;...srvany.exe:用于将任何EXE程序作为Windows服务运行 这2个工具都是是Microsoft Windows Resource Kits工具集的实用的小工具  你可以通过下载并安装Microsoft

96810

何在远程 SSH 服务创建和添加 SSH 密钥?

本文将详细介绍如何在远程 SSH 服务创建和添加 SSH 密钥。图片1. 生成 SSH 密钥对在远程 SSH 服务创建和添加 SSH 密钥,首先需要生成密钥对。...创建 .ssh 目录(如果不存在):在远程服务器的用户主目录,使用以下命令创建 .ssh 目录:mkdir -p ~/.ssh编辑 authorized_keys 文件:使用以下命令编辑或创建 authorized_keys...如果文件不存在,则创建一个新文件并打开编辑器。将公钥粘贴到 authorized_keys 文件:将之前复制的公钥内容粘贴到打开的 authorized_keys 文件。...以下是使用 SSH 代理的步骤:在本地机器上编辑 SSH 配置文件:使用以下命令编辑 SSH 配置文件:nano ~/.ssh/config在文件添加以下内容:Host remote_server...总结本文详细介绍了如何在远程 SSH 服务创建和添加 SSH 密钥。通过生成密钥对,并将公钥添加到远程服务器的 authorized_keys 文件,您可以实现无需密码的安全身份验证。

4.5K30

何在 WordPress 创建联系表格?

让我们看看如何创建联系表格。 通过 3 个步骤创建联系表: 第 1 步:在 WordPress 安装一个有助于创建表单的插件。因此,要安装插件,请转到你的 WordPress 仪表板。...在搜索框搜索 Ninja forms。你可以选择任何联系人插件。 单击安装,然后在搜索到的插件上激活。 最后,插件已安装。 新选项将在你的仪表板上显示为 Ninja Forms。...通过单击“添加新”按钮创建一个新表单。 从以下给定选项中选择联系我们选项:空白表格、联系我们、报价请求、活动注册。 当你单击它时,你的表单将被创建。...弹出窗口将出现并选择你在 Ninja Form 创建的表单。 然后单击“插入”,表单将插入到你的页面。 点击发布按钮。 最后,查看你的联系我们页面。你的表格可以使用了。...这就是你在 WordPress 创建联系表单的方法。

2.8K21

何在 WordPress 创建登录页面

主页通常包含有关你网站的所有信息,包括导航栏和菜单、指向网站其他页面的链接以及许多号召性用语按钮,而登录页面没有导航栏和指向其他页面的链接服务于特定目的。...使用 WordPress 创建登录页面 在本文中,我们将学习如何使用Elementor创建一个简单的登录页面。Elementor是一个页面构建器(可视化编辑器),用于开发漂亮的页面和网站。...它具有拖放功能,可以轻松创建页面。 第 1 步:获取你的 WordPress 网站 第一步是购买你的域名和主机。从托管平台的控制面板安装 WordPress。...最后,选择导入登录页面模板,如下图所示,因为我们正在创建单个登录页面。 转到页面并选择我们刚刚加载的“登陆页面”模板。在编辑模式下打开并选择“使用 Elementor 编辑”。

2.7K21
领券