如何简单地从一个应用程序调用另一个应用程序?

Posted

技术标签:

【中文标题】如何简单地从一个应用程序调用另一个应用程序?【英文标题】:How can I call from one app to another simply? 【发布时间】:2012-06-10 06:45:33 【问题描述】:

我是 C# 和编程新手。我有 2 个具有不同进程的应用程序,我需要能够尽可能简单地从另一个应用程序调用 1 个应用程序的方法。我不需要交换数据或其他任何东西,只需要调用一个方法。我用谷歌搜索了它。我知道有很多不同的方式,比如管道,但我需要最简单的一种。我还发现我可以这样发送消息:

const uint WM_COPY = 0x301;

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd, uint uMsg, int wParam, int lParam);

Process p = Process.GetProcessesByName("appname").FirstOrDefault();
if(p != null)

    IntPtr hWnd = p.MainWindowHandle;
    SendMessage(hWnd, WM_COPY , 0, 0);

我能够收到带有此代码的消息:

protected override void WndProc(ref Message m)

    if (m.Msg == WM_COPY)
    
        //my code
    
    else
    
        base.WndProc(ref m);
    

但是有一个问题。应该接收消息的应用程序没有表单,它只是一个过程。我使用了 this.Hide(),所以 MainWindowHandle 不起作用。

是否可以通过隐藏表单向应用发送消息?或者也许有更好的方法来调用第二个应用程序上的方法?谢谢。

【问题讨论】:

【参考方案1】:

好吧,如果你只需要调用一个完全没有参数的方法,最简单的方法是创建一个名为Mutex,在调用进程中设置它并从接收进程中检查它。

如果您需要更详细的内容,请查看WCF。

【讨论】:

即使是最简单的交换,我也会选择 WCF 你能举一些使用互斥锁的例子吗?非常感谢

以上是关于如何简单地从一个应用程序调用另一个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

WPF怎么能跨进程通信

如何正确地从 ReactJS + Redux 应用程序进行 REST 调用?

如何在一个应用程序中打开另一个程序

如何让 VBA 子例程调用将数组传递给子例程中的另一个函数的函数

如何在另一个进程中访问 .Net 对象?

简单地从firebase数据库中提取所有用户并将它们放入一个有效的数组中吗?