NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# 4부 - 누구나 쉽게 할 수 있는 C# 매크로 만들기. (키보드 입력과 텍스트 쓰기.)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. C#으로 매크로 만들기의 마지막 글이 되겠네요^^; 이미 [ 1부 ]에서 개발 환경을 갖추고, [ 2부 ]에서 마우스 클릭 방법에 대해 알아보았습니다. 그리고, [ 3부 ]에서 매크로의 핵심이라고 할 수 있는 이미지 인식 방법도 알아봤는데요. 마지막으로 키보드 입력 방법을 알아보면 매크로에서 필요로 하는 모든 기능(?)을 배우게 됩니다. C나 C++에서는 2부 마우스 클릭에서 추가한 윈도우 API 라이브라리(win32.dll)를 이용해야 합니다. 물론, 키보드도 그렇긴한데요. C#은 키보드 입력을 쉽게 할 수 있도록 "SendKeys" 클래스를 제공해줍니다. 이걸 진작 알았더라면... 키보드 기능을 구현하느라 시간을 낭비하지 않았을텐데요. 아쉽군요^^; 자~ MyPlayer 프로젝트를 열어줍니다. 아래 동영상을 참고해서 입력할 텍스트를 적을 TextBox 콘트롤을 추가하고, 실행할 버튼도 하나 추가해줍니다.

    pXeDqcy.gif

     

     

    텍스트 쓰기 버튼을 더블 클릭하면 이벤트 처리기가 소스에 자동으로 추가 됩니다. 이제는 버튼을 추가하고 더블 클릭하면 이 버튼을 클릭했을 때 동작하는 코드를 작성해야 한다는걸 알게 되었습니다. 2부와 3부 내용을 학습하신 분들은 이미 알고 있겠지만요^^; 아래와 같이 코드를 추가하세요.

            private void button4_Click(object sender, EventArgs e)
            {
                // 창을 활성화 하기 위해 1초 기다려줍니다.
                System.Threading.Thread.Sleep(1000);
    
                // 활성화된 창에 텍스트를 씁니다.
                SendKeys.Send("안녕하세요! NGMsoftware입니다.");
            }

     

    F5를 눌러서 실행 해볼까요? 아래 동영상처럼 텍스트 쓰기 버튼을 누른 후 재빠르게 메모장을 클릭해놔야 합니다. 잘 동작하죠?

    nXRvnqo.gif

     

     

    이제 텍스트 박스에 입력한 텍스트를 메모장에 쓰게 코드를 약간 수정해야 합니다. 아래와 같이 코드를 변경하세요.

            private void button4_Click(object sender, EventArgs e)
            {
                // 창을 활성화 하기 위해 1초 기다려줍니다.
                System.Threading.Thread.Sleep(1000);
    
                // 텍스트 박스에 입력한 텍스트를 가져와서 text 변수에 저장합니다.
                string text = textBox1.Text;
    
                // 활성화된 창에 텍스트를 씁니다.
                SendKeys.Send(text);
            }

     

    프로그램을 실행한 후 텍스트 박스에 원하는 글자를 입력하세요. 그리고, 텍스트 쓰기 버튼을 클릭하면 사용자가 입력한 내용을 쓸 수 있게됩니다.

    6OqYa3d.gif

     

     

    특수키를 입력하려면 어떻게 해야 할까요? 특수키는 탭 또는 엔터(리턴)키와 같은 것들입니다. 특수키는 대괄호를 이용해서 입력할 수 있습니다. 텍스트 박스에 "안녕!{enter}NGM입니다!"와 같이 입력한 후 다시 실행 해보세요. 대괄호에 입력한 enter로 인해서 줄바꿈이 되는걸 확인할 수 있습니다.

    PqxK16z.gif

     

     

    C#의 "SendKeys.Send" 메소드는 입력된 텍스트를 그대로 입력해줍니다. 한글과 영어 그리고, 특수문자까지도요. 그래서 대소문자를 굳이 처리하지 않아도 됩니다. 그러나, Ctrl+A, Ctrl+C, Ctrl+V와 같은 동작들은 자주 사용되는 기능들입니다. 그래서, Shift, Ctrl, Alt와 같은 스페셜 키도 입력할 수 있어야 합니다. 이들은 아래와 같이 처리됩니다.

    • Shift: +
    • Ctrl: ^
    • Alt: %

     

    테스트를 위해 텍스트 박스에 "^a^c{end}{enter}^v"와 같이 입력한 후 실행 했습니다. 보면 아시겠지만, 전체 선택 후 클립보드에 복사합니다. 그리고, 엔드키를 눌러서 마지막으로 커서를 이동하고 엔터를 눌러서 줄바꿈 해줍니다. 마지막으로 붙여넣기 후 작업이 완료됩니다.

    x3IKXE6.gif

     

     

    생각보다 사용법이 너무 쉽죠^^? 이렇게해서 장장 4부에 걸쳐서 C#으로 마우스, 키보드, 이미지 인식 매크로를 만들어봤습니다. 사실 복잡한 업무를 매크로로 만들려면 더 많은 기능들을 추가해야겠지만, 기본적인 뼈대는 이미 만들었으므로 여기에 살만 좀 붙이면 괜찮은 매크로가 될거 같습니다. 비개발자분들은 시간이 좀 걸리겠지만, 아는 개발자 지인이 있다면 치킨 한마리 사주고 원하는 기능을 만들어 달라고하면 한두시간이면 뚝딱 만들겁니다. 개발자 입장에서는 매크로 프로그램이 그렇게 어렵지 않은 소프트웨어거든요^^

    ※ 특수키 코드표는 [ 여기 ]를 참고하세요!

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.