반응형
* VBNET 윈도우 폼(Window Form) 포커스(Focus) 가 가지 않게 하기 예제...
전체 소스 코드
Form1.vb
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("user32.dll")> _
Private Shared Sub keybd_event(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As UInteger, ByVal dwExtraInfo As Integer)
End Sub
Dim WS_NOACTIVE As Long = 134217728
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or WS_NOACTIVE
Return cp
End Get
End Property
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
keybd_event(Convert.ToByte(Keys.W), 0, 0, 0) 'KeyDown
keybd_event(Convert.ToByte(Keys.W), 0, &H2, 0) 'KeyUp
End Sub
End Class
위 소스와 같이 keybd_event API 함수를 이용해 키보드를 입력한 효과를 나타 낼 수 있습니다.
3번째 전달인자 0 : 키를 눌렀을 때 효과
&H2 : 키가 올라왔을 때 효과
이므로 두개를 합치면 키를 눌렀다 땠다 하는 효과를 볼 수 있습니다.
*예제 결과
보통 윈도우 폼에서 버튼을 클릭을 하게 되면 마우스 커서 즉 포커스가 윈도우 폼으로 이동 하게 되는데 아래의 그림과 같이 버튼을 클릭 하여도 마우스 커서 즉 포커스가 윈도우 폼으로 이동 되지 않는 다는 것을 볼 수 있습니다.
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] Network MacAddress (네트워크 맥 주소 구하기) (0) | 2020.02.14 |
---|---|
[VBNET] [API] 해당 윈도우 폼(Window Form) 을 찾아서 최상위 윈도우로 포커스(Focus) 맞추기 (0) | 2020.02.11 |
[VBNET] Excel File Print (엑셀 파일 프린트) (0) | 2020.02.05 |
[VBNET] [WMI] 현재 실행 중인 프로세스 조회 (Process Search) (0) | 2020.01.31 |
[VBNET] [WMI] 윈도우 시작 프로그램 조회 (Startup Program) (0) | 2020.01.29 |