windows 服务程序和桌面程序集成(四)桌面程序

27 篇文章 6 订阅
23 篇文章 0 订阅

系列文章目录链接:

  1. windows 服务程序和桌面程序集成(一)概念介绍
  2. windows 服务程序和桌面程序集成(二)服务程序
  3. windows 服务程序和桌面程序集成(三)UDP监控工具
  4. windows 服务程序和桌面程序集成(四)桌面程序
  5. windows 服务程序和桌面程序集成(五)集成为一个EXE
  6. windows 服务程序和桌面程序集成(六)集成安装、启动、卸载功能
  7. windows 服务程序和桌面程序集成(七)效果演示及源程序下载
     

对于VCL桌面程序就非常简单,如何创建一级如何运行就不在啰嗦。

这个桌面程序就是和 windows 服务程序和桌面程序集成(二)服务程序 共享Public目录下的uWorkThread.pas单元。

程序中的4个按键就是围绕 uWorkerThread.pas 单元设置的。这个程序目前和 windows 服务程序和桌面程序集成(二)服务程序 中的服务程序没有直接关系,理解就是一个简单的VCL桌面程序,调用一个线程发送UDP消息而已。他们共享了线程单元uWorkerThread.pas,这个是重点!

 uMainForm.pas代码如下:

unit uMainForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  uWorkerThread;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  //创建工作线程
  if WorkThread = nil then
     WorkThread := TWorkThread.Create;
  WorkThread.FreeOnTerminate := True;    //完成后直接释放
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 WorkThread.Pause;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  WorkThread.Continue;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  WorkThread.Terminate;
  while not WorkThread.Finished do
    begin
      Sleep(200);
    end;
  WorkThread := nil;

end;

end.

uWorkerThread.pas代码:

unit uWorkerThread;

interface
uses
  System.Classes,
  IdUDPClient,
  IdGlobal,
  System.SysUtils;
  //Winapi.Windows;

type
  //实际工作线程类
  TWorkThread = Class(TThread)
     private
       FPaused : Boolean;   //
     protected
       constructor Create;
       procedure Execute; override;
     public
       procedure Pause;
       procedure Continue;
  End;
//服务执行的函数,UDP发送消息函数
procedure Send_UDP_Info(str : string);

var
  //工作线程变量
  WorkThread : TWorkThread;

implementation

procedure Send_UDP_Info(str : string);
var
  UDPClient: TIdUDPClient;
  B : TBytes;
begin
  UDPClient := TIdUDPClient.Create(nil);
  try
    UDPClient.BroadcastEnabled := True;
    B := TEncoding.UTF8.GetBytes(str);
    //只给本机发送,这个地方只需要给本机发送广播消息即可 2023-03-04
    UDPClient.Broadcast(TidBytes(B),8192,'127.0.0.1');  //端口号
    //广播到任何地方
    //UDPClient.Broadcast(TidBytes(B),G_UDPPort);  //端口号
  finally
    UDPClient.Free;
  end;
end;


{ TWorkThread }

procedure TWorkThread.Continue;
begin
  FPaused := False;
  Send_UDP_Info('服务继续工作....');
end;

constructor TWorkThread.Create;
begin
  FPaused := False;
end;

procedure TWorkThread.Execute;
var
  S : string;
begin
  inherited;
  while not Terminated do
  begin
    if not FPaused then
       begin
         S := FormatDateTime('YYYY-MM-DD hh:mm:ss',Now);
         Send_UDP_Info(S);
       end;
    TThread.Sleep(1000);
  end;

  Send_UDP_Info('********** 服务终止工作 **********');
end;

procedure TWorkThread.Pause;
begin
  FPaused := True;
  Send_UDP_Info('服务暂停工作!!!');
end;

end.

下一篇:windows 服务程序和桌面程序集成(五)集成为一个EXE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: vswindows桌面应用程序是一种使用C++编写的桌面应用程序开发工具,它可以帮助开发者快速构建高效、稳定的Windows桌面应用程序。该工具集成了丰富的开发工具和库,包括代码编辑器、调试器、图形界面设计工具、数据库连接器等,可以大大提高开发效率和代码质量。同时,vswindows桌面应用程序还支持多种编程语言,如C++、C#、VB等,可以满足不同开发者的需求。 ### 回答2: VsWindows桌面应用程序C是指使用Microsoft Visual Studio集成开发环境(IDE)和C编程语言,创建基于Windows操作系统的桌面应用程序。C语言是一种高级编程语言,被广泛用于系统级编程和硬件编程,因此非常适用于开发Windows应用程序。 VsWindows桌面应用程序C的开发过程涉及到程序设计、编码、编译和调试。使用Visual Studio可以轻松创建Windows窗体应用程序、控制台应用程序和DLL库等各种类型的应用程序。Visual Studio提供了丰富的工具和功能,包括代码编辑器、调试器、自动完成、代码分析和测试工具等,使开发任务变得更加简单快捷。 C语言在Windows应用程序开发中扮演着非常重要的角色。对于Windows操作系统来说,C语言是固有的编程语言,许多核心功能都是使用C语言编写的,因此使用C语言编写Windows应用程序能够更好地利用操作系统的底层资源和API,从而实现更加高效和优质的应用程序。此外,C语言还具备良好的可移植性,可用于不同平台和操作系统中的应用程序开发。 总之,VsWindows桌面应用程序C是一种基于Visual Studio和C语言的Windows应用程序开发方法,其优点包括强大的功能和工具库、操作系统底层资源的利用、高效和可移植性等等。对于需要开发Windows桌面应用程序的开发者来说,使用VsWindows桌面应用程序C将会是一种非常可行和有趣的选择。 ### 回答3: VS(Visual Studio)是一款由微软公司开发的软件开发环境,它可以用于开发各种类型的应用程序,包括桌面应用程序。其中,C是一种高级程序设计语言,具有语法简洁、运行快速、可通用于多种操作系统等优点。因此,使用VS进行C语言桌面应用程序开发是非常常见的。 首先,VS提供了非常完善的C语言编译环境和调试工具,使得开发者能够方便地进行代码编写、编译和运行调试等工作。VS还包含一些预置的代码模板和代码段,可以加速开发者的开发进程。同时VS还提供了丰富的库函数,可以在开发过程中调用,使得开发者能够快速地实现各种功能需求。 其次,VS提供了非常友好的界面开发工具,使得C语言桌面应用程序的界面设计变得异常简单。开发者只需要在VS提供的拖拽式界面设计器中按照自己的需求进行界面设计,就可以快速地生成出美观、易用的桌面应用程序。 最后,在开发C语言桌面应用程序时,VS还包含了丰富的调试工具和性能分析工具,可以帮助开发者在开发过程中快速发现和解决各种程序缺陷和性能问题。 综上所述,VS为C语言桌面应用程序的开发提供了非常完善和便捷的工具支持,可以帮助开发者快速高效地完成开发工作,快速地实现功能需求,为用户提供更佳的用户体验。因此,VS是开发C语言桌面应用程序不可或缺的必备工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值