スマホで
#module
;▼必要となるAPIや定数の定義
#uselib "user32.dll"
#func keybd_event "keybd_event" int,int,int,int
#cfunc GetSystemMetrics "GetSystemMetrics" int
#cfunc GetDesktopWindow "GetDesktopWindow"
#cfunc GetWindowDC "GetWindowDC" int
#func GetWindowRect "GetWindowRect" int,int
#func ReleaseDC "ReleaseDC" int,int
#func InvalidateRect "InvalidateRect" int,int,int
#func OpenIcon "OpenIcon" int
#uselib "gdi32.dll"
#cfunc CreateDC "CreateDCA" var,int,int,int
#func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int
#func DeleteDC "DeleteDC" int
#define KEYEVENTF_KEYUP $00000002
#define SM_CXFULLSCREEN $00000010
#define SM_CYFULLSCREEN $00000011
; nMode
; ----------------------------------------------------------------
; 0 : クライアント領域のみ (タスクバー領域を含めない)
; 1 : 非クライアント領域を含める (タスクバー領域を含む)
#deffunc Initcapt int prm1
nMode = prm1 : if (nMode<=0)|(nMode>1) : nMode=0
if nMode ==0{
;クライアントサイズ取得
w=GetSystemMetrics(SM_CXFULLSCREEN)
h=GetSystemMetrics(SM_CYFULLSCREEN)
;デスクトップのHDC取得
class="DISPLAY"
WDc=CreateDC(class,0,0,0) : if WDc==0 : return -1
}
if nMode ==1{
;デスクトップのハンドル取得
Deskhwnd=GetDesktopWindow()
if Deskhwnd==0 : return -1
;デスクトップのHDC取得
WDc=GetWindowDC(Deskhwnd)
if WDc==0 : return -1
;タスクバーを含めたサイズを取得
dim rc,4 : GetWindowRect Deskhwnd,varptr(rc)
w = rc(2)-rc(0) : h = rc(3)-rc(1)
}
;▼すべてのウィンドウを最小化
keybd_event 91, 0, 0, 0
keybd_event 77, 0, 0, 0
keybd_event 91, 0, KEYEVENTF_KEYUP, 0
keybd_event 77, 0, KEYEVENTF_KEYUP, 0
;▼タイミング
wait 50
;▼画面(最小化したHSP window)を復帰
OpenIcon hwnd
return
#deffunc deskcapt
;▼クライアント領域のみ
if nMode==0 {
;画面コピー
BitBlt hdc,0,0,w,h,WDc,0,0,$00CC0020
}
;▼非クライアント領域を含める
if nMode == 1{
;画面コピー
BitBlt hdc,0,0,w,h,WDc,0,0,$00CC0020
}
;▼画面更新
InvalidateRect hwnd,0,1
return 0
#deffunc ReleaseHDC onexit
if nMode == 0:DeleteDC WDc
if nMode == 1:ReleaseDC Deskhwnd,WDc
return
#global
;***** sample *****
#uselib "user32.dll"
#func SetWindowLong "SetWindowLongA" int,int,int
#cfunc GetWindowLong "GetWindowLongA" int,int
#define GWL_STYLE -16
#define overrapwin SetWindowLong hwnd,GWL_STYLE,$14CF0000
screen 0,ginfo(20),ginfo(21),2
width 640,480 : overrapwin : gsel 0,1
Initcapt 1
repeat
deskcapt
await 1
loop
これやっぱり使えませんか?
お借りしているのですがスクリプトの意味は理解できていません。
ただデスクトップがHSPウィンドウ内に表示されるというのに惹かれたのです。
これを何かに利用すると言った目的ではなく、ただスマホ版にして使えるかどうかということです。
お願いします!!