我该如何从一个应用程序调用另一个应用程序?
问题描述:
我是C#和编程新手。我有2个不同流程的应用程序,我需要尽可能简单地调用另一个应用程序的方法。我不需要交换数据或其他任何东西,只需要调用一个方法即可。我搜索了一下。我知道有很多不同的方式像管道,但我需要最简单的一种。我还发现,我可以发短信是这样的:我该如何从一个应用程序调用另一个应用程序?
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不起作用。
是否可以将消息发送到隐藏表单的应用程序?或者也许有更好的方法来调用第二个应用程序的方法?谢谢。
即使是最简单的交流,我也会去参加WCF – DoomerDGR8
您能举一些使用互斥体的例子吗?非常感谢 – irondsd