C# 如何在powershell中同时处理多个按键?例如:Windows徽标键+;Alt+;PrtScn:
在powershell ISE中尝试了以下代码,但它只接受第一个键(按Win),然后接受下一个键作为“g”C# 如何在powershell中同时处理多个按键?例如:Windows徽标键+;Alt+;PrtScn:,c#,powershell,automation,powershell-ise,pester,C#,Powershell,Automation,Powershell Ise,Pester,在powershell ISE中尝试了以下代码,但它只接受第一个键(按Win),然后接受下一个键作为“g” [void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") [System.Windows.Forms.SendKeys]::sendwait("(^{ESCAPE})g") 但是我想一次按下Win+g打开一些应用程序,比如xbox游戏吧 有人能指导我吗?这不能用原生SendWait方法完成,但我们可以
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Windows.Forms.SendKeys]::sendwait("(^{ESCAPE})g")
但是我想一次按下Win+g打开一些应用程序,比如xbox游戏吧
有人能指导我吗?这不能用原生SendWait方法完成,但我们可以使用WinAPI来完成,如图所示
你能检查一下下面链接上的问题吗
$code = @'
namespace SendTheKeys {
class SendIt {
public static void Main(string[] args) {
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
private const int KEYEVENTF_EXTENDEDKEY = 1;
private const int KEYEVENTF_KEYUP = 2;
public static void KeyDown(Keys vKey)
{
keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY, 0);
}
public static void KeyUp(Keys vKey)
{
keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
KeyDown(Keys.LWin);
KeyDown(Keys.G);
KeyUp(Keys.LWin);
KeyUp(Keys.G);
}
}
}
'@
Add-Type -TypeDefinition $code -Language CSharp
[SendTheKeys.SendIt]::Main()