元文件查看器:开发与优化
1. 模拟 NT 服务
在 Windows 系统中,通过利用 RunServices 键可以模拟 NT 服务,实现大致相同的行为。Windows 9x 服务本质上是普通的 Win32 应用程序(无论是 GUI 应用还是控制台应用),只需在 RunServices 键中注册,即可在每次登录前运行。
调用 RegisterServiceProcess() API 函数,可将当前进程(或其他正在运行的进程)注册为服务,使其在用户注销后仍能继续工作。不过,该函数未通过任何导入库公开,需要通过 kernel32.dll 中的 GetProcAddress() 动态加载。
以下是 Windows NT 和 Windows 9x 服务的差异对比:
| Windows NT 服务 | Windows 9x 服务 |
| — | — |
| 公开 ServiceMain() 函数的 Win32 应用程序 | 传统 Win32 应用程序 |
| 登录前运行 | 若在 RunServices 下注册,则登录前运行 |
| 注销后继续运行 | 若使用 RegisterServiceProcess() 注册为服务,则注销后继续运行 |
| 无用户界面的 GUI 或控制台应用程序 | 无用户界面的 GUI 或控制台应用程序 |
| 可在系统账户下运行 | 不支持 |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



