我想通过从另一个Windows应用程序转发它们来模拟一个WPF应用程序中的Mouseevents。
以下是我到目前为止所尝试的内容:在Windows窗体WndProc
中覆盖NativeWindow
以获取鼠标消息。
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref Message m)
{
var mUIApps = new UIApps(System.Diagnostics.Process.GetProcesses());
var app = mUIApps.FirstOrDefault(x => x.Caption.StartsWith("WPF to Receive"));
var mHwnd = app.HWnd;
switch (m.Msg)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_MOUSEMOVE:
PostMessageSafe(new HandleRef(app, mHwnd), (uint)m.Msg, m.WParam, m.LParam);
break;
}
}
PostMessageSafe
取自http://www.pinvoke.net/default.aspx/user32/PostMessage.html
这很好,但在另一个应用程序上没有收到任何鼠标事件。我在这里缺少什么?