掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
デスクトップ画像を取得するには (ID:88936)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ノ<頑張る気なら、昔俺がちょと作ってみた…アレ…ぁ、ここ実家だ(orz ……w; ノ<資料が無いので、うろ覚えですが、何か書いて見ますw;; 使ったAPIはコレ。 Public Declare Function GetDesktopWindow Lib "user32" () As Long Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long Public 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 'Sample1 Public Sub BitBltTO(ByVal hDC As Long) 'スクリーン全体をBitBltしてみる Dim DeskTopWidth As Long Dim DeskTopHeight As Long Dim DeskTopWindowHandle As Long Dim DeskTopWindowDC As Long 'デスクトップ関連のを読み取る DeskTopWidth = Screen.Width \ Screen.TwipsPerPixelX DeskTopHeight = Screen.Height \ Screen.TwipsPerPixelY DeskTopWindowHandle = GetDesktopWindow() DeskTopWindowDC = GetDC(DeskTopWindowHandle) Debug.Print BitBlt(hDC, 0, 0, DeskTopWidth, DeskTopHeight, DeskTopWindowDC, 0, 0, vbSrcCopy) ReleaseDC DeskTopWindowHandle, DeskTopWindowDC End Sub BitBltTO関数で、デスクトップの画像を目的のDCにコピーできます。 で、ココからが本題。 1 デバイス独立ビットマップ情報を自分でゴリゴリする。 メモリデバイスコンテキストに関連付けられたメモリビットマップに対して、 GetDIBits()を使ってビットマップのメモリイメージを受け取ることが出来まして、 そのビットマップのメモリイメージが…そうですねぇ、「ビットマップファイルのデータ構造」と類似しています。 …つまり、オンメモリでビットマップをゴリゴリ出来ます。 ビットマップの取得のしかたは、GetDIBits()をインターネットで調べれば、 結構出てくる模様です。 後の作業は、あなたにお任せしますw; 2 (ry 他にいい方法がありそうですが、見当たりません&思いつきませんでした(or-----z 一応参考に、 http://www2j.biglobe.ne.jp/~little-g/cgi-bin/vbtheme2.cgi を"GDI+"で検索すれば、少しおいしいかも。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.