说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

运用Delphi编写Windows NT中服务程序

HTML文档下载 WORD文档下载 PDF文档下载
运用Delphi编写Windows NT中服务程序

---- Windows NT服务程序不同于一般的运行程序,它不需要NT登录进去,只需要开机进入NT系统便可以运行,一般用于系统服务方面的应用,学会编写NT服务程序对网络管理人员而言是非常重要的,Delphi4.0作为一种高效、快速、强大的开发语言,为开发NT服务程序提供了非常便捷的方法,加上其可视化界面以及与数据库的完美结合,使我们开发与数据库有关的NT服务程序变得非常简单,下面以编写一个NT定期备份程序为例,介绍如何运用Delphi编写Windows NT的服务程序。

---- 打开Delphi编辑器,选择菜单中的File|New,在New Item中选择Service Application项,Delphi便自动为你建立一个基于TServiceApplication的新工程,TserviceApplication是一个封装NT服务程序的类,它包含一个Tservice1对象以及服务程序的装卸、注册、取消方法。

---- 将Tservice1对象的属性做下列更改:

DisplayName与Name改为:DataBackup,

ServiceStartName属性改为系统管理员

用户(如DOMAIN\Administrator)和Password则输入用户密码

---- 这样,服务程序运行时将自己以该用户的权限操作NT。

---- 这样,一个NT服务程序编写已经完成,在Delphi编辑器中选择菜单Run|Parameters,在Parameters中输入/install,程序编译运行后,一个名为DataBackup的NT服务程序已经安装好,你可以双击控制面板中的服务项目,将会看到此服务程序,只是此服务程序没有任何东西而已;在Delphi编辑器中选择菜单Run|Parameters,在Parameters中输入/uninstall,程序编译运行后,系统将会将此服务程序卸掉。

---- 服务程序是通过控制一个线程的生成、暂停、继续、停止来达到服务目的的,因此我们必须加入一个Tsession对象来编写文件自动备份代码,在Delphi编辑器中选择菜单中的File|New,在New Item中选择Thread Object项,Delphi会提示你为该Tsession对象输入一个名称(输入DataCopy)

Delphi便生成了一个基于Tsession的DataCopy对象,并提供了一个Execute过程供重载,我们要Execute过程中输入以下程序:

var

Hour

Min

Sec

MSec: Word;

TimeStamp

DirectoryEdit1

DirectoryEdit2:String;

SearchRec: TSearchRec;

Source

Temp

Dest:Pchar;

F

F1:THandle;

FF

FF1:WIN32_FIND_DATA;

Begin

{每次文件备份执行时间}

TimeStamp:='12:00';

{文件备份源目录}

DirectoryEdit1:='C:\temp';

{文件备份目录}

DirectoryEdit2:='C:\temp1';

while True do

begin

DecodeTime(Time

Hour

Min

Sec

MSec);

IF Trim(TimeStamp)=Format

('%-2.2d:%-2.2d'

[Hour

Min]) then

begin

GetMem(Source

250);

GetMem(Dest

250);

GetMem(Temp

250);

StrPcopy(Dest

DirectoryEdit2+'\

'+FormatDateTime('YYYYMMDD'

Date));

CreateDirectory(Dest

nil);

IFFindFirst(DirectoryEdit1+'\*.*'

faAnyFile

SearchRec)=0 then

begin

repeat

StrPcopy(Source

DirectoryEdit1+'\'+SearchRec.Name);

StrPcopy(Dest

DirectoryEdit2+'\'

+FormatDateTime('YYYYMMDD'

Date)+'\'+SearchRec.Name);

copyfile(Source

Dest

False);

until FindNext(SearchRec)< >0;

end;

SysUtils.FindClose(SearchRec);

FindClose(F);

FreeMem(Source

250);

FreeMem(Dest

250);

FreeMem(Temp

250);

end;

sleep(60000);

end;

end;

---- 此线程执行时每隔一分钟将检查一次时间,看是否到了备份时间,如果是则将DirectoryEdit1中的所有文件拷到DirectoryEdit2目录中去。

---- 现在编写服务控制DataCopy线程的代码,在TdataBackup对象中的OnStart、OnStop、OnPause、OnContinue事件中分别输入如下代码:

procedure TDataBackup.DataBackupStart

(Sender: TService;

var Started: Boolean);

begin

DataThread:= TDataCopy.Create(False);

Started := True;

end;

procedure TDataBackup.DataBackupStop

(Sender: TService;

var Stopped: Boolean);

begin

DataThread.Terminate;

Stopped := True;

end;

procedure TDataBackup.DataBackupPause

(Sender: TService;

var Paused: Boolean);

begin

DataThread.Suspend;

Paused := True;

end;

procedure TDataBackup.DataBackupContinue

(Sender: TService;

var Continued: Boolean);

begin

DataThread.Resume;

Continued := True;

end;

---- 这样一个文件自动备份程序已经完成,编译好后,加上/install参数执行程序,系统会将此服务程序安装,由于服务程序中StartType属性为stAuto,NT每次启动时,此程序自动执行,你可以在控制面板中的服务项目来启动、暂停、恢复、停止它,也可以加上/uninstall参数执行程序来卸掉它。通过上述例子我们可以看到,用Delphi编写NT服务器程序十分方便,而且你也可以在Tservice对象上加许多非可视化控件来与数据库关联,实现很多复杂的功能。

VB如何每天抓取 Internet 上某一个网页中的图片来更换桌面的壁纸 VB如何启动拨号网路中的连线? VB如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序? VB如何用VB打开默认浏览器或默认发信程序? VB如何用Visual Basic编写小型的网络系统 VB如何在程序中启动 NT 的【拨号连接】对话框? VB如何在网页上使用 VB5 制作的 ActiveX 控件? VB如何中断【拨号网络连接】? 设计Browser及FTP程序 -VB资料 设计Chat程序 -VB资料 设计E-mail程序 -VB资料 使用VB获得一页的HTML代码 使用VB收发电子邮件 VB使用超链接和发送Email VB使用浏览器的文件复制对话框 输入/输出篇 -VB资料 通过WnetEnumResource函数获得网络资源 -VB资料 通往 Internet 的捷径-VB资料 显示计算机的名称 -VB资料 VB用 MAPI 控件实现发送邮件 VB用 WinSock 控件下载文件 VB用 Winsock 实现聊天的程序 VB用Internet Transfer编写FTP程序 VB用Sockets发送电子邮件 用VB 创建自己的通信程序 用VB5.0开发通信软件的技巧 用VB5开发IE 用VB编写网络寻呼 用VB编写小型的网络系统 用VB创建自己的通信程序 用VB构建Internet的应用 今有同仁问到,三十以后咋过。恰巧心情郁闷,发上几句牢骚。 少年暗恋对象,早已嫁作人妇。那天遇见街头,孩子叫我叔叔。 OICQ问题! 如何可获得Table 内字段的类型及长度? windows2000 server 的internet 共享怎样设置权限 软件开发的请进来讨论,关于报酬的问题。大家多提建议。 1.为什么有些地方可以用MessageBox函数,有些地方不可以2.mfc的CView::OnFilePrint提供了打印的方法,要是一个程序没有视图要打印一般用什么方法? 请问在DEVELOP2000里面可以使用进度条控件吗?怎么编程实现? ???oracle监听器问题? WebBrowser控件获得网页中文本框的名称该如何写? CFtpConnection 怎样在FastReport中控制或判断所连接的数据库表到了eof? CTypedPtrList模板对象中,如何删除指定位置的元素??十分着急! ms sql server 的技术问题 怎样清除事务日志????????? 在那里改个人在cdsn.net注册信息(如名字,地秩)? 关闭窗口的事件如何触发?( 高手们请问deiphi如何实玩宏代换???????????十分火急!!!!!!! 请帮忙!!SOS!!! 请问如何实现宏代换????????????? 关于打印的一个不错的设想 我是新手,初次接触网络管理,请问要管理局域网需要具备哪些方面的知识,需要安装那些应用软件?有什么好书可以介绍吗?谢谢各位! 在VB中设计控件,其上放有uText1、Text2,当uText1失去焦点时,并不触发Validate事件 如何在程序中判断是否做了超级连接? 怎样使listview中的大图标左右居中,上下居中。 怎么样处理聊天室的退出问题? 比较大的问题,请做过JAVA系统集成方案的朋友指点!!! applet,这个霸道的家伙!怎么解决阿? c++类的一个小问题 一个大家都很棘手的问题 关天构造函数的问题 学习《windows程序设计》中的问题? pb8里的autoscript怎么弹出那么慢 消息:c++与Visaul c是不是有一定的区别呢? 怎样通过程序获得当前可用的拨号网络列表?? 高手在哪里?-------> 如何在第一时间里获得屏幕的变化呢?及获得屏幕变化的那部分?各位大师,帮帮我。谢了。 请问想具备基本的网络和数据库管理方面的知识,看什么书好啊?请大家帮忙推荐一下,谢谢! 请教W2k下使用Access的问题 大家帮帮忙,sql菜鸟问题, 各位兄弟帮忙看一下 谁知道高程分数线?拜托告知一声! 如何判断是否做了超级连接? vc中怎样调用dos下的代参数的可执行文件???请教! 如何让TreeView控件的每一个子节点前有一个多选框! jbuilder4中的JGL的问题 如何构建一个数据仓库(高分求救) 怎么样在NT里看到我的电脑装了哪些硬件? 查找数据不连系变化 招聘WINDOWS界面程序员(可兼职) 哪里有介绍cricheditview的中文文章,最好是详细一点的,谢谢! 怎么样将NT里的Temp这个文件移到别的分区? 刚买的机器回来却出了问题(请教高手) 小问题70分,谁解决了就送给谁 配平化学方程式具体算法? 最好说的通俗易懂. 谢谢啦 高一关于化学计量这类的题有没有什么总结的经验 化学差量计算天平左右分别加入等质量等浓度的H2SO4,左边加入氧化钠5.2g,欲使天平平衡要向右边加入氢氧化钠、碳酸钠、碳酸氢钠、金属钠、氯化钠各多少克?这题主要是题意的理解,是这些物 要所有化学方程式配平方法详解,还要举例的. 高一关于物质量的计算的化学题现有200mL H2SO4和NA2SO4 的混合溶液,其中硫酸的物质的量浓度为1mol/L,硫酸钠的物质的量浓度为0.5mol/L,若要配制硫酸和硫酸钠的物质的量浓度分别为2mol/L和0.2mol/L的 关于化学中的差量计算 食盐的成分 高一关于化学计量这类的题有没有什么总结的经验,我化学不好, 将一定质量的小苏打和铜混合物在空气中加热到质量不再变化时,发现加热前后质量不变,则原混合物铜的 质量分数.差量法我应该怎么找它们量的 关系呢?我每次拿到题 都不知道如何动笔.特 食盐的成分是氯化钠这句话是描述食盐的什么性质?是物理性质还是化学性质 下图是医院病人输液使用的一瓶质量分数为5%的葡萄糖(C6H12O6)注射液标签,请你认真观察标签上所列内容然后填写.①该溶液中含水多少克?②该溶液的密度约为多少?③该溶液的物质的量浓度为 化学问题(关于差量计算)加热碳酸镁和氧化镁的混合物m克,使之完全反应,得剩余物n克,则原混合物中氧化镁的质量分数是什么? 高一化学必修一物质的量习题8.4g氮气和9.6g某单质Rx所含的原子个数相同,且分子个数之比为3:2,则R的相对原子质量是——,x的值是——.小学生绕道,知道的来 海水中含多少盐 将CO和CO2的混合气体2.4g,通过足量的炽热的CuO后,得到CO2质量为3.2g,求原混合气体中CO和CO2的质量各为多少g? 练习题一、填空题 1.5molCO2的质量是______;在标准状况下所占的体积约为______;所含的分子数目约为______;所含氧原子的数目约为______.2.在400mL2mol/LH2SO4溶液中,溶质的质量是______.此溶液中 3 乙烷在空气中燃烧与在氧气中燃烧的现象,原因,,及危害 硫磺燃烧的化学方程式是什么急! 这里有个高一化学方程式,请配平,Na2SX+NaClO+NaOH=Na2SO4+NaCl+H2O注意:其中x为未知数!还有一个比较简单:K2Cr2O7+Fe3O4+H2SO4=Cr2(SO4)3+Fe2(SO4)3+K2SO4+H2O 在一密闭容器中盛有H2,O2,CL2组成的混合气体,通过电火花引爆后,三种气体恰好完全反应,经充分冷却后所得溶液的质量分数为33.4%.求原混合气体中H2,O2,CL2体积的简单整数比.(用小于10的整数表 硫黄在纯氧中燃烧的化学方程式 高一化学方程式配平的方法 高一简单化学计算求过程在4L容器中加入18g水蒸汽,28g一氧化碳,在t度c(>100)发生如下反应:CO+H2O(g)=CO2+H2,在最初5S内,一氧化碳的平均反应速率是0.02mol/(L.s)求5s未时,容器内二氧化碳的质量? 硫磺在空气中燃烧的文字表达式 什么植物里有盐的成分 铁粉和氧化铁粉末一共48.8g,加入700ML的稀硫酸中,恰好完全反应,得到氢气2.24L(标准状况),想反映后的溶液加入NH4SCN溶液不变红.1.求铁和氧化铁的质量2.原稀硫酸的物质的量的浓度 高一上化学计算题一块表面以部分氧化(氧化层为Na2O)的金属钠样品质量为5.22克,放入94.98克水中后得到气体的质量为0.2克求①该样品含氧化钠多少克?②所得浓液浓质的质量分数为多少? 高一化学方程式怎么配平 8.8g FeS固体置于200ml 2.0mol/L 的盐酸中,以制备H2S气体.完全反应后,若溶液中H2S的浓度为0.1mol/L,假定溶液体积不变,求:1.收集到的H2S气体的体积(S.T.P)2.溶液中Fe2+和H+的物质的量浓度我想问的只是 把密度为1.32/ml的硫酸溶液逐滴加入氯化钡溶液中,直到恰好完全沉淀为止.已知生成的溶液质量等于原氯化钡的质量,则硫酸的质量百分比浓度为--------,物质的量浓度为--------- HNCO+NO2→N2+CO2+H2O 高一简单化学计算,帅哥美女帮忙~现有某盐酸36.5克,其中HCl的质量分数为10%,盐酸密度为1.05g·cm-3.试计算:(2) 求Cl-的物质的量浓度是多少?(保留两位小数) 把70ml H2S和90ml O2(STP)混合在一定条件下点燃,使之反应.当反应完全后恢复到原来状况,可得SO2多少?(不考虑SO2在水中的溶解) 第一题:AgF+Cl2+H2O---3AgCl+AgClO3+4HF+O22:KMnO4+FeSO4+H2O---Fe(OH)3+MnO2+Fe2(SO4)+K2SO4纠正 是Fe2(SO4)3第一题没系数存在 打多了 大海的含盐率一定,海水和盐成什么比例?如果成比例,成什么比例 需求· · · 物质的量入门题!大师请过目纠错!顺便把空着的写下过程! 海水的准确含盐率希望能够得到正确答案 在海水晒盐的过程中发生了什么反应 高一入门化学 物质的量的问题1.a mol 硫酸中含有b个氧原子,则阿伏伽德罗常数可表示为 A 4b分之a 摩 B 4a分之b 摩 C b分之a 摩 D a分之b 摩2.配置50摩的HCL 6摩的KCL 和24摩的K2SO4的营养液 ,若用KCL HCL 海水的含盐比例是多少? 直接把海水晒成盐,要不要再加工工处理? 物质的量 题若以μ表示水的摩尔体积,V表示在标准状态下水蒸气的摩尔体积,ρ为在标准状态下水蒸气的密度,NA为阿福加德罗常数,m、△分别表示每个水分子的质量和体积,下面四个关系式,其中 150吨海水中含盐4.5吨,求海水的含盐率. 与氢气有关,第13条,为什么氢气后面不加向上的箭头, 海水含盐比例是多少?急~~~~~~~ C2H6燃烧方程式 氢气的化学方程式怎么写 海水的含盐量是多少? 化学计算2道 两种饱和一元醇的混合物11.5g,与足量的金属钠反应,可生成0.25g氢气,这两种醇分子组成上相差2个CH2原子团.(1)推导并写出两种醇的结构简式;(2)计算混合物中相对分子质量较小的醇 关于粗盐配置质量分数一定的氯化钠溶液.现欲将粗盐提纯,并用制得的粗盐配置质量分数一定的氯化钠溶液,下列说法正确的是A.粗盐溶解时,可边加粗盐边用玻璃棒搅拌加快溶解B.蒸发溶液时, 1.1.5molCO2的质量是多少?有8.8gCO2中含有多少个CO2分子?2.9.8gH2SO4中有多少个H2SO4分子?多少个氢原子?多少个硫原子?多少个氧原子?多少个SO42-离子?3.1.204×1023个H2O分子的物质的量是多少?质量是多少? 为什么海水里含有大量的盐?人们都听说过海水里含有大量盐吧,可为什么含有那么多盐呢? 乙烷不完全燃烧方程式如题,告诉我啊,各位化学天才~~ 急+追分!1.用30gNaOH溶于500ml水中,所得溶液的密度为1.02g/ml ,求该溶液的物质的量浓度.2.700体积的NH3(标况)溶于1体积的水中,所得溶液的密度为0.9g/ml,求所得溶液的物质的量浓度.3.将足量的金属锌 海水中为什么含大量的盐? 25.用19.2克铜与足量的浓硫酸共热,充分反应后:(1)反应中被还原的硫酸的物质的量的多少?(2)在标准状况下能产生多少升气体?26.在160 mL未知浓度的稀硫酸中,加入100 mL浓度为0.4 mol/L的 盐的成分是什么 已知,乙烷的化学式是C2H6,90克乙烷含碳元素多少克?多少克乙烷中含氢12克?乙烷和二氧化碳混合物中含氢元素的质量分数是11.2%,则该混合物中领导氧元素的质量分数? 海水中为什么含大量的盐?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn