Open urtaevS opened 5 months ago
I had the same Problem. The problem is the sendkeys funktion from Windows, that doesn't supports holding the WIN-key. I found a solution in this powershell-script. You just can add this as a powershell ps1 file in hass.agent and it works.
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Keyboard {
[DllImport("user32.dll", SetLastError = true)]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
public const int KEYEVENTF_EXTENDEDKEY = 0x0001;
public const int KEYEVENTF_KEYUP = 0x0002;
public const byte VK_SHIFT = 0x10;
public const byte VK_LEFT = 0x25;
public const byte VK_LWIN = 0x5B;
public static void KeyDown(byte keyCode) {
keybd_event(keyCode, 0, KEYEVENTF_EXTENDEDKEY, UIntPtr.Zero);
}
public static void KeyUp(byte keyCode) {
keybd_event(keyCode, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, UIntPtr.Zero);
}
}
"@
[Keyboard]::KeyDown([Keyboard]::VK_LWIN)
[Keyboard]::KeyDown([Keyboard]::VK_SHIFT)
[Keyboard]::KeyDown([Keyboard]::VK_LEFT)
[Keyboard]::KeyUp([Keyboard]::VK_LEFT)
[Keyboard]::KeyUp([Keyboard]::VK_SHIFT)
[Keyboard]::KeyUp([Keyboard]::VK_LWIN)
How I can send MultipleKeysCommand Win+Shift+Left?