スクリーンショット(T)         <TOP>


画面をキャプチャします。

keybd_event 特殊キーの状態を設定

 

「Form」をクリックすると左図のフォームが、「Desktop」をクリックすると右図のデスクトップ画面がキャプチャされます。

 

 

'================================================================
'= スクリーンショット
'=    (ScreenShot.bas)
'================================================================
#include "Windows.bi"

' 特殊キーの状態を設定
Declare Sub Api_keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As byte, ByVal bScan As byte, ByVal dwFlags&, ByVal dwExtraInfo&)

#define KEYEVENTF_KEYUP &H2             'キーを放す
#define VK_MENU &H12                    '[Menu]
#define VK_SNAPSHOT &H2C                '[Snap Shot]

'================================================================
'=
'================================================================
Declare Sub MakeScreenshot(ByVal ActiveWindow As Integer)
Sub MakeScreenshot(ByVal ActiveWindow As Integer)

    If ActiveWindow Then Api_keybd_event VK_MENU, 0, 0, 0
    Api_keybd_event VK_SNAPSHOT, 0, 0, 0
    Api_keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
    If ActiveWindow Then Api_keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
    CallEvent
End Sub

'================================================================
'= フォームをキャプチャ
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    MakeScreenshot True
End Sub

'================================================================
'= デスクトップをキャプチャ
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    MakeScreenshot False
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End