c# - 如何设计在 Windows Vista/7 上以管理员身份运行的自动启动应用程序?

标签 c# .net uac autostart

我需要我的应用程序根据特定事件启动和停止 Windows 服务。问题是这个应用程序需要以提升的普通用户身份运行(为了停止服务),以及在 Windows 启动时自动启动。此外,它需要位于带有用户界面的系统托盘中。

我有哪些选择?
我想至少有两种可能性:

  1. 通过将应用程序放入启动文件夹或注册表中的 ..\Run 项中,使应用程序自动启动。但问题是,如果Windows每次启动时不弹出UAC提示对话框,能不能做到这一点?
  2. 开发一个安装为作为系统运行的 Windows 服务,在系统托盘中有一个单独的 GUI 应用程序。但是,为了在提升的服务和正常的系统托盘应用程序之间进行通信,我在这里有哪些 IPC 可能性?

有什么想法和建议吗?

最佳答案

绝对选择选项 2,并专门使用 WCF(Windows Communication Foundation)通过 wsHTTPS 绑定(bind)与 Windows 服务通信,这样您就可以验证登录用户是否被允许对 Windows 托管的 WCF 服务执行操作服务。

关于c# - 如何设计在 Windows Vista/7 上以管理员身份运行的自动启动应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2336249/

相关文章:

c# - 可空类型和三元运算符 : why is `? 10 : null` forbidden?

.net - 范围数据注释属性不验证 .99?

c# - 如何使用 ILGenerator 设置 ".maxstack"

c - 从命名管道获取客户端用户 token

c# - 在 C# 中,控件不能从一个案例标签 ('default:' ) 掉落到另一个案例标签

c# - 加速 Entity Framework 4.2 POCO

.net - 需要打开哪些端 Eloquent 能从域外 IIS Web 服务器上的 asp.net 站点向 AD 服务器进行身份验证?

c# - 如何判断请求的目录是否可写?

batch-file - 如何在批处理文件中请求管理员访问权限

c# - 在 C# 中,我无法将 XML 反序列化为对象