代码之家  ›  专栏  ›  技术社区  ›  Doug

如何公开有关正在运行的.NET exe的信息?

  •  0
  • Doug  · 技术社区  · 15 年前

    我知道如何shell到exe。我知道如何从我的项目中添加对exe的引用,我想使用这个对象。但是我怎样才能访问这个正在运行的exe的属性呢?

    我希望我解释得很好。

    如果你知道答案,也许你可以告诉我标准的方法是在运行时将一个正在运行的exe的属性暴露给另一个应用程序。

    谢谢你的帮助!

    5 回复  |  直到 15 年前
        1
  •  0
  •   John Saunders    15 年前

    您的EXE可以承载WCF服务。此服务可以公开操作(而不是属性),这些操作可以公开有关正在运行的EXE的信息。

        2
  •  1
  •   Joshua    15 年前

    这样不行。

    在进程之间共享数据的唯一方法是管道(Process.Start()可以重定向标准输入、标准输出和标准错误)、共享内存(在纯托管代码中不可用)、退出代码以及文件系统或网络通信机制。

    在您的特定情况下,我猜命名管道是您想要的技术。

        3
  •  1
  •   Robben_Ford_Fan_boy    15 年前

    您是否考虑过将对象公开给PowerShell,以便从PowerShell调用对象?

    暴露对象:

       runspace.SessionStateProxy.SetVariable("ObjectName", ObjectName)
    

      $ IDLevel.ObjectName
    

    在这个对象中,您可以使用一些简单的“getter”方法来返回有关exe的信息。

        4
  •  1
  •   Sam Saffron James Allen    15 年前

    PerfMon counters 并定期更新。

        5
  •  0
  •   Oliver Slay    13 年前

    您可以为第一个应用程序编写一个简单的WMI.NET提供程序扩展,将配置设置公开给WMI。。。然后其他程序可以监视和更改设置。。。

    WMI.NET提供程序扩展方案
    http://msdn.microsoft.com/en-us/library/bb885141(v=vs.90).aspx

    如何通过WMI公开配置设置
    http://msdn.microsoft.com/en-us/library/bb404687(v=vs.90).aspx

    Windows有许多不同的提供者来监视和管理Windows设置。您可以为应用程序注册一个新的命名空间,然后在另一个.NET应用程序中使用PowerShell或System.Management.Instrumentation来监视该命名空间。