掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Winsockでキャプチャ画像をリアルタイムに送受信するには (ID:87071)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
キャプチャ画像は、画面全体の物です。デスクトップを始め、タスクバー、ウインドウなどPrintScreenを使用したときと同じものです。 「変化したところだけ」というのは確かにいいと思いますが、やはり確実になめらかにとはいかないのではないでしょうか?何かのウインドウの位置を少し動かしただけでも画像としては大幅な変化になってしまうと思いますし。 参考までに、現在使用しているキャプチャ方法はこのような物です。 'デスクトップのウインドウハンドル取得 Private Declare Function GetDesktopWindow Lib "user32" () As Long 'ウインドウ画像のデバイスコンテキスト取得 Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long 'デバイスコンテキストの解放 Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long 'BitBlt Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _ ByVal ySrc As Long, ByVal dwRop As Long) As Long Const SRCCOPY = &HCC0020 Private Sub Command1_Click() Command1.Enabled = False 'スクリーンキャプチャ Dim hDeskTopWnd As Long Dim hDeskTopDC As Long Dim Ret As Long 'デスクトップ画像のハンドルを取得 hDeskTopWnd = GetDesktopWindow hDeskTopDC = GetDC(hDeskTopWnd) 'フォーム全体に描画 Ret = BitBlt(Form1.hDC, 0, 0, Screen.Height, Screen.Width, hDeskTopDC, 0, 0, SRCCOPY) If Ret = 0 Then MsgBox "失敗", vbCritical 'リフレッシュ Form1.Refresh 'デバイスコンテキストの解放 Ret = ReleaseDC(hDeskTopWnd, hDeskTopDC) Command1.Enabled = True End Sub Private Sub Form_Load() Form1.ScaleMode = 3 Form1.AutoRedraw = True End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.