首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 模擬鍵盤輸入完整指南(二):特殊鍵碼對照表與實戰應用

     編輯:關於C語言

核心 API


using System.Windows.Forms;

// 基本用法
SendKeys.Send("文字");           // 發送字串
SendKeys.SendWait("文字");       // 發送並等待處理完成

特殊字元鍵碼對照表 (Shift 組合)

字元SendKeys 代碼備註
++{=}
(+9
*+8
&+7
^+6
%+5
$+4
#+3
@+2
!+1
)+0
~+`反引號鍵

常用功能鍵代碼對照表

按鍵代碼備註
←{LEFT}
→{RIGHT}
↑{UP}
↓{DOWN}
Home{HOME}
End{END}
Page Up{PGUP}
Page Down{PGDN}
Delete{DEL}
Backspace{BACKSPACE}或 {BKSP}
Space{SPACE}
Insert{INS}
Tab{TAB}
Shift+Tab{BACKTAB}
Enter{ENTER}或 ~
F1-F12{F1} ~ {F12}
Esc{ESC}

修飾鍵組合語法

修飾鍵前綴符號範例
Ctrl^^c (Ctrl+C), ^{F1} (Ctrl+F1)
Shift++{TAB} (Shift+Tab), +{F1}
Alt%%{F4} (Alt+F4), %f (Alt+F)

組合鍵範例


// Ctrl + A (全選)
SendKeys.SendWait("^a");

// Ctrl + C (複製)
SendKeys.SendWait("^c");

// Alt + F4 (關閉視窗)
SendKeys.SendWait("%{F4}");

// Ctrl + Shift + Esc (工作管理員)
SendKeys.SendWait("^+{ESC}");

// 輸入 "Hello World" 並按 Enter
SendKeys.SendWait("Hello World{ENTER}");

實戰應用:自動化登入腳本


public void AutoLogin(string username, string password)
{
    // 等待視窗啟動
    Thread.Sleep(2000);
    
    // 輸入用戶名
    foreach (char c in username)
    {
        SendKeys.SendWait(c.ToString());
        Thread.Sleep(10);
    }
    
    // Tab 切換到密碼欄
    SendKeys.SendWait("{TAB}");
    Thread.Sleep(100);
    
    // 輸入密碼
    foreach (char c in password)
    {
        SendKeys.SendWait(c.ToString());
        Thread.Sleep(10);
    }
    
    // 送出
    SendKeys.SendWait("{ENTER}");
}

限制與注意事項

  • 目標應用程式必須為**前景視窗**且具備焦點
  • UAC 提權視窗、安全桌面 (Ctrl+Alt+Del) 無法模擬
  • DirectX 全螢幕遊戲通常攔截鍵盤訊息,需使用底層 Hook (如 SendInput API)
  • 需參考 System.Windows.Forms.dll
  • .NET Core/.NET 5+ 專案需啟用 Windows Forms 相容性

進階替代方案

  • Windows Input Simulator (NuGet) - 封裝 SendInput API,支援更多場景
  • UI Automation - 針對 WPF/Win32 控制項直接操作,不依賴鍵盤模擬
  • Selenium / Playwright - 瀏覽器自動化專用
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved