2009-09-11 60 views
2

我準備外包我們應用程序的屏幕捕獲功能,因爲它不是我們的核心業務,我花了太多時間試圖讓我們的代碼去做我需要的所有事情。我想,專家的時間。我的要求按重要性遞減順序如下。有沒有人有符合大部分或全部這些要求的商業或免費圖書館的經驗?哪些Windows(C++)屏幕捕獲庫符合我的要求?

  1. 必須在Windows XP及更高版本上運行。 (但不是Win95/98/Me。)

  2. Visual C++ 2005 compatible,其中屏幕截圖可以從我的代碼中觸發。最好是一個靜態庫,但一個DLL或COM對象是可以的。我不想掏出一個獨立的EXE,因爲有些用戶會試圖篡改我們的應用程序,我認爲有一個明顯的單獨的截圖EXE使得這很容易。

  3. 必須能夠獲取多個監視器系統的完整屏幕截圖。 (最好是Windows中「打印屏幕」鍵的方式,通過將顯示器的位圖拼接在一起,但是如果必須單獨拍攝照片並將它們自己合併,則可以接受。)

  4. 必須能夠當遠程桌面客戶端(或任何RDP客戶端或VM)處於全屏模式時正確捕獲屏幕。 (當然,它也應該在RDP處於窗口模式時工作,但只要它不通過模擬可能傳送到遠程操作系統而不是在本地處理的按鍵來操作,那應該不是問題。 )

  5. 當Windows Media Player(或任何其他媒體播放器)處於全屏模式時,必須能正確捕獲屏幕。

  6. 當遊戲(例如魔獸世界)處於全屏模式時,必須能正確捕捉屏幕。

  7. 很高興能夠捕獲幾秒鐘的用戶活動作爲視頻。

+0

我不認爲stackoverflow應該真的是一個工作的董事會。 – Chad 2009-09-28 02:33:11

+1

我不明白乍得的評論。我正在尋求關於正確編程工具的建議來完成特定的任務 - 這對我來說似乎是完美的話題。 – jeffm 2009-09-28 14:06:39

回答

0

我們辦公室的一些人使用Magick ++(ImageMagick庫)來製作截圖。我不知道所有的規格,但你可以看看它,看看它是否符合你的要求。

希望這會有所幫助。

問候,

Sebastiaan

+0

這個庫中有一個截屏功能,但從文檔中不清楚它是否有比基本功能更多的功能。如果我找不到更具體的任務,我會試一試 – jeffm 2009-09-28 14:16:26

1

我不知道你想要什麼,會做一個圖書館。

如果我不得不編寫你的需求,我可能會使用TightVNC服務器的源代碼作爲我的出發點。我認爲它有技術去做你列表上的所有東西除了......

我不確定技術上有什麼可以做某人的遠程桌面會話的屏幕截圖。想一想:使用相同的物理遠程桌面服務器可能會出現多個遠程桌面會話(csrss.exe進程)。如果你坐在機器前看着視頻監視器,你根本看不到任何事情發生。那麼你期望獲得什麼? VNC只會捕獲「真實」視頻(非遠程csrss.exe)發生的情況。

+0

。我只想看看遠程桌面客戶端顯示給用戶的是什麼,這只是全屏模式下的一個問題。 – jeffm 2009-09-27 16:52:39

+0

你是說你*已經*有一種在遠程桌面服務器上運行軟件的方式,可以記錄給定的Windows遠程桌面客戶端正在看到的內容? – 2009-09-27 18:28:27

+0

我不想在RDP服務器上運行任何東西(即使我想出於各種法律和邏輯原因也不能這樣做)。我只是尋找一些以編程方式執行「打印屏幕」鍵所做的事情,希望我的願望清單上的額外項目。 (我目前正在模擬打印屏幕按鍵,但這不可靠,並且不能在全屏模式下工作。) – jeffm 2009-09-28 14:02:25

1

我不知道這是否真的有幫助,但可用的最佳成像庫可從

www.accusoft.com和

www.leadtools.com

兩者都支持creatting截圖,雖然我不知道,如果他們能夠正確地捕捉通過圖形加速顯示的電影播放器​​輸出或從屏幕錄製電影。

+0

謝謝。我會檢查accusoft,但我與LEADTOOLS交談過,他們不支持多臺顯示器。 (我的願望清單中的一些更高的數字我可以沒有,但這是一個破產者。) – jeffm 2009-09-28 13:59:48

0

如果我是你,我會調查WindowsClippings,這是一個用C++編寫的非常成熟和可擴展的應用程序,它完全符合你的需求。它有一個API,你可以擴展到你的要求,並且相當便宜在18美元

+0

我實際上使用WindowClippings,但由於它是一個單獨的應用程序,我們必須支付許可證和分發它,我認爲我的老闆會去。 – jeffm 2009-09-28 14:04:56