반응형
* C# 윈도우 폼 (Window Form) 이 포커스(Focus) 를 가지지 않게 하기 예제...
전체 소스 코드
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace CSharp_FormNoActive
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
private const long WM_NOACTIVATE = 0x8000000L;
public Form1()
{
InitializeComponent();
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | (int)WM_NOACTIVATE;
return cp;
}
}
private void button1_Click(object sender, EventArgs e)
{
keybd_event((byte)Keys.W, 0, 0, 0); //KeyDown 이벤트
keybd_event((byte)Keys.W, 0, 0x02, 0); //KeyUp 이벤트
}
}
}
위 소스와 같이 keybd_event API 함수를 이용해 키보드를 입력한 효과를 나타 낼 수 있습니다.
3번째 전달인자 0 : 키를 눌렀을 때 효과
0x02 : 키가 올라왔을 때 효과
이므로 두개를 합치면 키를 눌렀다 땠다 하는 효과를 볼 수 있습니다.
*예제 결과
보통 윈도우 폼에서 버튼을 클릭을 하게 되면 마우스 커서 즉 포커스가 윈도우 폼으로 이동 하게 되는데 아래의 그림과 같이 버튼을 클릭 하여도 마우스 커서 즉 포커스가 윈도우 폼으로 이동 되지 않는 다는 것을 볼 수 있습니다.
반응형
'C# Programming' 카테고리의 다른 글
[C#] ref 키워드 와 out 키워드의 차이 (0) | 2020.02.12 |
---|---|
[C#] [API] 해당 윈도우 폼(Window Form) 을 찾아서 최상위 윈도우로 포커스(Focus) 맞추기 (0) | 2020.02.10 |
[C#] Excel File Print (엑셀 파일 프린트 하기) (0) | 2020.02.04 |
[C#] 아스키 코드 표 (Ascii Code) (0) | 2020.02.03 |
[C#] [WMI] 현재 실행 중인 프로세스 조회 (Process Search) (0) | 2020.01.30 |