This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

Fillano's Learning Notes 會員登入 會員註冊

« 上一篇 | 下一篇 »

好多年沒開發使用win32api的東西了,因為有需要,前幾天稍微測試了一下。

簡單的原理是用SetWindowsHookEx函數安裝一個WH_KEYBOARD hook來攔截,但是發現在事件處理的函數中即使不呼叫CallNextHookEx而直接return,還是無法擋住Print Screen的動作......

找了一下MSDN,最後用了Clipboard相關的函數來解決,方法是攔截到PrintScreen鍵時,立刻取得clipboard(用到GetClipboardOwner跟OpenClipboard兩個函數),然後呼叫EmptyClipboard函數來清除剪貼簿。目前看起來這樣應該可以簡單地防止PrintScreen把螢幕或應用程式的畫面拷貝到剪貼簿,當然也就無法貼到小畫家等程式存檔了。

不過這樣的方法只能防君子不能防小人,一些snapshot軟體可以透過拷貝DeviceContext的方式取得其他應用程式畫面,這樣就無法用這個方法阻止了。

(其他心得:在網路上找了一支用Memory Map File來共享資料的類別,可以用他來共享hook handle,這樣就可以用Dev-C++來做,不必非靠VisualC不可了。另外,VC9 runtime dll配置的方法跟以前的vc runtime差真多阿?我以為只要copy到同一個目錄就能用了啦。果然太久沒碰了......)

  1. Re: 簡單阻擋PrintScreen的方法 [回覆]

    办公室装修seo公司要选择杭州装修公司来进行自己的杭州搬家策划,在设计过程中要把杭州办公室装修中所涉及到项目体现到Google优化预算单中,因为Google左侧排名是个多元化的施工组织.

    fefe 回應於 08 元月, 2010 13:21

  2. Re: 簡單阻擋PrintScreen的方法 [回覆]

    “打印屏幕(通常缩写爱乐可控硅,打印Scrn,台北爱乐营养问题,台北爱乐钪,台北爱乐Scrn,或Prnt Scrn)是一个电脑键盘上最关键的存在。它通常在与突破的关键和同一段位于滚动锁定键。打印屏幕与系统内存共享的要求。“也许从一本,有用的信息的方式如何试图在这里解释一些职位对我来说有不同的...当然,在这里不同的岗位,但我didn't找到任何职位如有关的VCP-410 , exam 70-640 个项目...如果有人对此有资料,请告诉我!那么任何有关这一职务的更新如果是的话比告诉我!其实我来这里当冲浪网,以取得相关的70-642个项目和数据找到这个职位不同的是...有大约70-680 testking人拥有的信息?如果是的话比告诉我!任何更新?

    Ahm 回應於 09 三月, 2010 13:20

發表回應

 暱稱 (必填)

 標題

 個人網頁

 電子郵件

authimage 
 認證碼 (必填)