Delphi 服务程序[1] 介绍
Delphi 服务程序[1] 介绍
1、系统服务优点:
- 随系统启动而启动,不需要用户手动执行,适合做后台检测程序等
- 不用登录系统即可运行
- 在后台运行,不与Windows桌面相互影响
- 拥有System权限,在任务管理器中无法结束运行
2、系统服务和桌面程序的区别是:
- 系统服务不用登陆系统即可运行;
- 系统服务是运行在System Idle Process/System/smss/winlogon/services下的,而桌面程序是运行在Explorer下的;
- 系统服务拥有更高的权限,系统服务拥有Sytem的权限,而桌面程序只有Administrator权限;
- 在Delphi中系统服务是对桌面程序进行了再一次的封装,既系统服务继承于桌面程序。因而拥有桌面程序所拥有的特性;
- 系统服务对桌面程序的DoHandleException做了改进,会自动把异常信息写到NT服务日志中;
- 普通应用程序启动只有一个线程,而服务启动至少含有三个线程。(服务含有三个线程:TServiceStartThread服务启动线程;TServiceThread服务运行线程;Application主线程,负责消息循环);
3、Windows不建议在服务程序中与桌面有交互:
- 在Windows Xp及以前的版本Windows服务和用户桌面还运行在一个session下,所以服务程序还可以比较轻松的与桌面进行交互。
- 但是自Windows Vista及以后的系统中,服务程序是运行于session0中,而第一个启动的用户则运行于session1中,要想在服务中显示桌面或者与桌面程序交互要使用很复杂的技术,甚至用CreateProcess和ShellExecute启动的应用程序都无法在用户桌面中显示。
4、Delphi 创建服务步骤:
New->Other->Service Application
创建时间:2021.01.21 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!