3

我正在编写一个应用程序来控制 Windows 7,尤其是 Windows Media Center。我可以发送击键、执行命令等,但我想模拟 Media Center Remote 上的一些按钮。

其中一些是 WM_INPUT 消息,如下所述:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb417079.aspx

我想以这样一种方式发送这些消息,因为它们可以被任何捕获 MCE 远程消息的应用程序接收,以便该应用程序可以更广泛地使用,因此不希望将消息发送到特定窗口。

我知道其中一些命令可以使用键盘快捷键复制,但这些命令在其他应用程序中无效。

有谁知道我如何从 C# 应用程序发送这些消息?

到目前为止,这是我整理的内容:

[DllImport("user32.dll")]
public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

const int WM_INPUT = 0x00FF;
const int HWND_BROADCAST = 0xffff;
const int COMMAND = 0;

PostMessage((IntPtr)HWND_BROADCAST, WM_INPUT, IntPtr.Zero, (IntPtr)COMMAND);

但我不知道如何构建消息本身,甚至不知道这种方法是否有效。

如果我在吠叫错误的树,那么请告诉我!

4

1 回答 1

0

我没有尝试过,但是查看您在 MSDN 中发布的链接 + 此页面:http: //msdn.microsoft.com/en-us/library/windows/desktop/ee418864 (v=vs.85).aspx# WM_INPUT

看来您需要在 C# 应用程序中声明结构RAWINPUT,用与您要发送的命令对应的数据填写它,并在 lParam 中传递一个指向它的指针。

于 2013-07-18T13:56:18.487 回答