|
sunje 님이 쓰신 글 :
: 안녕하세요.
: 항상 도움만 요청하게 되네요...
:
: 질문은 버튼(Button1)을 클릭하면 특정키 (키보드 왼쪽의 ctrl와 숫자 1)를 누르는 효과를 주고자 합니다.
: 예를 들면
: 버튼을 클릭했을 경우 키보드의 " ctrl + C " 눌려 전체 복사를 한다든지 또는 " ctrl + V "를 눌려 붙여넣기의 효과를 주고 싶습니다.
: 어떻게 하면 될까요?
:
: 윈도우 가상 키 코드를 보니까
: 키보드 왼쪽의 ctrl는 "VK_CONTROL" 이고 숫자 1은 "VK_1"인 것은 알겠으나 어떤게 표현해야 할지 모르겠습니다.
: 작은 팁이라도 부탁 드리겠습니다....
키보드 입력 효과를 사용할때에는 보통 keybd_event() 함수를 사용합니다.
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
아래는 예제입니다.
= 윈도우키+E 키를 눌러서 윈도우 탐색기를 실행합니다.
keybd_event(VK_LWIN, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0); // 윈도우키 다운
keybd_event(VK_E, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0); // E 키 다운
keybd_event(VK_E, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); // E 키 업
keybd_event(VK_LWIN, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); // 윈도우키 업
조합키의 경우 위와같이 사용하면 됩니다.
하지만 sunje님께서 하시려는게 이걸로 해결이 될지는 모르겠네요^^;
일반버튼은 누르는 순간 포커스가 버튼으로 가서 Ctrl+C 할때 원하는 동작이 안될것입니다.
작성중인 프로그램안의 기능이라면 스피드 버튼이나 팝업메뉴등으로 해결할 수 있지만,
다른 프로그램에서 해당 키보드 입력기능(?)을 하시려면 전역후킹등을 고려하셔야 할듯합니다^^;
|