将参数传递给同一应用程序的另一个实例

亚历克斯·DG

我的小应用程序存在严重问题;基本上,这很容易理解:

打开我的软件后,事情就完成了。

我想集中精力打开另一个实例(我的意思是再次打开.exe),检查它是否已经打开。如果不是简单地启动应用程序,而是已经运行了(又是第二个或更多实例),则“简单地”将输入参数(args字符串数组)传递给第一个实例,这将对它进行适当的处​​理。

这是我的program.cs

static class Program
{
    static Mutex mutex = new Mutex(true, "{blabla}");

    [STAThread]
    static void Main(String[] args)
    {
        if (mutex.WaitOne(TimeSpan.Zero, true))
        {
            //First Instance!

            try
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                CALL A MY STATIC METHOD, DO SOME THINGS

                Application.Run(new Form1());
            }
            finally
            {
                mutex.ReleaseMutex();
            }
        }
        else
        {
            //Not-so-first instance!
            CALL A STATIC METHOD, 
            DO OTHER THINGS LIKE COMUNICATE WITH FIRST INSTANCE

            SIMPLY CLOSE.
        }
    }
}

这只会识别(使用互斥锁)是否已经打开,但是(偏离路线)它无法与主实例进行任何通信。

我已经尝试了很多东西,但是无法正常工作。

我已经尝试过了,但是在浪费大量时间之后,我真的不明白如何放置我的“第一次”代码和“已经运行”的代码。

也尝试过MSMQ,但我无法使其正常工作。

有人可以帮帮我吗?这是一个基本的软件,可做非常基本的事情,但是我花了一天的时间才能使其按我的意愿工作!

戴维·J

最简单的通信方式之一是将Windows消息从第二个实例发送到第一个实例。第二个实例将使用PostMessage发送消息,而第一个实例将覆盖Form1的WndProc方法来处理消息。

这里有一个示例:向Windows进程(不是其主窗口)发送消息

该问题还有一个答案,该答案使用管道(和WCF)进行通信。

进程间通信的形式很多。您使用哪一个取决于您的需求,例如Windows消息不能承载大量信息,而管道可以以非常高的速度传输数据。

更新一个简单的替代方法可以是IPCChannel这使您可以在第一个实例中创建一个可以由第二个实例调用的对象。您可以在该对象上创建方法并将数据作为参数传递

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将值从Windows应用程序传递给另一个应用程序

来自分类Dev

切换到同一应用程序的另一个窗口

来自分类Dev

将一个应用程序的JSON字符串传递给另一个应用程序(Windows 8.1应用程序)C#

来自分类Dev

Symfony:向同一应用程序中的另一个分发包发出请求以获取数据

来自分类Dev

需要关闭在同一应用程序的另一个上下文中打开的文件流

来自分类Dev

如何从同一应用程序中的另一个ejb文件注入EJB?

来自分类Dev

将参数从WPF应用程序传递到另一个WPF应用程序?

来自分类Dev

Android recycleview将参数传递给同一活动中的另一个片段

来自分类Dev

使用同一应用程序从一个iPad到另一个iPad访问数据库

来自分类Dev

如何将应用程序控制传递给另一个WPF窗口?

来自分类Dev

使用putExtras将int变量传递给另一个活动会使应用程序崩溃

来自分类Dev

如何将应用程序控制传递给另一个WPF窗口?

来自分类Dev

使用构造函数将驱动程序实例传递给另一个类

来自分类Dev

如何将引用的参数传递给另一个程序

来自分类Dev

使Qt5应用程序的第二个实例将命令行参数传递给第一个实例

来自分类Dev

如何将参数从一个Google应用脚本传递给另一个并执行?

来自分类Dev

如何将参数从一个Google应用脚本传递给另一个并执行?

来自分类Dev

将类对象实例作为参数从 main() 传递给另一个类对象实例

来自分类Dev

将方法的返回值作为参数传递给同一类中的另一个方法

来自分类Dev

试图将一个对象的实例传递给另一个类

来自分类Dev

如何将模板实例传递给另一个模板的另一个实例?

来自分类Dev

将参数从另一个应用程序传递到部署在文件存储(而非 Web)上的 wpf clickonce 应用程序

来自分类Dev

Android-将图像传递到另一个应用程序以响应意图

来自分类Dev

将变量传递到另一个Applescript应用程序

来自分类Dev

iOS将字符串传递到另一个应用程序

来自分类Dev

Android-将图像传递到另一个应用程序以响应意图

来自分类Dev

将文件保存到在同一 Tomcat 实例中运行的另一个 Web 应用程序(不工作)

来自分类Dev

如何通过SIP将一个Twilio应用程序实例连接到另一个?

来自分类Dev

将一个方法作为参数传递给另一个方法

Related 相关文章

  1. 1

    将值从Windows应用程序传递给另一个应用程序

  2. 2

    切换到同一应用程序的另一个窗口

  3. 3

    将一个应用程序的JSON字符串传递给另一个应用程序(Windows 8.1应用程序)C#

  4. 4

    Symfony:向同一应用程序中的另一个分发包发出请求以获取数据

  5. 5

    需要关闭在同一应用程序的另一个上下文中打开的文件流

  6. 6

    如何从同一应用程序中的另一个ejb文件注入EJB?

  7. 7

    将参数从WPF应用程序传递到另一个WPF应用程序?

  8. 8

    Android recycleview将参数传递给同一活动中的另一个片段

  9. 9

    使用同一应用程序从一个iPad到另一个iPad访问数据库

  10. 10

    如何将应用程序控制传递给另一个WPF窗口?

  11. 11

    使用putExtras将int变量传递给另一个活动会使应用程序崩溃

  12. 12

    如何将应用程序控制传递给另一个WPF窗口?

  13. 13

    使用构造函数将驱动程序实例传递给另一个类

  14. 14

    如何将引用的参数传递给另一个程序

  15. 15

    使Qt5应用程序的第二个实例将命令行参数传递给第一个实例

  16. 16

    如何将参数从一个Google应用脚本传递给另一个并执行?

  17. 17

    如何将参数从一个Google应用脚本传递给另一个并执行?

  18. 18

    将类对象实例作为参数从 main() 传递给另一个类对象实例

  19. 19

    将方法的返回值作为参数传递给同一类中的另一个方法

  20. 20

    试图将一个对象的实例传递给另一个类

  21. 21

    如何将模板实例传递给另一个模板的另一个实例?

  22. 22

    将参数从另一个应用程序传递到部署在文件存储(而非 Web)上的 wpf clickonce 应用程序

  23. 23

    Android-将图像传递到另一个应用程序以响应意图

  24. 24

    将变量传递到另一个Applescript应用程序

  25. 25

    iOS将字符串传递到另一个应用程序

  26. 26

    Android-将图像传递到另一个应用程序以响应意图

  27. 27

    将文件保存到在同一 Tomcat 实例中运行的另一个 Web 应用程序(不工作)

  28. 28

    如何通过SIP将一个Twilio应用程序实例连接到另一个?

  29. 29

    将一个方法作为参数传递给另一个方法

热门标签

归档