Я использую C# для поиска и публикации нажатия клавиши пробела (сочетание клавиш для паузы/воспроизведения link) в приложение Spotify. Я могу найти подходящее окно и скопировать его имя, используя первую часть кода. Но когда я пытаюсь использовать почти точный код для публикации сообщения, он не будет работать. Я подозреваю, что что-то не так с частью PostMessage, но я не могу понять, что.C# PostMessage to Spotify
Код:
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);
}
}
}
}
Спасибо за любую помощь вы можете предоставить
/Morgan
Try быть немного более специфичен, чем «это не будет работать». Что не получится? Что происходит? Есть ли сообщение об ошибке? Вы пробовали отлаживать его? – AlexFoxGill