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

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

데브카페
Devcafe (토론 | 기여)님의 2025년 6월 18일 (수) 01:05 판 (새 문서: == 키보드 컨트롤 알트키가 눌려져 있는지 체크 == * AutoIt에서는 **특정 키(예: Ctrl, Shift, Alt 등)** 의 **눌림 상태(Down/Up)** 를 확인하는 데 다음과 같은 함수들을 사용할 수 있습니다. --- ## ✅ 방법 1: `IsPressed()` 함수 사용 (`_IsPressed()` from `Misc.au3`) AutoIt 내장 UDF (`Misc.au3`) 의 `_IsPressed()` 함수를 사용하면 **Ctrl 키가 현재 눌려 있는지 확인**할 수 있습니다. ### ▶ 예제: Ctrl...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

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

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

---

    1. ✅ 방법 1: `IsPressed()` 함수 사용 (`_IsPressed()` from `Misc.au3`)

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

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

```autoit

  1. include <Misc.au3>

If _IsPressed("11") Then ; Ctrl = 0x11

   MsgBox(0, "키 상태", "Ctrl 키가 눌려 있습니다.")

Else

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

EndIf ```

      1. ✅ 주요 키 코드 목록:

| 키 | 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 (좌/우 둘 다 포함)

---

    1. ✅ 방법 2: 실시간 키 상태 모니터링 (예: 반복 체크)

```autoit

  1. include <Misc.au3>

While 1

   If _IsPressed("11") Then
       ToolTip("Ctrl 키가 눌림 상태입니다.", 100, 100)
   Else
       ToolTip("") ; 없앰
   EndIf
   Sleep(100)

WEnd ```

> 이 코드는 Ctrl 키가 눌려 있을 때 화면에 툴팁을 띄워줍니다.

---

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

---

    1. 🔧 직접 구현 예시 (DllCall로)

```autoit 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 ```

---

    1. ✅ 결론 요약

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

---

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

Comments