我们已经有了一个有趣的情况下,我们正试图确定如何不同的情况下,我们的应用程序已经启动。是否有任何方法。净能够查询另一个运行实例和获得的命令行传递的参数的实例?我一直没能找到任何方式这样做。净迄今为止,所以我想我会在这里检查,看看是否有人已经做过这样的事之前。

有帮助吗?

解决方案

你可以检索这一信息通过WMI。

看看 Win32_Process 类,特别是其命令行的财产。此 代码项目的文章 提供的指针,关于如何做到这一点,

其他提示

通常这些变量存储在该程序的存储空间,你应该(在理论上)不应当能够访问。

你只需要找出如何启动的进程通信的其他实例以及贸易数据。命名为管道是一个很好的选择,但是你可能想要开始一个新的计算器的问题得到很好的选择。

-亚当

对于未来的参考,这是一段代码,从我怎么拿到它的工作。这只是个测试,看看它是如何工作。实际的实施代码分析的命令行的参数对于我们所需要的。

try
{
   ManagementScope connectScope = new ManagementScope();
   connectScope.Path = new ManagementPath(@"\\" + Environment.MachineName + @"\root\CIMV2");

   SelectQuery msQuery = new SelectQuery("SELECT * FROM Win32_Process Where Name = '" + "PROGRAMNAMEHERE.exe" + "'");
   ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(connectScope, msQuery);

   foreach (ManagementObject item in searchProcedure.Get())
   {
      try 
      {
         MessageBox.Show(item["CommandLine"].ToString()); 
      }
      catch (SystemException) 
      {}
   }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top