수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1695034
  • Today | 779
  • Yesterday | 606

Programming/Win32 API2007/01/03 16:26

클립보드 모니터링 하기

고수닷넷 - 데미소다오렌지님

오피스 제품군은 대부분에는 클립보드 모니터링 기능이 포함되어있습니다. 클립보드 모니터링이란 클립보드의 변경 내용을 프로그램에서 감지하는 것을 말합니다. 아래는 클립보드를 모니터링 하는데 필요한 관련 API들 입니다.

  
HWND SetClipboardViewer( 
  HWND hWndNewViewer   // handle to clipboard viewer window 
); 

위 함수는 클립보드를 모니터링하는 프로그램의 핸들을 등록합니다. 클립보드 모니터링을 시작할 때, 꼭 호출해 주어야 하는 함수 입니다.

BOOL ChangeClipboardChain( 
  HWND hWndRemove,  // handle to window to remove 
  HWND hWndNewNext  // handle to next window 
); 

위 함수는 클립보드를 모니터링하는 프로그램의 체인 구조를 변경합니다. 클립보드 모니터링을 종료할 때, 꼭 호출해서 체인이 손상되지 않도록 해야 합니다.

클립보드 뷰어로 등록하게 되면 아래 메시지를 처리해 주셔야 합니다.

WM_CHANGECBCHAIN 
wParam 
Handle to the window being removed from the clipboard viewer chain. 
lParam 
Handle to the next window in the chain following the window being removed. 
This parameter is NULL if the window being removed is the last window in the chain. 

클립보드 체인이 변경될때 발생하는 메시지 입니다. 자신이 가지고 있는 next핸들이 removed핸들과 같은 경우에는 새로 설정해 주어야 합니다.

WM_DRAWCLIPBOARD 

클립보드의 내용이 변경되는 경우에 발생하는 메시지 입니다. 이 메시지 핸들러에서 클립보드의 내용을 검사하시면 됩니다.

클립보드라는 기능이 윈도우의 초기 버전에 나온 기능인 만큼 뷰어의 구조또한 위험하게 설계되어 있습니다. 함수 후킹과 마찬가지로 뷰어 체인은 전적으로 프로그램에게 권한이 위임됩니다. 자신을 뷰어로 등록한 후에 자신의 다음 뷰어에게 반드시 WM_CHANGECBCHAIN과 WM_DRAWCLIPBOARD메시지를 포스팅 해 주어야 합니다. 그렇게 하지 않을 경우 뷰어 체인이 끊기게 됩니다.

첨부된 소스는 클립보드의 텍스트 내용을 감시하는 샘플입니다. 클립보드에 새로운 텍스트가 복사되면 프로그램에 해당 내용이 자동으로 나타납니다.

"Win32 API" 카테고리의 다른 글
  • 특정 확장자명으로 프로그램 실행시키기 (0)2007/02/21
  • 프로세스 우선순위 조절하기 (2)2007/01/03
  • 클립보드 모니터링 하기 (0)2007/01/03
  • TRACE 매크로를 구현하는 방법 (0)2007/01/02
  • 윈도우 종료 시키기 (0)2007/01/02
2007/01/03 16:26 2007/01/03 16:26
Posted by webdizen
Tags 모니터링, 클립보드
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2549

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 697 698 699 700 701 702 703 704 705 ... 3009  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • Labs
  • eyeOS
  • 데이터베이스
  • 아바이 벌꿀 소주
  • 열망
  • 컴파일러 옵션
  • 터미널 장치 파일
  • Internet
  • 한국과학기술원
  • 플러그인
  • 프로필러
  • 평생교육원
  • String Conversion
  • 데드락
  • 리스트
  • 지식탐사
  • NBTScan
  • 콘텐츠
  • Windows Presentation Foundation
  • mount

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 경청... 너무나 중요한데.......
    webdizen 14:59
  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Polarux - Linuxing
      • Rodman®
      • 까만 나비
      • 나를 가꾸는 시간.
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.