2011-10-29 104 views
0

我有一個問題,如何檢測屏幕上的變化?它的位置是沒有必要的,但有可能獲得它的位置,這將是有益的。我在互聯網上搜索它,但沒有找到任何合適的答案。現在,我正在用C#編寫一個程序,並且必須檢測屏幕上的更改。我試圖每秒捕捉四個屏幕截圖並進行比較。這種方法很有效,但對PC的性能影響很大。如何檢測屏幕上的變化?

我認爲使用C或彙編語言(x86)很容易,因爲在彙編中我們可以直接訪問視頻內存。

在C#中可以做到嗎?

代碼示例將不勝感激。

項目:檢測全屏幕相機監控軟件的任何變化。

+3

我很確定訪問視頻內存不像以前那樣容易,因爲現在更復雜的圖形卡很常見。 – icktoofay

+0

我可以問你想完成什麼?製作一個能夠對屏幕上的每一個變化(即使只是一個像素)都做出反應的程序似乎並不正確。你可能有不同的路線來完成你的任務 –

+0

你在尋找某種運動檢測代碼 –

回答

1

,你真正尋找只爲你看到你的顯示器上有什麼簡單的區別?我懷疑會做這項工作。 對於來自凸輪輸入的運動檢測,您可以看看CodeProject上的Motion Detection Algorithms文章。

1

除了拍攝畫面捕捉和他們在一些時段比較(這將導致性能問題), 我能想到的唯一的辦法就是掛接到系統事件中,「重繪」類型的事件。

您將需要選擇與您的程序掛鉤的事件。

這CodeProject上的教程可以幫助 - http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx