프로그램에서
Print-Screen으로 화면 캡쳐를 막는 class 입니다.
문론 원천적으로 프로그램의 캡쳐를 완전히 막는 방법은 없습니다.
최소한의 캡쳐방비용 기능입니다.
사용방법은?
....
Application이 Minimize되었을때는 Print-Screen을 허용하도록 한것입니다.
그럼..
Print-Screen으로 화면 캡쳐를 막는 class 입니다.
문론 원천적으로 프로그램의 캡쳐를 완전히 막는 방법은 없습니다.
최소한의 캡쳐방비용 기능입니다.
#include <ClipBrd.hpp> // ��� // http://msdn.microsoft.com/en-us/magazine/cc163713.aspx // http://msdn.microsoft.com/en-us/library/windows/desktop/ms646279(v=vs.85).aspx // http://labnol.blogspot.com/2004/08/disable-print-screen-key-in-windows.html //--------------------------------------------------------------------------- class TSnapShotBlock { HWND m_hWnd[4]; bool m_bBlock; public: TSnapShotBlock() { m_bBlock=false; for(int i=0;i<4;i++) { m_hWnd[i]=AllocateHWnd(AllHwndWinProc); } } ~TSnapShotBlock() { SetSnapshotBlock(false); for(int i=0;i<4;i++) { DeallocateHWnd(m_hWnd[i]); } } //---------------------------------------------- void __fastcall AllHwndWinProc(TMessage &Msg) { if(Msg.WParam==IDHOT_SNAPDESKTOP || Msg.WParam==IDHOT_SNAPWINDOW) { Clipboard()->Clear(); } } //---------------------------------------------- void __fastcall SetSnapshotBlock(bool bBlock) { m_bBlock=bBlock; if(bBlock) { RegisterHotKey(m_hWnd[0], IDHOT_SNAPDESKTOP,0, VK_SNAPSHOT); RegisterHotKey(m_hWnd[1], IDHOT_SNAPDESKTOP,MOD_CONTROL, VK_SNAPSHOT); RegisterHotKey(m_hWnd[2], IDHOT_SNAPDESKTOP,MOD_SHIFT, VK_SNAPSHOT); RegisterHotKey(m_hWnd[3], IDHOT_SNAPDESKTOP,MOD_WIN, VK_SNAPSHOT); RegisterHotKey(m_hWnd[0], IDHOT_SNAPWINDOW, MOD_ALT, VK_SNAPSHOT); } else { UnregisterHotKey(m_hWnd[0], IDHOT_SNAPDESKTOP); UnregisterHotKey(m_hWnd[1], IDHOT_SNAPDESKTOP); UnregisterHotKey(m_hWnd[2], IDHOT_SNAPDESKTOP); UnregisterHotKey(m_hWnd[3], IDHOT_SNAPDESKTOP); UnregisterHotKey(m_hWnd[0], IDHOT_SNAPWINDOW); } } }; TSnapShotBlock g_SnapshotBlk; |
|
사용방법은?
void __fastcall TForm1::FormCreate(TObject *Sender) { g_SnapshotBlk.SetSnapshotBlock(true); Application->OnMinimize=AppMinimize; Application->OnRestore=AppRestore; } //--------------------------------------------------------------------------- //프로그램이 minimize될때 snapshot을 허용하도록 한다. void __fastcall TForm1::AppMinimize(TObject *Sender) { g_SnapshotBlk.SetSnapshotBlock(false); } //--------------------------------------------------------------------------- //프로그램이 Restore될때 snapshot을 막는다 void __fastcall TForm1::AppRestore(TObject *Sender) { g_SnapshotBlk.SetSnapshotBlock(true); } |
....
Application이 Minimize되었을때는 Print-Screen을 허용하도록 한것입니다.
그럼..
'프로그래밍' 카테고리의 다른 글
TreeView의 TreeNode 클래스 바꾸기 (0) | 2012.04.18 |
---|---|
TRichEdit에 rtf 문자열 Asssign하기 .. (1) | 2012.03.31 |
LOG_PRINTF 문자열 길이 제한을 벗어버리자 (0) | 2012.03.22 |
Launcher 만들기 (0) | 2012.03.22 |
TPageControl 사용법 설명 (0) | 2012.02.07 |