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