我有一个使用sendkeys的问题是Powershell。我正在尝试制作一个能够发送密钥的脚本:shift,w,a,s,d到游戏中。我想要的代码是:Powershell模拟键盘
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.SendKeys]::SendWait(+{w}{a}{s}{d});
但是,当我使用它,它只是发送“Wasd”。它不会改变运动,我可以看到这已经发送到游戏内控制台。
有没有一种方法可以模拟按键?
它可以通过完成使用该鼠标左键:
[email protected]'
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
'@
$SendMouseClick = Add-Type -memberDefinition $signature -name "Win32MouseEventNew" -namespace Win32Functions -passThru
$SendMouseClick::mouse_event(0x00000002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x00000004, 0, 0, 0, 0);
是否有键盘相似的地方?
Hmmm'[System.Windows.Forms.SendKeys] :: SendWait(“{t} {y} {p} {e} {t} {h} {i} {s} {p} {l} { e} {a} {s} {e}“)'在这里工作 – sodawillow
谢谢@FoxDeply您的回复,唯一的问题是,这并不能解决我的问题。游戏似乎不接受SendWait方法。我的球员不停止移动。但是当我打开聊天窗口之类的东西时,它会输入WASD。我认为它必须更像我发送的第二个代码,因为游戏将它作为“真实”输入来接受。 – heroicis23
编辑^:第二个代码在游戏中工作,但只适用于鼠标...... – heroicis23