簡體   English   中英

如何在 C# 中執行保持 ALT+TAB sendkey 事件

[英]how to perform a hold ALT+TAB sendkey event in C#

我正在嘗試使用按住 ALT 鍵然后按下 TAB 鍵的 sendkey 事件。 您如何執行該操作,我嘗試了許多變體,但似乎無法找到答案,謝謝。

在瀏覽了MSDN 文檔頁面后,我想出了這個,它似乎對我來說工作得很好:

SendKeys.Send("%{Tab}");

[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 keydown 和 keyup,同時將 ALT 保持在 keydown 上。

我無法使用 SendKeys.Send 來切換程序。 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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM