SendKeys для конкретного процесса, похоже, не работает
У меня есть консоль, которая запускает экземпляр uTorrent с определенным магнитом. Сейчас я пытаюсь заставить консоль нажать кнопку OK (отправив клавишу ВВОД) во дополнительное всплывающее окно uTorrent, где можно нажать кнопку ОК, чтобы начать загрузку, но это не похоже на работу.
Иногда я получаю исключение, когда второй процесс (из всплывающего окна) не найден, но когда нет, он все равно не запускает загрузку.
Что может быть причиной этого?
Код:
const UInt32 WM_KEYDOWN = 0x0100;
const int VK_RETURN = 0x0D;
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
static void Main(string[] args)
{
Process.Start("magnet:?...");
Process[] processes = Process.GetProcessesByName("uTorrent");
if (processes.Any())
{
Process mainWindow = processes[0];
mainWindow.WaitForInputIdle();
Process popup = processes[1];
if (PostMessage(popup.MainWindowHandle, WM_KEYDOWN, VK_RETURN, 0))
{
Debug.WriteLine("Done");
}
Thread.Sleep(5000);
}
}