【发布时间】:2015-09-18 12:38:18
【问题描述】:
我正在使用 C# 查找 Space 的按键(Pause/Play link 的键盘快捷键)并将其发布到 Spotify 应用程序。 我可以成功找到正确的窗口并使用第一部分代码复制它的名称。 但是当我尝试使用几乎完全相同的代码来发布消息时,它就不起作用了。我怀疑 PostMessage 部分有问题,但我不知道是什么。
代码:
private void button1_Click(object sender, EventArgs e)
{
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if (p.ProcessName == "Spotify")
{
if (!p.MainWindowTitle.StartsWith("Spotify") && p.MainWindowTitle.Length > 0)
{
label1.Text = p.MainWindowTitle;
Console.WriteLine(label1.Text);
break;
}
else
{
label1.Text = "No Music";
}
}
}
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
private static Int32 WM_KEYDOWN = 0x0100;
private static Int32 WM_KEYUP = 0x0101;
private void button2_Click(object sender, EventArgs e)
{
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if (p.ProcessName == "Spotify")
{
Console.WriteLine(p.MainWindowTitle);
if (p.MainWindowTitle.Length > 0)
{
PostMessage(p.MainWindowHandle, (uint)WM_KEYDOWN, (IntPtr)Keys.Space, IntPtr.Zero);
}
}
}
}
感谢您提供的任何帮助
/摩根
【问题讨论】:
-
尝试比“它不起作用”更具体一点。什么行不通?发生什么了?有错误信息吗?你试过调试吗?
标签: c# spotify postmessage