我需要我的应用程序根据特定事件启动和停止 Windows 服务。问题是这个应用程序需要以提升的普通用户身份运行(为了停止服务),以及在 Windows 启动时自动启动。此外,它需要位于带有用户界面的系统托盘中。
我有哪些选择?
我想至少有两种可能性:
- 通过将应用程序放入启动文件夹或注册表中的 ..\Run 项中,使应用程序自动启动。但问题是,如果Windows每次启动时不弹出UAC提示对话框,能不能做到这一点?
- 开发一个安装为作为系统运行的 Windows 服务,在系统托盘中有一个单独的 GUI 应用程序。但是,为了在提升的服务和正常的系统托盘应用程序之间进行通信,我在这里有哪些 IPC 可能性?
有什么想法和建议吗?
最佳答案
绝对选择选项 2,并专门使用 WCF(Windows Communication Foundation)通过 wsHTTPS 绑定(bind)与 Windows 服务通信,这样您就可以验证登录用户是否被允许对 Windows 托管的 WCF 服务执行操作服务。
关于c# - 如何设计在 Windows Vista/7 上以管理员身份运行的自动启动应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2336249/