티스토리 뷰
Visual Studio 2012사용
백그라운드에서 키보드 입력을 읽어보자.
1. 우선 Windows Form 응용프로그램으로 프로젝트 생성하자.
- label 컨트롤 하나 생성한다.
2. 아래의 참조를 추가한다(어셈블리-프레임워크)
- PresentationCore
- WindowsBase
3. 소스는 아래와 같이 작성
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Input;
using System.Threading;
namespace BGwork
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool isRunning = true;
private void Form1_Load(object sender, EventArgs e)
{
Thread TH = new Thread(Keyboardd);
TH.SetApartmentState(ApartmentState.STA);
CheckForIllegalCrossThreadCalls = false;
TH.Start();
}
void Keyboardd()
{
while (isRunning)
{
Thread.Sleep(40); //minimum CPU usage
if ((Keyboard.GetKeyStates(Key.Return) & KeyStates.Down) > 0)
{
label1.Text = "Pressed";
}
else
{
label1.Text = "Not Pressed";
}
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
isRunning = false;
}
}
}
- 스레드에서 알아서 계속 키보드값을 읽어준다
- 엔터키 입력 감지시 폼 내 label1의 텍스트가 Pressed로 변경되고, 그 외에는 Not Pressed로 유지된다.
- 끝
'Programming > C#' 카테고리의 다른 글
| [C#] 자료 CSV 저장/불러오기(CsvSerializer) (0) | 2020.02.12 |
|---|---|
| [C#] WinForm에 안드로이드 폼, 폰트 적용하기(MaterialSkin) (1) | 2020.02.10 |
| [C#] 텍스트를 파일로 저장해보자! (0) | 2019.01.17 |
| [C#] 특정 프로세스의 윈도우를 캡쳐하기 (0) | 2018.12.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스티커메모로드중
- 법정동코드
- 청년내일채움공제
- 프로세스이름변경
- 전자신고변환
- CMFCBUTTON
- 부가가치세
- 해외송금확인
- MFC Modeless
- MSSQL
- ADO
- 모달리스 다이얼로그
- ADODB
- #자동업데이트
- 소켓
- MXCOMPONENT
- c++
- MFC
- MFC ADO
- 스쿠트항공 환불받기
- 항공알파벳
- 전자신고파일설명서
- Modeless
- 부가가치세전산매체
- 모달리스
- 세금계산서합계표양식
- Sticky Notes Loading
- sqlite3
- SendMessage
- 청년내일채움공제 만기신청
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함