메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

키보드 컨트롤 알트키가 눌려져 있는지 체크

데브카페

키보드 컨트롤 알트키가 눌려져 있는지 체크

  • AutoIt에서는 **특정 키(예: Ctrl, Shift, Alt 등)** 의 **눌림 상태(Down/Up)** 를 확인하는 데 다음과 같은 함수들을 사용할 수 있습니다.

방법 1

  • `IsPressed()` 함수 사용 (`_IsPressed()` from `Misc.au3`)
  • AutoIt 내장 UDF (`Misc.au3`) 의 `_IsPressed()` 함수를 사용하면 **Ctrl 키가 현재 눌려 있는지 확인**할 수 있습니다.

▶ 예제: Ctrl 키가 눌려 있는지 확인

#include <Misc.au3>

If _IsPressed("11") Then ; Ctrl = 0x11
    MsgBox(0, "키 상태", "Ctrl 키가 눌려 있습니다.")
Else
    MsgBox(0, "키 상태", "Ctrl 키가 눌려 있지 않습니다.")
EndIf

주요 키 코드 목록

| 키           | Hex 코드 |
| ----------- | ------ |
| Ctrl (좌/우)  | 11     |
| Shift       | 10     |
| Alt         | 12     |
| A\~Z        | 41\~5A |
| 0\~9        | 30\~39 |
| Left Ctrl   | A2     |
| Right Ctrl  | A3     |
| Left Shift  | A0     |
| Right Shift | A1     |
  • `_IsPressed("A2")` → Left Ctrl
  • `_IsPressed("A3")` → Right Ctrl
  • `_IsPressed("11")` → Ctrl (좌/우 둘 다 포함)

방법 2

  • 실시간 키 상태 모니터링 (예: 반복 체크)
#include <Misc.au3>

While 1
    If _IsPressed("11") Then
        ToolTip("Ctrl 키가 눌림 상태입니다.", 100, 100)
    Else
        ToolTip("") ; 없앰
    EndIf
    Sleep(100)
WEnd
  • 이 코드는 Ctrl 키가 눌려 있을 때 화면에 툴팁을 띄워줍니다.

주의사항

  • `_IsPressed()` 함수는 `user32.dll`을 사용하므로 외부 프로그램 상태와 상관없이 동작합니다.
  • `Misc.au3` UDF가 포함되어 있어야 합니다 (`#include <Misc.au3>`).

직접 구현 예시 (DllCall로)

Func IsCtrlPressed()
    Local $VK_CTRL = 0x11
    Local $aRet = DllCall("user32.dll", "short", "GetAsyncKeyState", "int", $VK_CTRL)
    Return BitAND($aRet[0], 0x8000) <> 0
EndFunc

If IsCtrlPressed() Then
    MsgBox(0, "Ctrl 상태", "Ctrl 키가 눌려 있습니다.")
Else
    MsgBox(0, "Ctrl 상태", "Ctrl 키가 눌려 있지 않습니다.")
EndIf

결론 요약

| 목적        | 방법                          | 설명              |
| --------- | --------------------------- | --------------- |
| 단발성 체크    | `_IsPressed("11")`          | Ctrl 키 눌림 여부 확인 |
| 반복 체크     | `While` 루프 + `_IsPressed()` | 실시간 키 감지        |
| DLL 직접 호출 | `GetAsyncKeyState()`        | 시스템 수준 감지       |

---

  • Shift, Alt, 기타 조합키 예제 필요
    • 예: **Ctrl+Shift 눌렸을 때만 동작하는 기능** 등.

Comments