Я пытаюсь подражать различные задачи в Win7 и у меня есть некоторые проблемы с этой функцией:Эмуляция клавиатуры ввести ключ в C#
LeftMouseClick(Cursor.Position.X - 720, Cursor.Position.Y - 45);
System.Threading.Thread.Sleep(1000);
// Simulate each key stroke
InputSimulator.SimulateKeyDown(VirtualKeyCode.RETURN);
InputSimulator.SimulateKeyUp(VirtualKeyCode.RETURN);
InputSimulator.SimulateTextEntry("cmd");
System.Threading.Thread.Sleep(1000);
InputSimulator.SimulateKeyDown(VirtualKeyCode.RETURN);
InputSimulator.SimulateKeyUp(VirtualKeyCode.RETURN);
Все, что я хочу сделать, это нажать START, написать CMD, нажмите клавишу ВВОД. Все работает гладко, за исключением нажатия клавиши ввода.
Все это происходят на RDP ActiveX, вот код:
var client = (IMsRdpClient7)rdp.GetOcx();
// client.RemoteProgram2.RemoteProgramMode = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).DisplayConnectionBar = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).ConnectionBarShowPinButton = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).BitmapVirtualCache32BppSize = 48;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).ConnectionBarShowRestoreButton = false;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).ConnectionBarShowMinimizeButton = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).EnableWindowsKey = 1;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).GrabFocusOnConnect = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectDrives = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectClipboard = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectPrinters = true;
((MSTSCLib.IMsRdpClientAdvancedSettings5)rdp.AdvancedSettings).RedirectPOSDevices = true;
rdp.Server = "1.2.3.4";
rdp.UserName = "Rmlabuser2";
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = "Rmlabuser2";
// rdp.FullScreenTitle = "Full Screen";
// rdp.SecuredSettings.FullScreen = 1;
// rdp.SecuredSettings.StartProgram = "calc";
rdp.Connect();
Повторяю, ключи работы, я не могу ударить войти.
Спасибо.
Вы пробовали SendKeys.Send ("{ENTER}"); ? Я нашел его здесь, если это помогает: https://msdn.microsoft.com/en-us/library/ms171548(v=vs.110).aspx –
дает мне ошибку прерывания, я могу использовать только SendKeys.SendWait ... и он просто ждет, я узнал, что команда ввода отправлена, i ALT + TAB, как только конец скрипта, и я вижу, что происходит, но не в том, что ActiveX RDP Panel ... любой идее? – Damian
Возможно, это может быть что-то? https://msdn.microsoft.com/en-us/library/windows/desktop/aa381294(v=vs.85).aspx –