C# 键盘模拟按下事件出现问题
我正在尝试为工作中的dispatcher应用程序制作一个自动工具,用于在文本框中插入用户名 如果inputArrayX[i]数组包含a、b、c,我在尝试模拟按键时遇到一些问题 键盘SIM会按abc键,但如果数组包含a、b、b、c、c,它仍然只会键入abc,而不是我希望它这样做的abbcc 有人知道我做错了什么吗C# 键盘模拟按下事件出现问题,c#,macros,key,C#,Macros,Key,我正在尝试为工作中的dispatcher应用程序制作一个自动工具,用于在文本框中插入用户名 如果inputArrayX[i]数组包含a、b、c,我在尝试模拟按键时遇到一些问题 键盘SIM会按abc键,但如果数组包含a、b、b、c、c,它仍然只会键入abc,而不是我希望它这样做的abbcc 有人知道我做错了什么吗 private void MouseMacroChangeUser() { //move form to 0,0 this.Locati
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;
}
}
private void MouseMacroChangeUser()
{
//将窗体移动到0,0
该位置=新点(0,0);
//将xy设置为鼠标当前位置
userMousePos();
//输入拦截器();
xX=int.Parse(this.Location.X.ToString());
yY=int.Parse(this.Location.Y.ToString());
defaultMousePos();
//睡眠(600);
Cursor.Position=新点(Cursor.Position.X+739,Cursor.Position.Y+162);
//睡眠(100);
鼠标模拟器。双击(鼠标按钮。左);
for(int i=0;i
您永远不会从键盘模拟器启动KeyUp命令。当按键按下时,不能再次按下。您必须让KeyUp启动新的KeyDown事件。您永远不会从键盘模拟器启动KeyUp命令。当按键按下时,不能再次按下。您必须让KeyUp启动新的KeyDown事件。尝试更改KeyboardSimulator.KeyDown(按键)代码>
使用键盘模拟器。按键(按键)代码>
我不确定KeyDown事件是否会检查钥匙的状态(如果钥匙已关闭)。尝试更改键盘模拟器。KeyDown(钥匙)代码>
使用键盘模拟器。按键(按键)代码>
我不确定KeyDown事件是否会检查钥匙的状态(如果钥匙已经关闭)。Jeff我第一次给你打了+1。。我不知道为什么我的答案被接受了,但我觉得这是一个和我一样好的答案。谢谢-但我确实认为你的答案更清楚一点,因为他只有一个电话要打给你,两个电话要打给我的解决方案。不管怎样,猫被剥皮,一天就结束了。所以我的+1也会对你说。杰夫,你第一个得到了我的+1。。我不知道为什么我的答案被接受了,但我觉得这是一个和我一样好的答案。谢谢-但我确实认为你的答案更清楚一点,因为他只有一个电话要打给你,两个电话要打给我的解决方案。不管怎样,猫被剥皮,一天就结束了。所以+1从我的右背对着你。