有人可以帮助我将以下java代码转换为C#.
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_WINDOWS);
robot.keyPress(KeyEvent.VK_M);
robot.keyRelease(KeyEvent.VK_WINDOWS);
robot.keyRelease(KeyEvent.VK_M);
Run Code Online (Sandbox Code Playgroud)
我知道我们必须使用'user32.dll'.但我不确定我们要调用哪种方法.
这是我用来在某个过程中模拟tab-keypress的代码:
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
public Form1()
{
PostMessage(MemoryHandler.GetMainWindowHandle(),
(int)KeyCodes.WMessages.WM_KEYDOWN,
(int)KeyCodes.VKeys.VK_TAB, 0);
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法扩展它,以便按下(例如)1秒的键,而不是只是点击它?
请注意,我对Thread.Sleep()阻止UI线程的解决方案不感兴趣.