2017-02-10 54 views
0

我正在构建一个程序,在后台记录3D进程。其中一些以管理员身份运行,我需要运行提升来捕获这些。我使用p/invoke使用psapi EnumProcesses。现在我的问题是:我怎么建筑师这个有程序:在启动和进程间通信时运行提升

  • 启动用户登录
  • 捕获流程以提升权限
  • 有无UI和TaskIcon目前
  • 能够重新启动/关机我程序

我看着TaskScheduler解决方案,但似乎有推出用户界面和任务栏图标可能不会出现问题,因此这似乎是无解,至少在地那个uggested。

我见过有人推荐一个单独的进程作为任务/服务运行,然后与它通信。如果这是一个更好的建议解决方案,那么与C#中的其他进程进行通信的推荐方式是什么?我看到有人推荐命名管道和RPC。所以总的来说,我的问题是,我如何构建这个适当的“.NET(4.6)/ C#在Windows 10上”的方式?

回答

0

一些想法:
入门用户登录后的程序:
您应该探索Windows的启动文件夹或注册表HKEY_CURRENT_USER \ SOFTWARE \微软\的Windows \ CurrentVersion \ Run中以提升权限
拍摄过程
检查this;
UI和TaskIcon /能够重新启动/关机我的程序
我会去启动在系统托盘,并使用WCF进行更复杂的数据迁移或的EventWaitHandle如果你只需要信号迁移进程监视器通信的用户界面应用程序。

如前所述,我会去2个应用程序:1充当您的显示器服务(无UI)和一个带UI的客户端应用程序。这些进程之间的通信很大程度上取决于您的需求,但WCF可能是复杂数据或EventWaitHandle仅用于发送/接收信号的理想选择。

相关问题