我正在构建一个在后台记录3D流程的程序。其中一些以管理员身份运行,我需要运行提升以捕获它们。我正在使用带有p / invoke的psapi EnumProcesses。我现在的问题是:我如何设计这个程序:
我查看了TaskScheduler解决方案,但启动用户界面似乎存在问题,而且任务栏图标可能不会显示,所以这似乎没有解决方案,至少在建议的方式上。
我见过人们推荐一个单独的进程作为任务/服务运行,然后与之通信。如果这是一个更好的推荐解决方案,那么在C#中与其他进程通信的推荐方法是什么?我见过人们推荐使用命名管道和RPC。
总而言之,我的问题是,如何在Windows 10"上构建适当的#34; .NET(4.6)/ C#。方式是什么?
答案 0 :(得分:0)
一些想法:
用户登录后启动该程序:
您应该浏览Windows启动文件夹或注册表HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
捕获权利提升的流程
检查this;
UI和TaskIcon /能够重启/关闭我的程序
我会选择在系统托盘中启动的UI应用程序,并使用WCF与进程监视器进行通信以进行更复杂的数据迁移,如果只需要信号迁移,则使用EventWaitHandle进行通信。
如前所述,我会选择2个应用程序:1个用作监视器服务(无UI)和带有UI的客户端应用程序。这些进程之间的通信在很大程度上取决于您的需求,但WCF可能是复杂数据的理想选择,或者只是发送/接收信号的EventWaitHandle。