다음을 통해 공유


키보드 및 마우스 사용자 지정

MFC 응용 프로그램 키보드 및 마우스 입력 처리 하는 방법을 사용자 지정할 수 있습니다.사용자 명령에 바로 가기 키를 할당 하 여 키보드 입력을 사용자 지정할 수 있습니다.사용자가 마우스 입력 특정 windows 응용 프로그램의 내부를 클릭할 때 실행 해야 하는 명령을 선택 하 여 지정할 수도 있습니다.이 항목에서는 응용 프로그램에 대 한 입력을 지정 하는 방법을 설명 합니다.

사용자 지정 대화 상자에서 사용자가 마우스와 키보드에 대 한 사용자 지정 컨트롤을 변경할 수 있습니다.이 대화 상자를 표시 하려면 사용자가 가리키는 사용자 지정 에 있는 보기 메뉴 및 클릭 도구 모음 및 도킹.대화 상자에서 하나 클릭할는 키보드 탭 또는 마우스 탭.

키보드 사용자 지정

다음 그림과 키보드 탭의 사용자 지정 대화 상자.

키보드 사용자 지정 탭

사용자 지정 대화 상자의 키보드 탭

명령에 하나 이상의 바로 가기 키를 할당 하려면 키보드 탭의 사용자와 상호 작용 합니다.사용할 수 있는 명령 탭의 왼쪽에 나열 됩니다.사용자가 사용할 수 있는 명령 메뉴에서 선택할 수 있습니다.메뉴 명령에만 바로 가기 키와 연결 될 수 있습니다.사용자가 새 단축키를 입력 한 후에 할당 단추를 사용할 수 있습니다.이 단추를 클릭할 때 응용 프로그램 바로 가기와 선택한 명령에 연결 합니다.

목록 상자 오른쪽 열에 현재 할당 된 바로 가기 키를 모두 나열 됩니다.사용자 바로 가기 키를 선택 하 고 제거 하거나 수도 응용 프로그램에 대 한 모든 매핑을 다시 설정 합니다.

응용 프로그램에서이 사용자 지정을 지원 하려면 만들어야 합니다는 CKeyboardManager 개체입니다.만들 수 있는 CKeyboardManager 개체, 함수를 호출 합니다. CWinAppEx::InitKeyboardManager.이 메서드를 만들고 키보드 관리자를 초기화 합니다.키보드 관리자 수동으로 만들려는 경우 여전히 호출 해야 CWinAppEx::InitKeyboardManager 초기화 합니다.

응용 프로그램을 만들려면 마법사를 사용 하는 경우 마법사는 키보드 관리자를 초기화 합니다.키보드 관리자 응용 프로그램을 초기화 한 후 프레임 워크에 추가 키보드 탭에 사용자 지정 대화 상자.

마우스 사용자 지정

다음 그림과 마우스 탭의 사용자 지정 대화 상자.

마우스 사용자 지정 탭

사용자 지정 대화 상자의 마우스 탭

이 탭에는 메뉴에 할당할 사용자가 상호 작용 하는 명령을 마우스 동작을 두 번 클릭 합니다.사용자 창의 왼쪽에서 보기를 선택 하 고 오른쪽에 있는 컨트롤을 사용 하 여 명령을 두 번 클릭 작업과 관련이 있습니다.이후에 클릭할 닫기, 어디에서 보기 클릭할 때마다 응용 프로그램 관련된 명령을 실행 합니다.

마법사를 사용 하 여 응용 프로그램을 만들 때 기본적으로 마우스를 사용자 정의 사용할 수 없습니다.

마우스 사용자 지정을 사용 하려면

  1. 초기화는 CMouseManager 를 호출 하 여 개체 CWinAppEx::InitMouseManager.

  2. 포인터를 마우스 관리자를 사용 하 여 얻을 CWinAppEx::GetMouseManager.

  3. 마우스 관리자를 사용 하 여 뷰를 추가 CMouseManager::AddView 메서드가 있습니다.마우스 관리자를 추가 하려는 모든 보기에 대해이 작업을 수행 합니다.

마우스 관리자 응용 프로그램을 초기화 한 후 프레임 워크에 추가 마우스 탭에 사용자 지정 대화 상자.액세스 탭의 모든 뷰를 추가 하지 않으면 처리 되지 않은 예외가 발생 합니다.목록 보기를 만든 후에 마우스 탭 사용자가 사용할 수 있습니다.

마우스 관리자에 새 보기를 추가 하면가 고유한 ID 입력마우스 사용자 지정 창에 지원 하려는 경우를 처리 해야는 WM_LBUTTONDBLCLICK 메시지와 호출을 CWinAppEx::OnViewDoubleClick 함수.이 함수를 호출할 때 매개 변수를 해당 창에 대 한 ID입니다.ID 번호와 관련 된 개체를 추적 하는 프로그래머의 책임입니다.

보안 관련 사항

에 설명 된 대로 도구 사용자 정의, 사용자가 사용자 정의 도구 ID를 두 번 클릭 이벤트를 연결할 수 있습니다.뷰를 두 번 클릭할 때 연결 된 ID와 일치 하는 사용자 도구에 대 한 응용 프로그램을 찾습니다.응용 프로그램에 일치 하는 도구를 찾으면 도구를 실행 합니다.응용 프로그램을 일치 하는 도구를 찾을 수 없으면 보기를 두 번 클릭 id WM_COMMAND 메시지를 보냅니다.

사용자 지정된 설정은 레지스트리에 저장 됩니다.레지스트리를 편집 하 여 올바른 사용자 도구 ID 공격자는 임의의 명령을 사용 하 여 바꿀 수 있습니다.보기를 클릭할 때 보기 토템 공격자의 명령을 처리 합니다.이 잠재적으로 위험한 예기치 않은 동작이 발생할 수 있습니다.

또한 이러한 종류의 공격 사용자 인터페이스 보호를 무시할 수 있습니다.예를 들어, 응용 프로그램에 인쇄를 사용할 수 있습니다.즉, 해당 사용자 인터페이스에는 인쇄 메뉴와 단추를 사용할 수 없습니다.일반적으로 응용 프로그램을에서 인쇄할 수 없습니다.하지만 공격자는 레지스트리를 편집 하는 경우 사용자가 이제 인쇄 명령을 직접 보기를 두 번 눌러 사용할 수 있는 사용자 인터페이스 요소를 사용 하지 않고 보낼 수 수 있습니다.

이 유형의 공격을 방지 하려면 명령을 실행 하기 전에 유효한 지 확인 하 여 응용 프로그램 명령 처리기 코드를 추가 합니다.명령을 응용 프로그램에 전송 되지 않게 하려면 사용자 인터페이스에 종속 되지 않습니다.

참고 항목

참조

CKeyboardManager 클래스

CMouseManager 클래스

개념

MFC에 대 한 사용자 지정

사용자 지정 보안에 미치는 영향