안녕하세요 D_Pain입니다.
비베 기본 지식 편은 사진 교체하는데 워낙 귀찮아서 여지껏 안올리고 있습니다 ㄱ-
이번엔 프로그램이 키를 인식할수 있게 하는 법을 배울건데요,
GetAsyncKeyState을 쓰는겁니다.
이 방법으로 간단한 이동 키를 만들 수 있고 또한 키로거도 제작 가능합니다.
선언문:
Public Result As Integer
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Integer) As Short
우선 위의 선언문을 Public Class안에 넣어주세요.
그 다음엔 타이머를 사용하실 폼에 추가하세요. 전 타이머의 디자인명을 Tmr_Listener로 설정하겠습니다. 추가하신 타이머의 Interval을 1로 설정하세요^^ 그래야 가장 정확하게 사용자가 입력하는 키를 인식 할 수 있을겁니다.
타이머안에 넣을 코드:
For I = 1 To 255
Result = 0
Result = GetAsyncKeyState(I)
If Result = -32767 Then
If GetAsyncKeyState(Keys.Up) Then
'위로 움직이게 하는 코드
ElseIf GetAsyncKeyState(Keys.Left) Then
'왼쪽으로 움직이게 하는 코드
ElseIf GetAsyncKeyState(Keys.Right) Then
'오른쪽으로 움직이게 하는 코드
ElseIf GetAsyncKeyState(Keys.Down) Then
'밑으로 움직이게 하는 코드
End If
End If
Next I
위의 코드는 화살표 버튼 위, 아래, 왼쪽, 오른쪽을 인식하게끔 합니다. 각각 버튼을 눌를때 무슨 코드를 실행되게끔 할지는 여러분이 설정해보세요^^
밑의 예제 코드는 위의 기본 코드를 응용하여 만든 간단한 케릭터 이동을 가능하게끔 하는 코드입니다.
케릭터 움직이게 한 예제 코드:
'Pnl_Character은 케릭터가 있는 Panel입니다.
For I = 1 To 255
Result = 0
Result = GetAsyncKeyState(I)
If Result = -32767 Then
If GetAsyncKeyState(Keys.Up) Then
Pnl_Character.Location = New Point(Pnl_Character.Location.X, Pnl_Character.Location.Y - 10)
ElseIf GetAsyncKeyState(Keys.Left) Then
Pnl_Character.Location = New Point(Pnl_Character.Location.X - 10, Pnl_Character.Location.Y)
ElseIf GetAsyncKeyState(Keys.Right) Then
Pnl_Character.Location = New Point(Pnl_Character.Location.X + 10, Pnl_Character.Location.Y)
ElseIf GetAsyncKeyState(Keys.Down) Then
Pnl_Character.Location = New Point(Pnl_Character.Location.X, Pnl_Character.Location.Y + 10)
End If
End If
Next I
예제 코드를 더욱 꾸며서 만든 간단한 케릭터 움직이는 프로그램입니다!
이렇게 움직이는겁니다^^
그럼 이만 강좌 마치겠습니다!
'Programming > VB 2010 강좌' 카테고리의 다른 글
프로그램에 관리자권한 할당하기 (2) | 2012.12.01 |
---|---|
[D_Pain] Mine Story [Ver 0.1] 과 [Ver 0.2]의 코드설명 (MyBase.KeyDown 이벤트) (5) | 2012.10.15 |
[파란닌자] 프로그램 종료확인 묻기 (3) | 2012.10.14 |
With 에 대해 알아보자! (2) | 2012.10.13 |
imports 에 대해 알아보자! (2) | 2012.10.12 |