다른 명령
키보드 컨트롤 알트키가 눌려져 있는지 체크
- 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 눌렸을 때만 동작하는 기능** 등.