window下用delphi写一个系统服务的问题

window下用delphi写一个系统服务,系统服务再生成一个form,求大神指点下这个为什么没生成窗口
这是service application的代码

unit Unit_Main;

interface

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

type
TServiceDemo = class(TService)
procedure ServiceContinue(Sender: TService; var Continued: Boolean);
procedure ServiceExecute(Sender: TService);
procedure ServicePause(Sender: TService; var Paused: Boolean);
procedure ServiceShutdown(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
ServiceDemo: TServiceDemo;
FrmMain: TForm1;
gbCanClose: Boolean;

implementation

{$R *.DFM}

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

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

procedure TServiceDemo.ServiceContinue(Sender: TService;var Continued: Boolean);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;

procedure TServiceDemo.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;

procedure TServiceDemo.ServicePause(Sender: TService;var Paused: Boolean);
begin
Paused := True;
end;

procedure TServiceDemo.ServiceShutdown(Sender: TService);
begin
gbCanClose := true;
FrmMain.Free;
Status := csStopped;
ReportStatus();
end;

procedure TServiceDemo.ServiceStart(Sender: TService;var Started: Boolean);
begin
Started := True;
Svcmgr.Application.CreateForm(TForm1, FrmMain);
gbCanClose := False;
FrmMain.Hide;
end;

procedure TServiceDemo.ServiceStop(Sender: TService;var Stopped: Boolean);
begin
Stopped := True;
gbCanClose := True;
FrmMain.Free;
end;
end.

这是form1的
procedure TForm1.FormCreate(Sender: TObject);
begin
FormStyle := fsStayOnTop;
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
gbCanClose := False;
tmr2.Interval := 1000;
tmr2.Enabled := True;
end;

1

2个回答

0

服务运行在session 0,不在当前桌面,任何界面相关的窗口等,你都是看不到的

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
delphi 编写系统服务控制
delphi 编写的简单系统服务控制程序..有兴趣的朋友可以下来看看...附源码及主程序.....
delphi 写的服务程序Demo
delphi 编写的实现开机自启动服务程序。托盘功能
C语言编写Windows服务进程[实例]
C语言编写Windows服务进程[实例] #include <windows.h> SERVICE_STATUS ServiceStatus; SERVICE_STATUS_HANDLE hStatus; void WINAPI ControlHandler(DWORD request) { //响应服务控制台的消息 ServiceStatus.dwCurrentState ...
C# 实现安装C#写的系统服务 不依赖InstallUtil
反编译的 InstallUtil   /// /// 安装服务 /// using System.Configuration.Install /// /// 程序集 /// true 安装 false 卸载 public void InstallServer(String Assemb
用delphi写的计算器
用delphi写的简单计算器,包含所有代码。放在Delphi7中即可使用
ActiveMQ5.7.0注册为windows系统服务后无法启动
wrapper | --> Wrapper Started as Console wrapper | Launching a JVM... jvm 1 | java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperSim pleApp jvm 1 | Caused by: java.lan...
使用Python写Windows Service服务程序
1.背景 如果你想用Python开发Windows程序,并让其开机启动等,就必须写成windows的服务程序Windows Service,用Python来做这个事情必须要借助第三方模块pywin32,自己去下载然后安装(注意下载符合自己OS的版本) 2.实例 先上代码 #encoding=utf-8 import win32serviceutil impor
注册golang程序为windows服务
golang注册为windows服务中遇到的问题
【JavaService】使用Java编写部署windows服务
如果你玩windows系统,你对服务这个东西并不会陌生,服务可以帮我们做很多事情,在不影响用户正常工作的情况下,可以完成很多我们需要的需求。 众所周知,微软的visio studio内置的Service类可以编写windows服务,对于一个Java开发人员来说,想要编写一个windows服务部署到服务器里面, 还要在自己的开发环境装一个visio studio,那太麻烦了。 那么问题来了,我
VB注册系统服务控件
老外写的一个控件! 直接用 很简单!可以注册为普通的系统服务! VB 注册 系统服务 控件!
Delphi写的守护进程(服务程序)
delphi写的一个守护进程,可以在ini中配置你需要守护的程序名称和路径,当检测到程序被关闭后,服务自动启动该程序。
bat文件启动jar包做成Windows系统服务
此次项目使用的是Win7系统 at文件[含有启动jar包]做成系统服务 Bat文件内容: cd d:/test/ echo in success! ping 127.1 > test11log.txt java -jar 1.jar 如果是双击bat文件是可以直接运行jar文件的 但是由于需要系统服务执行bat文件,所以系统必须配好Java环境变量 说一下我的环境
Python制作Windows系统服务
Python制作Windows系统服务最近有个Python程序需要安装并作为Windows系统服务来运行,过程中碰到一些坑,整理了一下。Python服务类首先Python程序需要调用一些Windows系统API才能作为系统服务,具体内容如下:#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import timeimport win32
C++创建Windows系统服务
定义    Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的...
用Delphi创建windows服务程序
有现成代码在用
简单的C++代码编写windows服务
继上一章flex通信之后,接下来需要为程序集成到windows服务做准备了,首先需要学习如何编写一个windows服务。 一,windows服务的代码如下: #include "stdafx.h" #include "resource.h" using namespace std; //服务的状态,和服务停止事件 SERVICE_STATUS serviceStatus; SERVIC
WINDOWS服务启动EXE
win 7 win10 测试通过,Delphi 10.2.3编译。 win 7 之后 服务和桌面脱离,需要用到其他手段才能使得windows服务启动exe。
Windows系统服务原理
简单地说,Windows服务是一类Win32可执行程序,通常无界面,由控制台形式的程序实现。这类程序常驻内存,受到操作系统优待。Windows服务(NT服务)分为服务应用程序和内核驱动服务程序,本文利用服务应用程序对检测系统进行健壮性守护,故不对内核驱动服务类程序进行深入探讨。实现Windows服务需要动态链接库、线程及同步、结构异常处理、虚拟内存、内存映射文件、设备I/O及WinAPI 函数应用接
基于Python编写的Windows服务程序参考代码
基于Python编写的Windows服务程序参考代码
Go1.9windows创建服务小实例
package mainimport ( "context" "fmt" "log" "net" "net/http" "os" "github.com/kardianos/service" )type services struct { log service.Logger srv *http.Server cfg *s
【Windows Services开发系列】开篇编写一个简单的Service程序
Windows Service 开发系列 (一) – 开篇编写一个简单的Service程序 【1】Windows Service 开发 – 本示例使用的WIN API详解: SERVICE_STATUS 结构体: typedef struct _SERVICE_STATUS { DWORD dwServiceType; DWORD dwCurrentState; DWORD...
windows下将任意程序(PHP)添加为服务
如何使用PHP自带Web Server 路由文件 服务器配置文件 创建 windows服务 安装与删除 添加服务后打开注册表 regedit 通过服务 servicesmsc 管理 后记 本文主要阐述instsrv.exe 和 srvany.exe 将某程序(PHP)添加到windows 服务中。 近期遇到一些情况,web服务如果按照Apache+PHP+MySql 搭建起来代价有点高。M
制作windows服务(java)
前言 在之前我写了篇如何调用微信扫码支付接口的博客http://blog.csdn.net/qq_32574435/article/details/78952325,但是这个存在一个问题,就是在用户支付成功之后系统如何通知用户,说白了就是给用户一个反馈。人家给了钱你不管是网页自动跳转,还是发送支付成功的短信,总得通知人家,这样起码不会让用户担心我们是不是没收到钱,业务是否订购成功。
c#写windows服务
创建一个Windows服务总体步骤如下: 按照Windows Service模板创建项目 添加定时器(timer)或者其它控件,并编写OnStart和OnStop事件方法   protected override void OnStart(string[] args) { //服务开启执行代码 //---------...
windows下将任意exe设置为系统服务
在项目中,经常需要将我们的写的执行程序变成随系统启动的服务程序,这里介绍一种简单的方式,主要用到NSSM。 准备工作,从NSSM官网下载最新版本nssm,nssm.exe和我们的执行程序放同一级目录,建立一个bat文件 内容为 set nssm=nssm64.exe set AppName=执行程序名称 sc create %AppName% binpath= "%~dp0%nssm%" s...
wrapper-win-3.5.32
wrapper java window系统服务
玩转Windows服务系列——命令行管理Windows服务
玩转Windows服务系列——命令行管理Windows服务 转自:https://www.cnblogs.com/hbccdf/p/managewindowsservicewithcmd.html
如何将一个exe、bat等应用程序设置为Window服务?
步骤一:注册服务名称 下载两个exe文件,instsrv.exe和
Delphi创建服务程序
Windows 2000/XP和2003等支持一种叫做”服务程序”的东西.程序作为服务启动有以下几个好处: 不用登陆进系统即可运行. 具有SYSTEM特权.所以你在进程管理器里面是无法结束它的. 如何创建Service下面就介绍一下如何用Delphi7创建一个Service程序: 运行Delphi7,选择菜单File–>New–>Other—>Service Application.将生成一个服务
Windows服务框架与服务的编写
从NT内核开始,服务程序已经变为一种非常重要的系统进程,一般的驻守进程和普通的程序必须在桌面登录的情况下才能运行,而许多系统的基础程序必须在用户登录桌面之前就要运行起来,而利用服务,可以很方便的实现这种功能,而且服务程序一般不予用户进行交互,可以安静的在后台执行,合理的利用服务程序可以简化我们的系统设计,比如Windows系统的日志服务,IIS服务等等。 服务程序本身是依附在某一个可执行文件之中,
在Windows服务程序中弹出信息提示框
只需要把已经安装的服务“右键->属性->勾选允许服务于桌面交互”
window系统下把nginx加入到服务管理
window2008下,把nginx加入到服务器管理器中,方便启动和停止、重新启动,只有一个可执行程序和配置问价,总共代码不到10行,非常方便配置,对于使用nginx的小伙伴提高工作效率很有帮助
CuteFTP 加密解密算法 Delphi版
用delphi写的加密解密算法,闲暇之余写的,用delphi写的加密解密算法,闲暇之余写的,用delphi写的加密解密算法,闲暇之余写的,用delphi写的加密解密算法,闲暇之余写的,
winIO的delphi例子
winIO的delphi例子,用delphi写的一个小例子
windows服务看门狗守护服务
windows下看门狗服务自动保护,挂了自动拉起服务,不需要人工手动重启
window服务调整器
window服务调整器,可以增加或删除window系统服务.
基于Qt封装window service服务程序
基于Qt封装window service服务程序下载   1: 封装window服务应用流程:程序入口继承QtService,重写start pause resume方法,实现服务的启动,暂停,恢复功能。 class MyWindowServiceAPP : public QtService<QApplication> { public: MyWindowServi...
Delphi做的Window记事本 用的是Memo
Delphi做的Window记事本 用的是Memo
delphi写的计算器
用delphi写的一个表达式简易计算器。
C/C++ 创建windows系统服务程序
Windows上面的程序可以分为前台运行和后台运行,像windows的系统服务都是属于后台程序。 那如何将一个程序变成后台运行呢? 可以在 cmd里面用sc命令来操作:Windows 服务的安装和卸载 此次重点介绍如果用c++代码创建一个Windows服务程序。 这里用到了2个创建服务的类,具体解释请看注释,代码如下: service_base.h #ifndef SERVICE_