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

Vb.net 如何公开有关正在运行的.NET exe的信息?,vb.net,Vb.net,我有一个我写的.NET exe,它有一些我公开的属性,我想公开 我想shell这个exe(Process.Start()),然后以某种方式引用这个exe并访问这些公共属性。这些属性公开有关正在运行的exe的信息 我知道如何shell到exe。我知道如何从我想要使用这个对象的项目中添加对exe的引用。但是我如何访问这个正在运行的exe的属性呢 我希望我能很好地解释我自己 如果你知道答案,也许你可以告诉我,在运行时向另一个应用程序公开正在运行的exe的属性的标准方法是什么 谢谢你的帮助 它不是那样工

我有一个我写的.NET exe,它有一些我公开的属性,我想公开

我想shell这个exe(Process.Start()),然后以某种方式引用这个exe并访问这些公共属性。这些属性公开有关正在运行的exe的信息

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

我希望我能很好地解释我自己

如果你知道答案,也许你可以告诉我,在运行时向另一个应用程序公开正在运行的exe的属性的标准方法是什么


谢谢你的帮助

它不是那样工作的

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

在您的具体案例中,我猜命名管道就是您想要的技术


就我个人而言,我从未使用过命名管道,但我使用过重定向标准输入和标准输出。

它不是这样工作的

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

在您的具体案例中,我猜命名管道就是您想要的技术


就个人而言,我从未使用过命名管道,但我使用过重定向标准输入和标准输出。

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

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

是否考虑将对象公开到PowerShell,以便从PowerShell调用该对象

公开对象:

   runspace.SessionStateProxy.SetVariable("ObjectName", ObjectName)
然后,PS脚本可以调用:

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


我喜欢这种方法,因为你不仅能得到信息。但是如果您愿意,您可以公开方法,这些方法允许您根据信息对对象进行更改。返回。

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

公开对象:

   runspace.SessionStateProxy.SetVariable("ObjectName", ObjectName)
然后,PS脚本可以调用:

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


我喜欢这种方法,因为你不仅能得到信息。但是如果您愿意,您可以公开方法,这些方法允许您根据信息对对象进行更改。返回。

您描述的标准“Windows方式”是定期公开和更新它们

您描述的标准“Windows方式”是定期公开和更新它们

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

WMI.NET提供程序扩展方案

如何通过WMI公开配置设置


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

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

WMI.NET提供程序扩展方案

如何通过WMI公开配置设置


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

谢谢John,我想我可能需要这样做。谢谢John,我想我可能需要这样做。