1
我是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