如何在c#中执行按住ALT+TAB sendkey事件

本文关键字:ALT+TAB sendkey 事件 执行 | 更新日期: 2023-09-27 18:04:47

我正在尝试使用sendkey事件,该事件持有ALT键,然后按TAB键。你如何执行这个动作,我已经尝试了很多变化,但我似乎找不到答案,谢谢。

如何在c#中执行按住ALT+TAB sendkey事件

在浏览了MSDN文档页面后,我想到了这个,它似乎对我来说工作得很好:

SendKeys.Send("%{标签}");

[Windows.Forms.Sendkeys]::SendWait("%{Alt Down}")

[Windows.Forms.Sendkeys]::SendWait("%{TAB}")

[Windows.Forms.Sendkeys]::SendWait("%{Alt Up}")

在Powershell中为我工作!谢谢你的提示;)

这很简单:

SendKeys.SendWait("%({tab})");

使用sendkeys PInvoke可以通过发送ALT keydown事件,TAB keydown,然后TAB keyup,然后ALT keyup来实现这一点。还有另一种方法使用ALT修改器的关键,但我不记得确切的方法,因为我没有使用它在一段时间。

如果你想做多个选项卡交替TAB键的下和上,同时保持ALT键的下。

我无法获得SendKeys。发送到切换程序。Ricky Lee的回答对我很有用。

using System.Runtime.InteropServices;
[DllImport("user32")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int
dwExtraInfo);
private const byte VK_MENU = 0x12;
private const byte VK_TAB = 0x09;
private const int KEYEVENTF_EXTENDEDKEY = 0x01;
private const int KEYEVENTF_KEYUP = 0x02;
private void button1_Click(object sender, System.EventArgs e)
{
keybd_event(VK_MENU,0,0,0);
keybd_event(VK_TAB,0,0,0);
System.Threading.Thread.Sleep(1000);
keybd_event(VK_TAB,0,0,0);
System.Threading.Thread.Sleep(1000);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
}