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

키보드 컨트롤 알트키가 눌려져 있는지 체크: 두 판 사이의 차이

데브카페
편집 요약 없음
편집 요약 없음
 
2번째 줄: 2번째 줄:
* AutoIt에서는 **특정 키(예: Ctrl, Shift, Alt 등)** 의 **눌림 상태(Down/Up)** 를 확인하는 데 다음과 같은 함수들을 사용할 수 있습니다.
* AutoIt에서는 **특정 키(예: Ctrl, Shift, Alt 등)** 의 **눌림 상태(Down/Up)** 를 확인하는 데 다음과 같은 함수들을 사용할 수 있습니다.


---
----


## ✅ 방법 1: `IsPressed()` 함수 사용 (`_IsPressed()` from `Misc.au3`)
=== 방법 1===
 
* `IsPressed()` 함수 사용 (`_IsPressed()` from `Misc.au3`)
AutoIt 내장 UDF (`Misc.au3`) 의 `_IsPressed()` 함수를 사용하면 **Ctrl 키가 현재 눌려 있는지 확인**할 수 있습니다.
* AutoIt 내장 UDF (`Misc.au3`) 의 `_IsPressed()` 함수를 사용하면 **Ctrl 키가 현재 눌려 있는지 확인**할 수 있습니다.
 
### ▶ 예제: Ctrl 키가 눌려 있는지 확인


==== ▶ 예제: Ctrl 키가 눌려 있는지 확인 ====
<source lang=autoit>
<source lang=autoit>
#include <Misc.au3>
#include <Misc.au3>
20번째 줄: 19번째 줄:
</source>
</source>


### ✅ 주요 키 코드 목록:
=== 주요 키 코드 목록 ===
<source>
<source>
| 키          | Hex 코드 |
| 키          | Hex 코드 |
34번째 줄: 33번째 줄:
| Right Shift | A1    |
| Right Shift | A1    |
</source>
</source>
> ☑️ `_IsPressed("A2")` → Left Ctrl
* `_IsPressed("A2")` → Left Ctrl
> ☑️ `_IsPressed("A3")` → Right Ctrl
* `_IsPressed("A3")` → Right Ctrl
> ☑️ `_IsPressed("11")` → Ctrl (좌/우 둘 다 포함)
* `_IsPressed("11")` → Ctrl (좌/우 둘 다 포함)


---
----


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


<source lang=autoit>
<source lang=autoit>
55번째 줄: 55번째 줄:
</source>
</source>


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


---
----
 
## ✅ 주의사항


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


---
----


## 🔧 직접 구현 예시 (DllCall로)
=== 직접 구현 예시 (DllCall로) ===


<source lang=autoit>
<source lang=autoit>
82번째 줄: 81번째 줄:
</source>
</source>


---
----


## ✅ 결론 요약
=== 결론 요약 ===
<source>
<source>
| 목적        | 방법                          | 설명              |
| 목적        | 방법                          | 설명              |
94번째 줄: 93번째 줄:
---
---


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

Comments