다른 명령
새 문서: == 키보드 컨트롤 알트키가 눌려져 있는지 체크 == * AutoIt에서는 **특정 키(예: Ctrl, Shift, Alt 등)** 의 **눌림 상태(Down/Up)** 를 확인하는 데 다음과 같은 함수들을 사용할 수 있습니다. --- ## ✅ 방법 1: `IsPressed()` 함수 사용 (`_IsPressed()` from `Misc.au3`) AutoIt 내장 UDF (`Misc.au3`) 의 `_IsPressed()` 함수를 사용하면 **Ctrl 키가 현재 눌려 있는지 확인**할 수 있습니다. ### ▶ 예제: Ctrl... |
편집 요약 없음 |
||
10번째 줄: | 10번째 줄: | ||
### ▶ 예제: Ctrl 키가 눌려 있는지 확인 | ### ▶ 예제: Ctrl 키가 눌려 있는지 확인 | ||
<source lang=autoit> | |||
#include <Misc.au3> | #include <Misc.au3> | ||
18번째 줄: | 18번째 줄: | ||
MsgBox(0, "키 상태", "Ctrl 키가 눌려 있지 않습니다.") | MsgBox(0, "키 상태", "Ctrl 키가 눌려 있지 않습니다.") | ||
EndIf | EndIf | ||
</source> | |||
### ✅ 주요 키 코드 목록: | ### ✅ 주요 키 코드 목록: | ||
<source> | |||
| 키 | Hex 코드 | | | 키 | Hex 코드 | | ||
| ----------- | ------ | | | ----------- | ------ | | ||
33번째 줄: | 33번째 줄: | ||
| Left Shift | A0 | | | Left Shift | A0 | | ||
| Right Shift | A1 | | | Right Shift | A1 | | ||
</source> | |||
> ☑️ `_IsPressed("A2")` → Left Ctrl | > ☑️ `_IsPressed("A2")` → Left Ctrl | ||
> ☑️ `_IsPressed("A3")` → Right Ctrl | > ☑️ `_IsPressed("A3")` → Right Ctrl | ||
42번째 줄: | 42번째 줄: | ||
## ✅ 방법 2: 실시간 키 상태 모니터링 (예: 반복 체크) | ## ✅ 방법 2: 실시간 키 상태 모니터링 (예: 반복 체크) | ||
<source lang=autoit> | |||
#include <Misc.au3> | #include <Misc.au3> | ||
53번째 줄: | 53번째 줄: | ||
Sleep(100) | Sleep(100) | ||
WEnd | WEnd | ||
</source> | |||
> 이 코드는 Ctrl 키가 눌려 있을 때 화면에 툴팁을 띄워줍니다. | > 이 코드는 Ctrl 키가 눌려 있을 때 화면에 툴팁을 띄워줍니다. | ||
68번째 줄: | 68번째 줄: | ||
## 🔧 직접 구현 예시 (DllCall로) | ## 🔧 직접 구현 예시 (DllCall로) | ||
<source lang=autoit> | |||
Func IsCtrlPressed() | Func IsCtrlPressed() | ||
Local $VK_CTRL = 0x11 | Local $VK_CTRL = 0x11 | ||
80번째 줄: | 80번째 줄: | ||
MsgBox(0, "Ctrl 상태", "Ctrl 키가 눌려 있지 않습니다.") | MsgBox(0, "Ctrl 상태", "Ctrl 키가 눌려 있지 않습니다.") | ||
EndIf | EndIf | ||
</source> | |||
--- | --- | ||
## ✅ 결론 요약 | ## ✅ 결론 요약 | ||
<source> | |||
| 목적 | 방법 | 설명 | | | 목적 | 방법 | 설명 | | ||
| --------- | --------------------------- | --------------- | | | --------- | --------------------------- | --------------- | | ||
91번째 줄: | 91번째 줄: | ||
| 반복 체크 | `While` 루프 + `_IsPressed()` | 실시간 키 감지 | | | 반복 체크 | `While` 루프 + `_IsPressed()` | 실시간 키 감지 | | ||
| DLL 직접 호출 | `GetAsyncKeyState()` | 시스템 수준 감지 | | | DLL 직접 호출 | `GetAsyncKeyState()` | 시스템 수준 감지 | | ||
</source> | |||
--- | --- | ||
필요하시면 Shift, Alt, 기타 조합키 예제도 드릴게요. | 필요하시면 Shift, Alt, 기타 조합키 예제도 드릴게요. | ||
예: **Ctrl+Shift 눌렸을 때만 동작하는 기능** 등. | 예: **Ctrl+Shift 눌렸을 때만 동작하는 기능** 등. |
2025년 6월 18일 (수) 01:07 판
키보드 컨트롤 알트키가 눌려져 있는지 체크
- 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 눌렸을 때만 동작하는 기능** 등.