我下载了一个开源 C++ 应用程序。此应用程序作为 Linux 守护进程运行,监听端口并等待来自客户端 PC 的连接。有人在 Cygwin 下编译了此应用程序,以便它可以在 Windows 环境中运行。Windows 版本附带一个 .exe 可执行文件以及 2 个 Cygwin DLL。
我曾尝试在 Windows XP 中运行此应用程序。当我在命令行中运行 .exe 可执行文件时,该程序能够将自身置于后台并作为 Windows 服务运行。当我打开任务管理器窗口时,我可以看到该程序正在后台运行。客户端 PC 也能够成功连接到该程序。
但是,当我在 Windows 7 中运行相同的 .exe 可执行文件时,什么也没有发生。程序无法启动。当我检查任务管理器窗口时,我看不到与此应用程序相关的任何进程。
请问Windows XP服务和Windows 7服务有什么区别?
由于它是一个开源程序,我想修改它,以便它可以作为服务在 Windows XP 和 Windows 7 中运行。如果有人能给我一些指导,我将不胜感激。
谢谢。
答案1
XP 和 Vista 之间的一个很大的区别是服务不再被允许使用桌面,所以这可能是一个问题。
确保将应用程序文件放在执行它的用户可以访问的位置,不要将它们放在您自己的用户配置文件目录中。
我首先会尝试将您的申请注册为真实的服务,而不是直接从命令行调用它。从命令行检查“sc”应用程序。您可以使用“sc create ...”注册您的服务,然后使用“sc start ...”启动您的服务。如果出现问题,请查看事件日志以查找可能的错误消息。