2014-04-24 51 views
4

我正嘗試在C#中編寫一個應用程序,我可以檢測到另一個應用程序是否正在Windows中捕獲屏幕的視頻。我可以查看進程列表並檢測特定進程是否正在運行,但由於捕獲應用程序的進程名稱可以更改,因此效率不高。任何人都可以告訴我是否有任何方法可以做到這一點?謝謝 !使用.NET在窗口中檢測屏幕錄製文件

+1

這篇文章的一些答案可能對你有用:http://stackoverflow.com/questions/6083261/tracking-screen-recorder-in-windows-app?rq=1 – ravuya

+0

不 - 如果是的話遠程桌面或其他類似的可視化視頻卡? [HDCP](http://en.wikipedia.org/wiki/HDCP)唯一可能接近於防止未經授權錄製的內容。 –

+0

@ravuya,感謝您的答覆,我想檢查線程,但沒有具體的有提到 – user3566885

回答

3

如果你正在試圖做的一切是檢測在同一臺計算機上的進程是否正在記錄你也許可以找到一種方法,這樣做對一些東西的畫面。許多屏幕錄製軟件都使用某些API,您可以使用EasyHook或類似的軟件截取這些API,但是您會錯過其他工作方式不同的其他API。

鳥哥例如有一個鏡子的視頻驅動程序,您可以安裝,讓你的屏幕更新的通知以及直接訪問視頻幀緩衝區,這是偉大的屏幕錄製或重鑄。你的代碼如何對此作出反應?

更大的問題是,簡單地掃描本地計算機不足以保護您的應用程序不被記錄。您可以通過混合硬件覆蓋和HDCP等各種技術爲您的輸出增加難度。

當然最大的問題是,沒有辦法阻止某人將相機指向顯示器。

你將結束與很多花在發展沒有太大的增加安全性的最終結果的時間......和多一點不便給最終用戶。而有人決心擊敗它只需要爲你的應用程序做一點代碼補丁,或者將手機攝像頭指向正確的方向,這是安全的再見。

對我來說似乎很愚蠢。

+0

感謝您的答覆,有沒有關於使用這些API的文檔? – user3566885

0

進程名稱可以更改;但你不能改變「主窗口標題」。 您可以在運行時考慮衆所周知的屏幕捕獲程序主窗口標題。