| 【】Top
 
 【】VB.NET
 【】VB6.0
 
 【】メールマガジンの購読
 【】メールマガジンの解除
 
 
 
 
 
 
 【】会社概要
 
 【】お問い合わせ
 
 
 姉妹サイト「バーチャルコネクション!」はこちらです。
 
 姉妹サイト「七福神のメールでビンゴ!」はこちらです。
 
 
   
 ●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。
 
 
 | 
 
               
                |  |  |  |   
                |  | 
   
 
   
    | 
  
        http://anetm.com/dev/d.cgi?SC=DTDTL&o=Ome 
        
  
                 
               
                 
                  | 画面のハードコピーをとる |   
                  | 
 |   
                  | 【注意書き】 ●VB.NET を使っているものとします。
 ●動作環境は、Windows XX を使用しているとします。
 
 ●API を使用しています。(SendKeysクラスを使用していません)
 
 .NET でも、画面のハードコピーをとることが可能です。
 
 この機能を使えば、簡単に、画面をキャプチャーし、
 別の端末へ送り届けるなどの際などに活用できます。
 
 
 フォームに次の様なコードを記述します
 
 
 -----------VB.NETコーディングここから-------------------
 
 
 1.フォームに、テキストボックスコントロール、
 ボタンコントロール
 を配置します。
 下記は、デフォルトのオブジェクトの名前と配置を示しています。
 
 ┏━━━━━┓┏━━━━━┓
 ┃Button1   ┃┃Button2   ┃
 ┗━━━━━┛┗━━━━━┛
 ┏━━━━━━━━━━━━┓
 ┃PictureBox1             ┃
 ┃                        ┃
 ┃                        ┃
 ┗━━━━━━━━━━━━┛
 
 
 2.ボタンコントロールの
 Button1 text プロパティに「画面全体」と記述します。
 Button1 text プロパティに「ウィンドウ」と記述します。
 
 ※説明用のためです。必須ではありません。
 
 ┏━━━━━┓┏━━━━━┓
 ┃画面全体  ┃┃ウィンドウ┃
 ┗━━━━━┛┗━━━━━┛
 ┏━━━━━━━━━━━━┓
 ┃PictureBox1             ┃
 ┃                        ┃
 ┃                        ┃
 ┗━━━━━━━━━━━━┛
 
 
 
 
 3.フォームをダブルクリックして、
 フォームロードイベントのコード編集を開始して、
 次のコードを記述します。
 
 
 Public Declare Sub keybd_event Lib "user32.dll" _
 (ByVal bVk As Byte, _
 ByVal bScan As Byte, _
 ByVal dwFlags As Long, _
 ByVal dwExtraInfo As Long)
 
 ' キーコード定数
 Public Const VK_LMENU = &HA4
 Public Const VK_SNAPSHOT = &H2C
 
 ' キーボードイベントフラグ定数
 Public Const KEYEVENTF_EXTENDEDKEY = &H1
 Public Const KEYEVENTF_KEYUP = &H2
 
 Private Sub Button1_Click(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Button1.Click
 
 PictureBox1.Image = Get_Hardimg(1)
 PictureBox1.Refresh()
 
 End Sub
 
 Private Sub Button2_Click(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Button2.Click
 
 PictureBox1.Image = Get_Hardimg(0)
 PictureBox1.Refresh()
 
 End Sub
 
 Private Function Get_Hardimg(ByVal dmode As Integer) As Object
 
 
 
 Dim data As IDataObject = Clipboard.GetDataObject()
 
 
 If dmode = 1 Then
 '画面
 
 'SendKeys.Send("{PRTSC}")
 
 'キーを押す
 keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0)
 Application.DoEvents()
 'キーを離す
 keybd_event(VK_SNAPSHOT, 0, _
 KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
 Else
 'ウィンドウ
 
 'SendKeys.Send("%{PRTSC}")
 
 'キーを押す
 keybd_event(VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0)
 keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0)
 Application.DoEvents()
 'キーを離す
 keybd_event(VK_LMENU, 0, _
 KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
 keybd_event(VK_SNAPSHOT, 0, _
 KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
 End If
 
 
 Application.DoEvents()
 
 Get_Hardimg = data.GetData(DataFormats.Bitmap)
 
 End Function
 
 Private Sub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles MyBase.Load
 
 Dim recScr As Rectangle
 'スクリーン構造体
 recScr = Screen.PrimaryScreen.Bounds
 PictureBox1.Width = recScr.Width
 PictureBox1.Height = recScr.Height
 
 End Sub
 
 4.ビルドして実行します。
 
 5.フォームに表示された
 ボタン「画面全体」を押します。
 
 6.フォームに表示された
 ピクチャボックスに、スクリーンに表示中の
 画面全体のイメージが
 表示されます。
 ※フォームをリサイズしていただくと、広く画面を見れます。
 
 7.フォームに表示された
 ボタン「ウィンドウ」を押します。
 
 8.フォームに表示された
 ピクチャボックスに、スクリーンに表示中の
 自フォーム画面のイメージが
 表示されます。
 ※フォームをリサイズしていただくと、広く画面を見れます。
 
 
 
 -----------VB.NETコーディングここまで-------------------
 
 Alt → %
 PrintScreen → {PRTSC}
 
 'SendKeys.Send("{PRTSC}")
 'SendKeys.Send("%{PRTSC}")
 
 本サンプルでは
 SendKyes クラスを使用せずに、あえてAPIを使用しています。
 
 
 
 |  
  
             
   
 Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。  |  |  |   
                |  |  |  |  |