im пытается создать автоматизированный инструмент для ввода текстовых полей с именами пользователей для приложения диспетчера на работе.проблема с клавиатурой имитировать событие пресса
Im возникли некоторые проблемы при попытке simultate нажатия клавиши, если inputArrayX [я] массив содержит, б, в
keyboardsim нажмет а, но если массив содержит а, Ь, Ь, с, c он по-прежнему выводит только abc, а не abbcc, как я этого хочу.
Кто-нибудь знает, что я здесь делаю неправильно?
private void MouseMacroChangeUser()
{
//move form to 0,0
this.Location = new Point(0, 0);
//set xy to mouse current pos
userMousePos();
//inputBlocker();
xX = int.Parse(this.Location.X.ToString());
yY = int.Parse(this.Location.Y.ToString());
defaultMousePos();
//Thread.Sleep(600);
Cursor.Position = new Point(Cursor.Position.X + 739, Cursor.Position.Y + 162);
//Thread.Sleep(100);
MouseSimulator.DoubleClick(MouseButton.Left);
for (int i = 0; i < inputArrayX.Length; i++)
{
string tempX = inputArrayX[i].ToString();
Keys keys = mapToKeyboardMacro(tempX);
KeyboardSimulator.KeyDown(keys);
}
KeyboardSimulator.KeyPress(Keys.Enter);
MouseSimulator.Click(MouseButton.Left);
//reset mouse to user pos.
Cursor.Position = new Point(x, y);
needUnblock = true;
//inputBlocker();
}
private Keys mapToKeyboardMacro(string key)
{
if (key == "space")
{
return Keys.Space;
}
else if (key == "a")
{
return Keys.A;
}
else if (key == "b")
{
return Keys.B;
}
else if (key == "c")
{
return Keys.C;
}
else if (key == "d")
{
return Keys.D;
}
}
ах OFC, благодаря спариванию за указание на это. – Darkmage
Jeff у вас есть +1 от меня за то, что я первый. Не знаю, почему мой ответ принят, но я чувствовал, что это был хороший ответ, как у меня. –
Спасибо, но я действительно думаю, что ваш ответ был немного яснее, потому что у него есть только один звонок, чтобы сделать с вашим и двумя, чтобы сделать с моим решением. В любом случае кошка получает кожу и день делается. Так что +1 от меня прямо у тебя. – Jeff