我正在编写一个应用程序,允许您控制VLC和\或Media Monkey,而无需与应用程序本身进行交互。我遇到的问题是我现在使用的方法使用WM_APPCOMMAND,它只适用于Windows Media Player。
我搜索了很多,似乎无法找到一个解决方案,让我在控制台应用程序中全局发送全局媒体密钥(如VK_MEDIA_PLAY_PAUSE)。只有人们说要做到这一点才能首先使用该应用程序。
这是我到目前为止所做的:
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
SendMessageW(handle, WM_APPCOMMAND, handle, (IntPtr)APPCOMMAND_MEDIA_PLAY_PAUSE);
我应该注意,这是我只是为了个人使用而混在一起的东西,因此它不需要是一个简单的修复,只需要一个有效的修复。
提前致谢
修改 如果有人在寻找解决方案,我必须做的就是:
private const int WM_KEYDOWN = 0x0100;
[DllImport("user32.dll")]public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpszClass, string lpszWindow);
IntPtr vlc = FindWindow(null, "VLC Media Player");
PostMessage(vlc, WM_KEYDOWN, ((IntPtr)Keys.P), IntPtr.Zero);