1

我正在编写一个应用程序,它允许您控制 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);
4

0 回答 0