最新范文 方案 计划 总结 报告 体会 事迹 讲话 倡议书 反思 制度 入党

创建具有托盘的服务程序

日期:2020-12-17  类别:最新范文  编辑:一流范文网  【下载本文Word版

创建具有托盘的服务程序 本文关键词:托盘,创建,程序,服务

创建具有托盘的服务程序 本文简介:创建具有托盘的服务程序Windows2000/XP和2003等支持一种叫做“服务程序“的东西.程序作为服务启动有以下几个好处:(1)不用登陆进系统即可运行.(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面

创建具有托盘的服务程序 本文内容:

创建具有托盘的服务程序

Windows

2000/XP和2003等支持一种叫做“服务程序“的东西.程序作为服务启动有以下几个好处:

(1)不用登陆进系统即可运行.

(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.

笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面就介绍一下如何用Delphi7创建一个Service程序.

运行Delphi7,选择菜单File-->New-->Other--->Service

Application.将生成一个服务程序的框架.将工程保存为ServiceDemo.dpr和Unit_Main.pas,然后回到主框架.我们注意到,Service有几个属性.其中以下几个是我们比较常用的:

(1)DisplayName:服务的显示名称

(2)Name:服务名称.

我们在这里将DisplayName的值改为“Delphi服务演示程序“,Name改为“DelphiService“.编译这个项目,将得到ServiceDemo.exe.这已经是一个服务程序了!进入CMD模式,切换致工程所在目录,运行命令“ServiceDemo.exe

/install“,将提示服务安装成功!然后“net

start

DelphiService“将启动这个服务.进入控制面版-->管理工具-->服务,将显示这个服务和当前状态.不过这个服务现在什么也干不了,因为我们还没有写代码:)先“net

stop

DelphiService“停止再“ServiceDemo.exe

/uninstall“删除这个服务.回到Delphi7的IDE.

我们的计划是为这个服务添加一个主窗口,运行后任务栏显示程序的图标,双击图标将显示主窗口,上面有一个按钮,点击该按钮将实现Ctrl+Alt+Del功能.

实际上,服务程序莫认是工作于Winlogon桌面的,可以打开控制面板,查看我们刚才那个服务的属性-->登陆,其中“允许服务与桌面交互“是不打钩的.怎么办?呵呵,回到IDE,注意那个布尔属性:Interactive,当这个属性为True的时候,该服务程序就可以与桌面交互了.

File-->New-->Form为服务添加窗口FrmMain,单元保存为Unit_FrmMain,并且把这个窗口设置为手工创建.完成后的代码如下:

unit

Unit_Main;

interface

uses

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

type

TDelphiService

=

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

DelphiService:

TDelphiService;

FrmMain:

TFrmMain;

implementation

{$R.DFM}

procedure

ServiceController(CtrlCode:

DWord);

stdcall;

begin

DelphiService.Controller(CtrlCode);

end;

function

TDelphiService.GetServiceController:

TServiceController;

begin

Result

:=

ServiceController;

end;

procedure

TDelphiService.ServiceContinue(Sender:

TService;

var

Continued:

Boolean);

begin

while

not

Terminated

do

begin

Sleep(10);

ServiceThread.ProcessRequests(False);

end;

end;

procedure

TDelphiService.ServiceExecute(Sender:

TService);

begin

while

not

Terminated

do

begin

Sleep(10);

ServiceThread.ProcessRequests(False);

end;

end;

procedure

TDelphiService.ServicePause(Sender:

TService;

var

Paused:

Boolean);

begin

Paused

:=

True;

end;

procedure

TDelphiService.ServiceShutdown(Sender:

TService);

begin

gbCanClose

:=

true;

FrmMain.Free;

Status

:=

csStopped;

ReportStatus();

end;

procedure

TDelphiService.ServiceStart(Sender:

TService;

var

Started:

Boolean);

begin

Started

:=

True;

Svcmgr.Application.CreateForm(TFrmMain,FrmMain);

gbCanClose

:=

False;

FrmMain.Hide;

end;

procedure

TDelphiService.ServiceStop(Sender:

TService;

var

Stopped:

Boolean);

begin

Stopped

:=

True;

gbCanClose

:=

True;

FrmMain.Free;

end;

end.

主窗口单元如下:

unit

Unit_FrmMain;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,ShellApi,Graphics,Controls,Forms,Dialogs,ExtCtrls,StdCtrls;

const

WM_TrayIcon

=

WM_USER

+

1234;

type

TFrmMain

=

class(TForm)

Timer1:

TTimer;

Button1:

TButton;

procedure

FormCreate(Sender:

TObject);

procedure

FormCloseQuery(Sender:

TObject;

var

CanClose:

Boolean);

procedure

FormDestroy(Sender:

TObject);

procedure

Timer1Timer(Sender:

TObject);

procedure

Button1Click(Sender:

TObject);

private

{

Private

declarations

}

IconData:

TNotifyIconData;

procedure

AddIconToTray;

procedure

DelIconFromTray;

procedure

TrayIconMessage(var

Msg:

TMessage);

message

WM_TrayIcon;

procedure

SysButtonMsg(var

Msg:

TMessage);

message

WM_SYSCOMMAND;

public

{

Public

declarations

}

end;

var

FrmMain:

TFrmMain;

gbCanClose:

Boolean;

implementation

{$R.dfm}

procedure

TFrmMain.FormCreate(Sender:

TObject);

begin

FormStyle

:=

fsStayOnTop;

{窗口最前}

SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

{不在任务栏显示}

gbCanClose

:=

False;

Timer1.Interval

:=

1000;

Timer1.Enabled

:=

True;

end;

procedure

TFrmMain.FormCloseQuery(Sender:

TObject;

var

CanClose:

Boolean);

begin

CanClose

:=

gbCanClose;

if

not

CanClose

then

begin

Hide;

end;

end;

procedure

TFrmMain.FormDestroy(Sender:

TObject);

begin

Timer1.Enabled

:=

False;

DelIconFromTray;

end;

procedure

TFrmMain.AddIconToTray;

begin

ZeroMemory(@IconData,SizeOf(TNotifyIconData));

IconData.cbSize

:=

SizeOf(TNotifyIconData);

IconData.Wnd

:=

Handle;

IconData.uID

:=

1;

IconData.uFlags

:=

NIF_MESSAGE

or

NIF_ICON

or

NIF_TIP;

IconData.uCallbackMessage

:=

WM_TrayIcon;

IconData.hIcon

:=

Application.Icon.Handle;

IconData.szTip

:=

Delphi服务演示程序

;

Shell_NotifyIcon(NIM_ADD,@IconData);

end;

procedure

TFrmMain.DelIconFromTray;

begin

Shell_NotifyIcon(NIM_DELETE,@IconData);

end;

procedure

TFrmMain.SysButtonMsg(var

Msg:

TMessage);

begin

if

(Msg.wParam

=

SC_CLOSE)

or

(Msg.wParam

=

SC_MINIMIZE)

then

Hide

else

inherited;

//

执行默认动作

end;

procedure

TFrmMain.TrayIconMessage(var

Msg:

TMessage);

begin

if

(Msg.LParam

=

WM_LBUTTONDBLCLK)

then

Show();

end;

procedure

TFrmMain.Timer1Timer(Sender:

TObject);

begin

AddIconToTray;

end;

procedure

SendHokKey;stdcall;

var

HDesk_WL:

HDESK;

begin

HDesk_WL

:=

OpenDesktop

(

Winlogon,0,False,DESKTOP_JOURNALPLAYBACK);

if

(HDesk_WL

0)

then

if

(SetThreadDesktop

(HDesk_WL)

=

True)

then

PostMessage(HWND_BROADCAST,WM_HOTKEY,0,MAKELONG

(MOD_ALT

or

MOD_CONTROL,VK_DELETE));

end;

procedure

TFrmMain.Button1Click(Sender:

TObject);

var

dwThreadID

:

DWORD;

begin

CreateThread(nil,0,@SendHokKey,nil,0,dwThreadID);

end;

end.

program

ServiceDemo;

uses

SvcMgr,Unit_Main

in

Unit_Main.pas

{DelphiService:

TService},Unit_frmMain

in

Unit_frmMain.pas

{frmMain};

{$R.RES}

begin

Application.Initialize;

Application.CreateForm(TDelphiService,DelphiService);

Application.Run;

end.

窗体代码如下:

object

DelphiService:

TDelphiService

OldCreateOrder

=

False

DisplayName

=

Delphi服务演示程序

Interactive

=

True

OnContinue

=

ServiceContinue

OnExecute

=

ServiceExecute

OnPause

=

ServicePause

OnShutdown

=

ServiceShutdown

OnStart

=

ServiceStart

OnStop

=

ServiceStop

Left

=

261

Top

=

177

Height

=

150

Width

=

215

end

object

frmMain:

TfrmMain

Left

=

192

Top

=

107

Width

=

696

Height

=

480

Caption

=

我的服务测试程序

Color

=

clBtnFace

Font.Charset

=

DEFAULT_CHARSET

Font.Color

=

clWindowText

Font.Height

=

-11

Font.Name

=

MS

Sans

Serif

Font.Style

=

[]

OldCreateOrder

=

False

OnCloseQuery

=

FormCloseQuery

OnCreate

=

FormCreate

OnDestroy

=

FormDestroy

PixelsPerInch

=

96

TextHeight

=

13

object

Button1:

TButton

Left

=

296

Top

=

264

Width

=

75

Height

=

25

Caption

=

Button1

TabOrder

=

0

OnClick

=

Button1Click

end

object

Timer1:

TTimer

OnTimer

=

Timer1Timer

Left

=

120

Top

=

192

end

end

篇2:托盘货架的主体结构和作用

托盘货架的主体结构和作用 本文关键词:托盘,货架,主体,作用,结构

托盘货架的主体结构和作用 本文简介:天津金利得货架制造有限公司www.jsfw8.com托盘货架的主体结构和作用货架在工厂、仓库、物流中心等都很常见,结构形式多种多样,托盘货架是我们常用的货架类型。今天,天津金利得货架制造有限公司将解答托盘货架的主体结构和作用,仅供参考!天津金利得货架产品被广泛应用于仓储物流、商场超市、玩具礼品、食品

托盘货架的主体结构和作用 本文内容:

天津金利得货架制造有限公司

www.jsfw8.com

托盘货架的主体结构和作用

货架在工厂、仓库、物流中心等都很常见,结构形式多种多样,托盘货架是我们常用的货架类型。今天,天津金利得货架制造有限公司将解答托盘货架的主体结构和作用,仅供参考!

天津金利得货架产品被广泛应用于仓储物流、商场超市、玩具礼品、食品饮料、工业机械、五金电器、店面展示、出口商品交易会、家居生活用品等各个方面。天津金利得货架制造有限公司不断完善管理制度,超越自我,想客户之所想,为客户提供整体布局设计,货架摆放等方面的建议。提供完善的货物配送,货架安装等服务。

托盘货架的主体结构和作用

托盘货架是使用最广泛的托盘类货物存储系统,通用性也较强。其结构是货架沿仓库的宽度方向分成若干排,其间有一条巷道,供堆垛起重机、叉车或其他搬运机械运行,每排货架沿仓库纵长方向分为若干列,在垂直方向又分成若干层,从而形成大量货格,用以用托盘存储货物。

托盘货架的优点是

1.每一块托盘均能单独存人或移动,而不需移动其他托盘。

2.可适应各种类型的货物,可按货物尺寸要求调整横梁高度。

3.配套设备最简单,成本也最低,能快速安装及拆除。

4.货物装卸迅速,主要适用于整托盘出人库或手工拣选的场合。

5.能尽可能地利用仓库的上层空间。

(详情点击进入官网)

听了小编的讲解,是不是觉得对托盘货架的主体结构和作用已经有了一定的了解呢。然而在真正选购货架的时候肯定还有各式各样疑惑和困难。选择天津金利得,让您无忧购买货架,放心选择,安心售后,帮助客户去挑选适合的货架。让“货真架实”不再是说说而已。

天津金利得货架制造有限公司不断完善管理制度,超越自我,想客户之所想,为客户提供整体布局设计,货架摆放等方面的建议。提供完善的货物配送,货架安装等服务。

目前主要销售的产品有:精品货架,仓储货架(包括轻量型仓储货架、中量型仓储货架、重量型仓储货架、万用角钢货架等),超市货架及其超市配套设备,图书音像货架等辅助设备。

想了解更多托盘货架的主体结构和作用,请点击进入金利得官网咨询!

重型横梁货架

阁楼货架

层板货架

钢平台

悬臂条货架

流利条货架

篇3:托盘 塑料托盘 金属托盘

托盘 塑料托盘 金属托盘 本文关键词:托盘,金属,塑料托盘

托盘 塑料托盘 金属托盘 本文简介:各种不同托盘各有什么优势呢?托盘通常用于物流行业中集装、堆放、搬运和运输货物。现如今,托盘现已广泛应用于生产、运输、仓储和流通等领域,被认为是20世纪物流产业中两大关键性创新之一。托盘给现代物流业带来的效益主要体现在:可以实现物品包装的单元化、规范化和标准化,保护物品,方便物流和商流,托盘又名栈板,

托盘 塑料托盘 金属托盘 本文内容:

各种不同托盘各有什么优势呢?

托盘通常用于物流行业中集装、堆放、搬运和运输货物。现如今,托盘现已广泛应用于生产、运输、仓储和流通等领域,被认为是20世纪物流产业中两大关键性创新之一。托盘给现代物流业带来的效益主要体现在:可以实现物品包装的单元化、规范化和标准化,保护物品,方便物流和商流,托盘又名栈板,夹板。

我们经常使用的托盘优以下几种,塑料托盘、木托盘、钢托盘和金属托盘。下面就为大家介绍下这几种托盘,宁比较他们之间个有什么优点?

塑料托盘

山东中运塑料托盘是可安装工件及其随行夹具,并且能在各工位、工作台之间互相交换的装置。用于集装、堆放搬运托盘的车、搬运和运输的放置作为单元负荷的货物。

托盘给现代物流业带来的效益主要体现在:可以实现物品包装的单元化、规范化和标准化,保护物品,方便物流和商流。

塑料托盘具有以下特点:

1.四面可插,操作方便;

2.既适合在仓库中互相堆垛,又适合在各类货架上使用;

3.适合各类卡车运输,方便物料的集装化、单元化运输;

4.方便叉车、液压托盘车等搬运工具作业;

5.配合防滑橡胶,保证物料在搬运和运输过程中不会滑落;

6.使用寿命长,且可循坏再用;

7.塑料托盘使用安全、卫生、防虫防蛀,无需修理。

塑料托盘与其他托盘相比有以下优势:

在耐腐蚀性方面,塑料托盘最好,塑木次之,钢托盘最差;

在耐潮湿性方面,塑料托盘性能优异;

在平均寿命方面,钢托盘和塑料托盘难分伯仲;

在使用性能上,塑料和钢托盘均优於纸、木托盘;

塑料托盘规格:

主要是1100mm×1100mm和1200mm×1000mm约占塑料托盘的50%左右.并且有网格的和川字形的。

免熏蒸模压木托盘

免熏蒸模压木托盘概述:

免熏蒸模压木托盘不长虫,不发霉,成本低,实用可靠,免去出口熏蒸消毒,节省费用支出,无须签证,可直接出口(输美,英,加,澳及欧盟等国)及可从境外直接输入中国它可以凭“无木材包装”声明接办理出口手续。免熏蒸模压木托盘属于免检产品环保型优质模压托盘,经过极大高温高压由模具重压制成,是环保模压托盘是所有托盘中承托力最强的托盘,免熏蒸模压木托盘符合世界各国的入境和环保要求。

免熏蒸模压木托盘主要规格:

1200mm×1000mm;1100mm×1100mm;1200mm×800mm;静载3-4吨,动载1-2吨。

钢托盘

钢托盘简介:

山东中运钢托盘(钢制托盘)是传统木托盘、塑料托盘的理想换代产品,适合叉车作业,存取货物方便。

主要用于多用途的地面存储、货架存储及货物联运、周转等超轻金属托盘系列。集装、堆放、搬运和运输的放置作为单元负荷的水平平台装置。是现在工业重要的仓储与运输辅助设备之一。

主要材料为钢材或镀锌钢板,经专用设备成型,各种型材互相支撑,铆钉连接加强,再经CO2气体保护焊焊接而成。

钢托盘的优点:

承载能力在托盘中是最强的。

2、100%环保,可以回收再利用,资源不浪费。

3、表面作防滑处理,周边作包边处理。底盘坚固,整体质量轻而钢性强。具备稳定的包装性能;

4、防水,防潮及防锈;与木托盘相比有环保优势(如木托盘容量滋生虫害)。

5、与塑料托盘相比有强度、耐磨、耐温及价格优势。

6、特别是用于出口时,不需要熏蒸、高温消毒或者防腐处理,符合国际环保法规;

7、灵活(四方向的插入设计,无形中提高空间利用和操作的方便性,而且其坚固的底版设计亦符合输送滚输和自动包装系统使用)等。

400---零八六-----叁零伍陆

金属托盘

金属托盘技术参数

型号

长度(mm)

宽度(mm)

叉车道间距

高度(mm)

载重性能

动载(T)

静载(T)

SC-II-1318

1800

1300

550-850

80

2.0-2.3

6.0-7.0

金属托盘优点

1、承载能力在托盘中是最强的。

2、100%环保,可以回收再利用,资源不浪费。

3、表面作防滑处理,周边作包边处理。底盘坚固,整体质量轻而钢性强。具备稳定的包装性能;

4、防水,防潮及防锈;与木托盘相比有环保优势(如木托盘容量滋生虫害)。

5、与塑料托盘相比有强度、耐磨、耐温及价格优势。

6、特别是用于出口时,不需要熏蒸、高温消毒或者防腐处理,符合国际环保法规;

7、灵活(四方向的插入设计,无形中提高空间利用和操作的方便性,而且其坚固的底版设计亦符合输送滚输和自动包装系统使用)等。

    以上《创建具有托盘的服务程序》范文由一流范文网精心整理,如果您觉得有用,请收藏及关注我们,或向其它人分享我们。转载请注明出处 »一流范文网»最新范文»创建具有托盘的服务程序
‖大家正在看...
设为首页 - 加入收藏 - 关于范文吧 - 返回顶部 - 手机版
Copyright © 一流范文网 如对《创建具有托盘的服务程序》有疑问请及时反馈。All Rights Reserved