1 / 13

소프트웨어 프로젝트 이지마우스

소프트웨어 프로젝트 이지마우스. A4 Developer 권용재 손희봉 이헌봉. 동적 관점 ( 이지마우스 데이터 흐름도 ). 모션등록 윈도우명령어. 명령어 도움말. 이지마우스. 편집 메뉴. 실행. 등록 메뉴. 마우스 오른쪽 버튼 클릭. 마우스 오른쪽 버튼 클릭. NO. 추가. 삭제. YES. 레코드 선택. 모션 그리기. 모션 그리기. 선택 레코드 삭제. 마우스 오른쪽 버튼 떼기. 마우스 오른쪽 버튼 떼기. NO. NO. YES. YES. DB 에 모션 저장.

gizi
Télécharger la présentation

소프트웨어 프로젝트 이지마우스

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 소프트웨어 프로젝트이지마우스 A4 Developer 권용재 손희봉 이헌봉

  2. 동적 관점(이지마우스 데이터 흐름도) 모션등록 윈도우명령어 명령어 도움말 이지마우스 편집 메뉴 실행 등록 메뉴 마우스 오른쪽 버튼 클릭 마우스 오른쪽 버튼 클릭 NO 추가 삭제 YES 레코드 선택 모션 그리기 모션 그리기 선택 레코드 삭제 마우스 오른쪽 버튼 떼기 마우스 오른쪽 버튼 떼기 NO NO YES YES DB에 모션 저장 입력모션 & DB에 저장된 모션비교 NO 실행 할 명령어 등록 YES 명령어 실행

  3. 유사 프로그램 · Sensiva ② 센시바에 대한 설정 메뉴④ 공통 명령 창 (공통으로 적용될 센시바의 행동들이 있는 곳)⑤ 플러그인.. 특정 프로그램에서 작동할 센시바의 기능이 표시되는 곳. ⑥ 플러그인 프로그램 선택 바 : 센시바는 딱히 특정 프로그램을 선택하지 않아도 해당 프로그램이 활성화되어 있으면 해당 프로그램에 지정한 플러그인 액션이 실행. 만약 해당 리스트에 원하는 프로그램이 없으면 'Plug-In' 메뉴에서 추가.

  4. 유사 프로그램 · Sensiva VS EasyMouse

  5. 마우스전역후킹 • 전역 마우스 후킹을 하고자 하면, 후킹 모듈을 dll로 만들어야만 한다. 그리고나서 dll 과 후킹 서버 프로그램이 서로 통신을 하여야 하는데, 이때 SendMessage가 사용 된다. SendMessage로 메시지를 전달하기 위해서는 dll과 후킹 서버 프로그램 간에 서로 통신하기 위한 연결이 필요로 한데,이때 고유한 메시지임을 식별이 필요한데, 이것은 RegisterWindowMessage 라는 함수를 통해 등록이 가능하다. UINT hooktest = RegisterWindowMessage("Hook_Test"); 와 같이 dll 측에 통신을 위한 메시지 값을 등록 시켜 주어야 한다.

  6. 마우스전역후킹 • HHOOK hookMouse = NULL; • HWND hwnd; • extern "C" __declspec(dllexport) bool InitializeMouseHook(HWND hWnd) • { • hwnd = hWnd; • hookMouse = SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseHookCallback,g_appInstance,0); • } • //전역 마우스 후킹을 설치하기 위한 구문이다. SetWindowsHookEx 함수를 통해 훅 프로시저를 생성 가능하게 한다. 첫 번째 인자로, 후킹의 종류가 무엇인지를 정해 주게 된다.두 번째 인자로, 실질적인 기능을 수행하게 될 콜백 함수를 등록해주게 되고, 서 번째 인자에는 dll 의 인스턴스 값을 넘겨주며, 마지막 인자에 0을 넣어 주게 되면, 실행 중인 모든 스레드로 대상을 지정한다는 의미이다.

  7. 마우스전역후킹 • static LRESULT CALLBACK MouseHookCallback(int code, WPARAM wparam, LPARAM lparam) • { • if (code >= 0) • UINT msg; • MOUSEHOOKSTRUCT* pMouse = (MOUSEHOOKSTRUCT*)lparam; • if(wparam == WM_LBUTTONUP){ • msg = RegisterWindowMessage(("MOUSE_LBUTTONUP_EVENT")); • } • if (msg != 0) • SendMessage(hwnd, msg, wparam, MAKELPARAM(pMouse->pt.x, pMouse->pt.y)); • } • // 후킹의 콜백함수 부분이다. wparam 에는 마우스 이벤트의 종류가 넘어오게 되고, lparam에는 구체적인 마우스 정보가 MOUSEHOOKSSTRUCT구조체에 담겨져 넘어 오게 된다. • 왼쪽 마우스 업 이벤트가 발생하게 되면, 후킹 모듈간의 통신을 위한 식별자를 RegisterWindowMessage를 통해서 선언 한다. • MAKELPARAM을 통해 마우스 정보를 lparam에 담고난 다음에, SendMessage를 통해 전송을 하게 된다.

  8. 마우스전역후킹 • extern "C" __declspec(dllexport) void UninitializeMouseHook() • { • if (hookMouse != NULL) • UnhookWindowsHookEx(hookMouse); • hookMouse = NULL; • } • //마우스 후킹을 해제 하기 위한 부분이다.

  9. 마우스전역후킹 • 다음으로, 후킹 서버 쪽 등록 방법. • UINT LMOUSE_UP_HOOK =::RegisterWindowMessage(("MOUSE_LBUTTO • NUP_EVENT")); • afx_msg LRESULT OnMouseLBTUP(WPARAM wParam ,LPARAM lParam); • //메시지를 받아처리 해줄 함수 • ON_REGISTERED_MESSAGE(LMOUSE_UP_HOOK,OnMouseLBTUP) • //헤더 파일에 선언 • LRESULT CGlobalMouseTestDlg::OnMouseLBTUP(WPARAM wraram, LPARAM lparam){ • point.x = (int)(short)LOWORD(lparam); • point.y = (int)(short)HIWORD(lparam); • } • //메시지 맵에 정의 해준 함수 OnMouseLBTUP(WPARAM wParam ,LPARAM lParam)와 등록된 메시지인 LMOUSE_UP_HOOK를 연결해 주면되는데, 그 구문

  10. 프로젝트 교육 수준 ·프로젝트 교육 수준

  11. 역할 분담 · 역할분담

  12. 이지마우스 구현계획 (세부일정)

  13. 땡 큐 ~ ♡교수님 사랑합니다.010 - 2274 - 6581 질문은 여기로…

More Related