300分哦!怎么样使DELPHI的程序做成可以加入WIN2000的服务里自动运行(300分)

  • 主题发起人 主题发起人 chenby
  • 开始时间 开始时间
C

chenby

Unregistered / Unconfirmed
GUEST, unregistred user!
1.怎么样使DELPHI的程序做成可以加入WIN2000的服务里自动运行
就像win2000的一些服务一样可以在启动时运行.

2.怎么样式使delphi的程序只要在一台计算机运行一次后以后每次开机都会运行,
而且不会察觉,就像写入到注册表一样,但又可以启动时自动运行,
还不能看到出来有此程序在运行.
 
新建一个Service Application,不过没在2000下试过。
 
照李维的书做Service Application。
 
同样是Service Application,我试过,做完之后,程序名 /install。--服务器安装。
一切 OK
 
1. 为什么一定要象NT 的 SERVICE 那样呢? 直接在运行中加个快捷方式,
或在注册表中RUN 或 RUNSERVICE 中加入你的程序不就...
2. 在程序启动的时候最小化, 或窗口的VISIBLE := FALSE; ,
如果必要的话去掉任务拦上的标题, 就 OK 了 !
 
Service Application是最好的。你可以看看Borland SocketSetver程序的源码。

DelphiPath/Source/Vcl/scktsrvr.dpr 它在NT下可做服务,在98下就做普通的程序哟

安装该服务用 scktsrvr /install
 
还是作Service Application,李维的《delphi 5.x分布式多层应用系统篇》中有详细
的介绍。
 
to:baby_god
不做成Service Application的话在NT下不登录就不能运行,而Service Application
不用登录就可运行
 
把他的快捷方式做到RUN中去。
 
这么复杂哦,到网上下个可以把应用程序做成服务的软件就可以搞定啦,根本不用去研究什么service application。
 
致各位高手:
第1个问题你们解答得都差不多了,而且我也看了李唯的分布式里面的application service.
应该是可以解决的.

但为什么第2个问题都没人帮我解答呢?
 
注册表中把自己的应用程序写到这儿来
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
想让人家看不到,在9x下可以这样做
function RegisterServiceProcess(dwProcessId:DWORD;dwType:DWORD):integer;stdcall external'KERNEL32.DLL';//只能在9x下用,就是把一个进程注册为服务啦
在form create的时候
RegisterServiceProcess(Application.Handle,1);


 
看看Borland SocketSetver程序的源码。
 
自動加到註冊表里去﹕
假設你的程序名字叫test.exe﹐路徑﹕c:/test.exe
下面的例程你試試看。
procedure TClient.WriteReg;
var
Regf:TRegistry;
begin
Regf:=TRegistry.Create;
Regf.RootKey:=HKEY_LOCAL_MACHINE;
try
RegF.OpenKey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',True);
RegF.WriteString('test','"c:/test.exe"');
except
end;
RegF.CloseKey;
RegF.Free;
end;
 
加到注册表的启动目录就行了,可能把它加到任务栏通知区域(如金山词霸),这样
任务栏就不会显示程序标题了。
 
多人接受答案了。
 
后退
顶部