SendKeys.SendWait("ABCDE");

 

활성화된 다른 창이나 다른 어플리케이션 텍스트박스에 키 입력을 보내고 싶을때 Sendkeys를 사용한다.

 

키값 종류

 

백스페이스
{BACKSPACE} {BS} 또는 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL 또는 삭제 {DELETE} 또는 {DEL}
아래쪽 화살표 {DOWN}
END {END}
ENTER {ENTER} 또는 ~
Esc 키 {ESC}
도움말 {HELP}
홈 {HOME}
INS 또는 INSERT {INSERT} or {INS}
왼쪽 화살표 {LEFT}
NUM LOCK {NUMLOCK}
Page Down {PGDN}
Page Up {PGUP}
화면 인쇄 {PRTSC} (나중에 사용할 예약 됨).
오른쪽 화살표 {RIGHT}
스크롤 잠금 {SCROLLLOCK}
Tab 키 {탭}
위쪽 화살표 {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
키패드 추가 {ADD}
키패드 빼기 {SUBTRACT}
키패드 곱하기 {MULTIPLY}
키패드 나누기 {DIVIDE}
SHIFT, CTRL 및 ALT 키의 조합이와 결합 된 키를 지정 하려면 다음 코드 중 하나 이상과 키 코드를 앞에 있습니다.

Key 코드
SHIFT 키 +
CTRL ^
ALT 키 %

특문과 합쳐서 쓸때는
Ctrl + C = "^C"
Ctrl + V = "^V"
Ctrl + Alt + Enter = "^%{ENTER}"

 

X, Y 좌표값을 얻기 위해 만든 Form

 

타이머는 System.Windows.Forms.Timer 를 사용했습니다.

 

체크박스에 체크를 하면 timer가 동작되고 

스페이스바 키를 눌렀을때

체크박스의 체크가 해제되면서

timer가 정지됩니다.

 

체크를 하면 X, Y 좌표값을 실시간으로 가져온다.

 

public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);

        private const uint MOUSEEVENTF_LEFTDOWN = 0x0000; //= 0x0002;      // The left button is down.
        private const uint MOUSEEVENTF_LEFTUP = 0x0000;// = 0x0004;        // The left button is up.

        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            lbX1.Text = Cursor.Position.X.ToString();
            lbY1.Text = Cursor.Position.Y.ToString();
        }

        private void btnStop1_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                if (cbP1.Checked)
                {
                    btnStop1.PerformClick();
                    cbP1.Checked = false;
                }
            }
        }

        private void cbP1_CheckedChanged(object sender, EventArgs e)
        {
            if(cbP1.Checked)
            {
                timer1.Start();
                this.ActiveControl = null;

            }
        }

 

윈폼으로 개발하다가 간혹 Key_Down 이벤트가 작동하지 않을때가 있다.
키보드 메시지를 다른 컨트롤이 먼저 받아서 처리해버려서 
폼의 이벤트 핸들러는 해당 메시지를 받지 못하기 때문이다.
이런 경우 KeyPreview 속성을 true로 설정함으로써, 해당 폼의 이벤트 핸들러가 해당 메시지를 먼저 
처리하도록해서 해결할 수 있다.

 

this.KeyPreview = true;

 

 

 

+ Recent posts