C# 如何在powershell中同时处理多个按键?例如:Windows徽标键+;Alt+;PrtScn:

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方法完成,但我们可以

在powershell ISE中尝试了以下代码,但它只接受第一个键(按Win),然后接受下一个键作为“g”

[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()