Я создал приложение Windows Form, используя C #, и у меня есть приложение, которое я хочу запустить. Я успешно запускаю приложение как администратор, и следующее, что я хочу сделать, это отправить приложению несколько клавиш, в частности Alt и клавиши со стрелками и ввести. Я использую функцию FindWindow, чтобы найти окно, используя его имя. Затем я устанавливаю фокус на свое приложение, используя функцию SetForeground, а затем, наконец, отправляю ему ключи.
Чтобы проверить, верен ли мой код, я пытаюсь отправить ключи в блокнот с заголовком «Без названия - Блокнот». "и это работает. Но если я заменю это названием приложения, оно не будет работать. Я использовал инструмент «spy ++», предоставляемый Visual Studio. Я запускаю свое приложение. Скопируйте его имя класса и заголовок окна, вставьте его в функцию FindWindow, но оно все равно не будет работать.
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = finalString;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.Verb = "runas";
myProcess.StartInfo.Arguments = "--AutoInject --EmulateController";
myProcess.Start(); String Pid = "" + myProcess.Id;
/* The variables found using spy++
Window Caption = [DEBUG] PS4 Macro - v0.5.2 (BETA)
Class Name = WindowsForms10.Window.8.app.0.31c915c_r6_ad1
*/
IntPtr AppHandle = FindWindow(null, "[DEBUG] PS4 Macro - v0.5.2 (BETA)");
if (AppHandle == IntPtr.Zero)
{
MessageBox.Show("Something's wrong I can feel it");
return;
}
SetForegroundWindow(AppHandle);
SendKeys.SendWait("^(o)");
После запуска приложения приложение запускается, но клавиша ctrl + o не достигает его. Он должен получить команду ctrl + o. Также обратите внимание: при запуске приложения строка меню моей формы не становится белой, т. Е. Возможно, она не теряет фокус. Строки меню моей формы и запущенного приложения окрашены в черный цвет.