![](/img/trans.png)
[英]How to disable the pressing/holding down of the Alt key, Control Key, and Shift Key when the left mouse button is clicked
[英]Holding Alt Button Using Windows Messages
如何使用 windows 消息按住 ALT 按鈕?
是否有 WM_KEYHOLD 或類似的東西?
這是屏幕截圖的代碼,但我想有些東西是丟失的。 我認為我使用的鍵碼不好,對於 0x70 它發送 F1。 對於 0x46,它會發送令人討厭的 windows 聲音。
const uint WM_SYSKEYDOWN = 260;
const uint VK_MENU = 18;//virtual key code of Alt key
const uint VK_SNAPSHOT = 44;//virtual key code of Snapshot key
[DllImport("User32.Dll")]
public static extern long PostMessage(IntPtr hWnd, UInt32 wMsg, long wParam, long lParam);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(String sClassName, String sAppName);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow();
private void timer1_Tick(object sender, EventArgs e)
{
IntPtr hwnd = GetForegroundWindow();
//PostMessage(hwnd, WM_SYSKEYDOWN, VK_MENU, 1);
PostMessage(hwnd, WM_SYSKEYDOWN, VK_SNAPSHOT, 1);
}
據我了解,發送WM_SYSKEYDOWN
/ WM_KEYDOWN
就足夠了。 見文檔
DanielB鏈接的文檔引用了 lParam 定義 ALT 狀態的第 29 位,你試過嗎?
位 29 - 上下文代碼。 如果 ALT 鍵在按下時按下,則值為 1; 如果 WM_SYSKEYDOWN 消息發布到活動 window 則為 0,因為沒有 window 具有鍵盤焦點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.