Как установить ввод в текстовое поле в другом приложении, которое является браузером chrome (или comodo dragon)?
Я открываю страницу Google Translate и вывожу ее на передний план, но она не всегда фокусируется на исходном текстовом поле, чтобы пользователь мог сразу же ввести текст. Он всегда получает фокус, когда я запускаю его в VS debugging, но не как независимый exe-файл.
Всегда после нажатия кнопки на моей мыши, которая запускает этот exe-файл после долгого времени не нажатия кнопки, текстовое поле "Источник" выбирается, но если я нажимаю не после долгого времени с момента последнего нажатия, текстовое поле "источник" не выбирается.
Что я уже пробовал:
Process[] Processes = Process.GetProcessesByName("dragon"); foreach (Process p in Processes) { ShowWindow(p.MainWindowHandle, SW_RESTORE); } Processes = Processes.Where(p => p.MainWindowHandle != IntPtr.Zero).ToArray(); if (Processes.Length == 0) { ProcessStartInfo prs = new ProcessStartInfo("dragon.exe"); prs.Arguments = "http://translate.google.com" + " --new-window"; prs.WindowStyle = ProcessWindowStyle.Normal; Process p = Process.Start(prs); //p.WaitForInputIdle(3000); } Processes = Process.GetProcessesByName("dragon"); foreach (Process p in Processes) { ShowWindow(p.MainWindowHandle, SW_MINIMIZE); } foreach (Process p in Processes) { ShowWindow(p.MainWindowHandle, SW_RESTORE); SetWindowPos(p.MainWindowHandle, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); BringWindowToTop(p.MainWindowHandle); SetForegroundWindow(p.MainWindowHandle); } foreach (Process p in Processes) { SetWindowPos(p.MainWindowHandle, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); SetWindowPos(p.MainWindowHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); } foreach (Process p in Processes) { ShowWindow(p.MainWindowHandle, SW_RESTORE); BringWindowToTop(p.MainWindowHandle); SetFocus(new HandleRef(null, p.MainWindowHandle)); } foreach (Process p in Processes) { SetForegroundWindow(p.MainWindowHandle); }
Dave Kreskowiak
Помните, что я сказал всего несколько дней назад о том, что вы "делаете это трудным путем"? Вот почему. Вы практически не контролируете пользовательский интерфейс, не можете взаимодействовать с ним без серьезных усилий, и ваш код станет бесполезным мусором, как только Google изменит пользовательский интерфейс на этой странице.
john1990_1
I understand, thanks a lot for caring, but I made once an English teaching program but I didn't finish it because such a program needs to have a corporation do it not only one hobbyist, in it I embedded Google Translate Well and it translates online each English word to 3 languages chosen by the user and displays them in labels, the program you linked me to may be the one that I took code from it, but I want interactive Google Translate's page with history of searched texts (this feature is new), with choosing the languages comfortably, with detecting the language and showing which language to translate from, I have a program already that has a Bing Translate page and that had Google Translate page in the past but Google now prevents the browser control of VS from accessing Google Translate's website, and Bing Translate is horrible and detects text's language horribly wrong.
Пожалуйста, проверьте мою программу, связанную ниже (без встроенной страницы Google Translate, но вы можете открыть ее в браузере по умолчанию с помощью кнопки).
Пользовательский интерфейс программы, которую вы мне прислали, ужасно недружелюбен и неудобен.
Dave Kreskowiak
Я нигде не размещал никаких ссылок на какую-либо программу и не загружаю код из ненадежного источника, от ненадежного человека.
john1990_1
Код прост, и вы можете просмотреть его перед запуском, вы даже можете открыть его в VS и даже не нажимать кнопку debug, он не может причинить вам вреда, я не уверен в этом, не так ли? ну в любом случае это не важно, что вы его просматриваете, не могли бы вы помочь мне о коде в текстовом поле кода этой веб-страницы, и почему он успешно выбирает текстовое поле "источник" на веб-странице Google Translate только после того, как не нажимал его в течение длительного времени, и если я нажимаю его не после долгого времени с последнего нажатия, он не выбирает текстовое поле "Источник"? (Я нажимаю кнопку мыши, настроенную для запуска exe-файла)