Я хочу отправить клавиши клавиатуры в приложение RemoteApp.Я использую C # с Windows API.
Пример кода работает, когда я использую Windows 10 Desktop с приложением RemoteApp.Приложение появляется на переднем плане, и в приложении выполняется сочетание клавиш CTRL + SHIFT + O.
Когда я запускаю то же приложение на сервере удаленного рабочего стола Windows Server 2012/2016 в сеансе RDS, оно устанавливаетокно на передний план, но приложение не получает ярлык.
На сервере Windows 2019 с удаленным рабочим столом он отлично работает, однако в версиях 2012 и 2016 он не работает.
Я также пробовал следующее: SendMessage и PostMessage с ручкой и WM_KEYDOWN / WM_KEYUP.
Class.WinAPI.PostMessage(handle,WM_KEYDOWN,0x11,0);
Class.WinAPI.PostMessage(handle,WM_KEYDOWN,0x10,0);
Class.WinAPI.PostMessage(handle,WM_KEYDOWN,0x4F,0);
Class.WinAPI.PostMessage(handle,WM_KEYUP,0x11,0);
Class.WinAPI.PostMessage(handle,WM_KEYUP,0x10,0);
Class.WinAPI.PostMessage(handle,WM_KEYUP,0x4F,0);
foreach (KeyValuePair<IntPtr, string> window in OpenWindowGetter.GetOpenWindows())
{
IntPtr handle = window.Key;
string title = window.Value;
if (title.ToLower().Contains(“ApplicationName”))
{
Class.WinAPI.SetForegroundWindow(handle);
Thread.Sleep(1);
SendKeys.SendWait("^+O");
Thread.Sleep(1);
SendKeys.Flush();
}
}