Microsoft PowerPoint - 09-CE-5-윈도우 핸들

Similar documents
1장 윈도우 프로그래밍 들어가기

Microsoft PowerPoint - 04windows.ppt

Microsoft PowerPoint - 09-CE-14-리스트콤보박스

04장 메시지 처리 유형

Microsoft PowerPoint - 09-CE-7-선과 도형

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

윈도우즈 프로그래밍

윈도우즈 프로그래밍

AutoCAD VBA 중급활용강좌 Sub 캐드의활성화상태 () 충분하지못한캐드 14버전도제어할수있다. 아래의코드는 'Application.hwnd' 속성을지원해주는캐드 2005 이상에서만실행된다. Dim 캐드상태 As Integer ' 현재의상태를나타냄캐드상태 = Ap

MFC 프로그래밍

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft Word - hook3.doc

윈도우 프로그래밍

Microsoft PowerPoint - 09-CE-25-오목게임

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - CSharp-10-예외처리

Chapter 1. MFC 시작하기

2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 중부대학교정보보호학과

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint - 09-CE-24-채팅 프로그램

개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API

API 매뉴얼

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - 09-CE-23-윈도우 소켓

PowerPoint 프레젠테이션

5장 MFC기반 다지기

Microsoft PowerPoint - hci2-lecture5-messagemap.ppt

Microsoft PowerPoint - C++ 5 .pptx

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

鍮뚮┰硫붾돱??李⑤낯

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

슬라이드 1

Microsoft PowerPoint - es-arduino-lecture-03

C프로-3장c03逞풚

슬라이드 1

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - 07-Data Manipulation.pptx

예제와 함께 배워보는 OllyDbg사용법

UI TASK & KEY EVENT

OvenPlayer SDK for Windows Developer s Guide Release 2.0 AirenSoft 4 월 07, 2016

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Frama-C/JESSIS 사용법 소개

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

윈도우즈프로그래밍(1)

<312DBED5BACEBCD328B8D3B8AEB8BB2CB8F1C2F7292DBCF6C1A42E687770>

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft Word - hook7.doc

Microsoft Word - hook4.doc

10 장세균전프로그래밍 10.1 게임룰 (1) 사람과컴퓨터가싸우는 2인용보드게임이다. (2) 사람이먼저움직이고, 컴퓨터가움직인다. (3) 세균을가로및세로방향으로 2칸까지빈칸으로이동시킬수있다. (4) 1칸을이동할경우에는복제가된다. (5) 이동한후주변세균은내편으로바뀐다.

adfasdfasfdasfasfadf

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

4S 1차년도 평가 발표자료

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - gnu-w06-python_[실습]_day13-turtle-shape

API 매뉴얼

설계란 무엇인가?

Microsoft Word - hook5.doc

Microsoft PowerPoint - CSharp-2-기초문법

쉽게 풀어쓴 C 프로그래밍

chap 5: Trees

슬라이드 1

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Java ...

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

歯MDI.PDF

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

윈도우즈 프로그래밍

IS119_Message.Hooking_이성재.hwp

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

윈도우시스템프로그래밍

K&R2 Reference Manual 번역본

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

슬라이드 1

윈도우 프로그래밍의 개념

슬라이드 1

JUNIT 실습및발표

Microsoft PowerPoint - 2-Objective-C 기초


Microsoft Word - PLC제어응용-2차시.doc

윈도우즈 프로그래밍

UI TASK & KEY EVENT

쉽게 풀어쓴 C 프로그래밍

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint 세션.ppt

17장 클래스와 메소드

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

03장.스택.key

Microsoft PowerPoint - (제15강)Win32 API.ppt

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

PowerPoint Presentation

Transcription:

순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트

윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정 4

윈도우핸들 윈도우구분하기위한값 HWND 형 윈도우생성시부여 윈도우가살아있는동안반드시존재 윈도우생성 HWND hwnd = CreateWindow( ) HWND == 0 이면윈도우생성실패를의미 HINSTANCE와의차이 프로그램실행시적재된메모리위치에관한정보 윈도우핸들과비슷하지만윈도우가표시되지않는프로그램도 HINSTANCE 의값이지정됨 순천향대학교컴퓨터학부이상정 5 윈도우검색, 확인및제거 순천향대학교컴퓨터학부이상정 6

예제 10: 윈도우검색예 (1) 실행중인윈도우모두를검색하여출력창에클래스이름과윈도우타이틀을표시하는프로그램 순천향대학교컴퓨터학부이상정 7 예제 10: 윈도우검색예 (2) API 함수 BOOL EnumWindows(WNDENUMPROC lpenumfunc, LPARAM lparam ); 스크린상의윈도우들이차례로콜백함수 lpenumfunc 함수를호출하여자신의핸들을인수로전달 lpenumfunc: 호출되는콜백함수 lparam: 콜백함수에전달되는값 순천향대학교컴퓨터학부이상정 8

BOOL CALLBACK EnumWindowCallBack(HWND hwnd, LPARAM lparam) 예제 10: 코드 WCHAR szclassname[1024]=l""; WCHAR sztitle [1024]=L""; GetClassName(hWnd, szclassname,1023); GetWindowText(hWnd,szTitle,1023); if (wcslen(sztitle)>0) OutputDebugString(szClassName); OutputDebugString(L" / "); OutputDebugString(szTitle); OutputDebugString(L" n"); return true; LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) switch (message) case WM_LBUTTONDOWN: EnumWindows(EnumWindowCallBack, 0); break; case WM_COMMAND: 순천향대학교컴퓨터학부이상정 9 예제 11: 윈도우찾기예 (1) 특정윈도우를검색하여출력창에자신의핸들, 자신의부모핸들, 검색된핸들, 바탕화면핸들을표시하는프로그램 순천향대학교컴퓨터학부이상정 10

예제 11: 윈도우찾기예 (2) API 함수 HWND FindWindow(LPCTSTR lpclassname, LPCTSTR lpwindowname); 지정된클래스이름과타이틀의윈도를검색하여핸들을리턴 lpclassname: 클래스이름 lpwindowname: 윈도우타이틀 HWND GetDesktopWindow(void); 바탕화면의윈도우핸들을리턴 HWND GetParent(HWND hwnd); 지정된핸들의부모윈도우핸들을찾아서 hwnd 리턴 BOOL SetForegroundWindow(HWND); 지정된핸들의윈도우를화면의전경 (foreground) 에표시하고활성화 HWND GetForegroundWindow(void); 화면의전경에있는윈도우핸들을리턴 HWND GetFocus(void); 현재키보드포커스를갖는윈도우핸들리턴 순천향대학교컴퓨터학부이상정 11 예제 11: 코드 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) switch (message) case WM_LBUTTONDOWN: HWND hwnddesktop = GetDesktopWindow(); HWND hwndfind = FindWindow(L"DesktopExplorerWindow", L"Desktop"); HWND hwndparent = GetParent(hWnd); WCHAR sztemp[1024] = L""; wsprintf(sztemp, L" %X n %X n %X n %X n", hwnd, hwndparent, hwndfind, hwnddesktop); OutputDebugString(szTemp); SetForegroundWindow(hWndDesktop); break; case WM_COMMAND: 순천향대학교컴퓨터학부이상정 12

예제 12: 윈도우확인및제거예 (1) 바탕화면핸들이존재여부확인하고제거하는프로그램 실행윈도우종료해도바탕화면이제거되어나타나지않음 순천향대학교컴퓨터학부이상정 13 예제 12: 윈도우확인및제거예 (2) API 함수 BOOL IsWindow(HWND hwnd ); 지정된윈도우핸들이존재하는지조사 지정된윈도우가존재하면0이아닌값을리턴 BOOL DestroyWindow(HWND hwnd ); 지정된윈도우를종료 다음코드도동일한효과 SendMessage(hWnd,WM_CLOSE,NULL,NULL); 순천향대학교컴퓨터학부이상정 14

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) switch (message) case WM_LBUTTONDOWN: HWND hwnddesktop = GetDesktopWindow(); if (IsWindow(hWndDesktop) == TRUE) OutputDebugString(L"DeskTop Running n"); BOOL bres = DestroyWindow(hWndDesktop); // SendMessage(hWndDesktop,WM_CLOSE,NULL,NULL); // BOOL bres =!IsWindow(hWndDesktop); if (bres == TRUE) OutputDebugString(L"DeskTop DeskTop Killed n"); else OutputDebugString(L"DeskTop Kill Fail n"); else OutputDebugString(L"DeskTop is not Existing n"); break; case WM_COMMAND: 순천향대학교컴퓨터학부이상정 15 예제 12: 코드 윈도우비활성화, 숨기기, 텍스트 순천향대학교컴퓨터학부이상정 16

예제 13: 윈도우비활성화, 숨기기예 (1) 마우스왼쪽버튼누르면 5 초동안윈도우비활성화되고, 이후 3초동안윈도우사라진후다시나타나는프로그램 순천향대학교컴퓨터학부이상정 17 예제 13: 윈도우비활성화, 숨기기예 (2) API 함수 BOOL IsWindowEnabled(HWND hwnd); 지정된윈도우핸들이활성화되었는지여부조사 BOOL EnableWindow(HWND hwnd, BOOL benable bl ); 지정된핸들의윈도우를활성화또는비활성화 benable: TRUE이면활성화, FALSE이면비활성화 BOOL IsWindowVisible(HWND hwnd ); 지정된핸들의윈도우가화면에보이는지여부조사 BOOL ShowWindow(HWND hwnd, int ncmdshow ); 지정된핸들의윈도우를화면에보이게하거나감춤 ncmdshow: SW_SHOW 이면표시, SW_HIDE 이면감춤 BOOL SetWindowText( HWND hwnd, LPCTSTR lpstring ); 지정된핸들의윈도우타이틀을 lpstring 으로표시 int GetWindowText(HWND hwnd, LPTSTR lpstring, int nmaxcount ); 지정된핸들의윈도우타이틀을 lpstring 에저장 순천향대학교컴퓨터학부이상정 18

WCHAR 임베디드 sztemp[1024] 소프트웨어 = L""; LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) switch (message) case WM_LBUTTONDOWN: GetWindowText(hWnd,szTemp,1023); SetWindowText(hWnd,L"Disable for 5 sec."); EnableWindow(hWnd, FALSE); SetTimer(hWnd,1,5000,NULL); SetTimer(hWnd,2,8000,NULL); break; case WM_TIMER: UINT nidevent = (UINT)wParam; if (nidevent == 1) KillTimer(hWnd,1); EnableWindow(hWnd, d TRUE); ShowWindow(hWnd, SW_HIDE); else if (nidevent == 2) KillTimer(hWnd,2); SetForegroundWindow(hWnd); ShowWindow(hWnd, SW_SHOW); SetWindowText(hWnd,szTemp); break; case WM_COMMAND: 순천향대학교컴퓨터학부이상정 19 예제 13: 코드 과제 3(1) 메시지박스에 OK 를누르면 5 초동안윈도우를비활성화하고, Cancel 버튼을누르면 5 초동안윈도우가감춰지는프로그램 순천향대학교컴퓨터학부이상정 20

과제 3(2) 순천향대학교컴퓨터학부이상정 21