HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1210
前名IE画面の画像保存 だが消えて真白2解決


前名

リンク

2014/12/10(Wed) 18:53:51|NO.66385

色々なソースから考えたけど、最後の詰め?ができません。
助けてください。
gcopy で簡単だとたかをくくってました!
そんなわけで調べて出来たのが以下。
最後まで行ったと思いきや、BMP画像は真っ白。何が原因でしょうか?
ヒントだけでも結構です。
関係あるのかな?>http://do-more51.cocolog-nifty.com/hawo/2010/01/ie-d8a9.html

#include "user32.as"
#uselib "gdi32.dll"
#func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int
#define NULL 0
#define SRCCOPY 0x00CC0020
#define CAPTUREBLT 0x40000000

//screen 0, 150, 50 : gsel 0;, -1
url="https://www.google.co.jp/"
docW=800: docH=600
screen 0,docW,docH
axobj ie, "Shell.Explorer.2",docW,docH//IEコンポ作成

;参考 デスクトップ画面のデバイスコンテキスト取得
//hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL)
hw=objinfo_hwnd(stat)
GetDC hw
dc=stat

IE("Silent") = 1
ie->"Navigate" url
repeat: wait 10:if( ie("Busy") == 0 ):break:loop

wait 1000 ;以下を実行するとエラーが出るので、その代わりに
/* XYサイズを取得するためだったが、止めてサイズ800*600固定にした
pDoc = ie("Document")
repeat
wait 10
if( pDoc("readyState") == "complete" ):break
loop
*/

;参考 取得したサイズを元にバッファ画面を作成
buffer 2, docW,docH; screen に変えて以下コピーは確認>消える
//GetForegroundWindow
//hwndActive = stat
wait 50
GetDC hwnd
hdc2 = stat;ディバイスコンテキストのハンドル取得(hdc)

; デスクトップ画面の画像をコピー
//BitBlt hdc, 0, 0, sx, sy, hdcScreen, 0, 0, SRCCOPY | CAPTUREBLT
BitBlt hdc2, 0, 0, docW,docH, dc, 0, 0, CAPTUREBLT


; ビットマップファイルとして保存
gsel 2, 1 : dialog "bmp", 17
if stat {
gsel 2 : bmpsave refstr
}
; デバイスコンテキスト削除
//DeleteDC hdcScreen
ReleaseDC hw,dc
ReleaseDC hwnd,hdc2

end



この記事に返信する


前名

リンク

2014/12/10(Wed) 18:58:21|NO.66386

すいません。
BitBlt hdc2, 0, 0, docW,docH, dc, 0, 0, CAPTUREBLT
ではなく、SRCCOPY に記載間違いです。色々テストしてたもので、残ったままでした;



前名

リンク

2014/12/10(Wed) 21:29:12|NO.66397

hspext.as をインクルードして
clipsetg で画像全体をクリップボードに貼り付けることが出来ましたので
こちらから利用したいと思います。
ご心配おかけいたしましたが、これで自己解決とします。



ONION software Copyright 1997-2023(c) All rights reserved.