プロが教えるわが家の防犯対策術!

VB最近始めたばかりです。
起動してあるウインドウの全体をjpgなどの画像として取込み、それを保存したいのですが、どうやればいいのかさっぱりわかりません。 
わかりずらい質問の仕方かもしれませんが、もしわかる方がいれば教えてください。お願いします

A 回答 (3件)

サンプルです。



クリップボードを使用する方法のサンプルが手元にあったので、それを載せておきます。
クリップボードを使用しない方法は手元にないのですが、todo36さんの載せているサンプルをちょっとだけ改造するときますよ。

※処理の流れ
1.クリップボードにコピー(関数:fucSnapShot)
2.クリップボードの内容を取得
3.保存

※必要な物
フォーム
コマンドボタン
ピクチャボックス

Private Type tagKEYBDINPUT
  wVk         As Integer
  wScan        As Integer
  dwFlags       As Long
  time        As Long
  dwExtraInfo     As Long
  bytUnusedPadding(7) As Byte
End Type
Private Type tagINPUT
  type As Long
  ki  As tagKEYBDINPUT
End Type
Private Const INPUT_KEYBOARD = 1
Private Const VK_SNAPSHOT = &H2C
Private Const VK_LMENU = &HA4&
Private Const KEYEVENTF_KEYUP = &H2
Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As tagINPUT, ByVal cbSize As Long) As Long


Private Sub Command1_Click()
  '画面をクリップボードにコピーさせる
  Call fucSnapShot
  
  With Me
    'クリップボードから画像を得る
    .Picture1.Picture = Clipboard.GetData
    
    '画像を保存
    Call SavePicture(.Picture1.Image, "c:\test.bmp")
  End With
End Sub

Sub fucSnapShot()
  Dim inpInfomation(3)  As tagINPUT
  
  ' キー ストロークを作成
  With inpInfomation(0)
    .type = INPUT_KEYBOARD
    .ki.wVk = VK_LMENU
  End With
  With inpInfomation(1)
    .type = INPUT_KEYBOARD
    .ki.wVk = VK_SNAPSHOT
  End With
  With inpInfomation(2)
    .type = INPUT_KEYBOARD
    .ki.wVk = VK_LMENU
    .ki.dwFlags = KEYEVENTF_KEYUP
  End With
  With inpInfomation(3)
    .type = INPUT_KEYBOARD
    .ki.wVk = VK_SNAPSHOT
    .ki.dwFlags = KEYEVENTF_KEYUP
  End With
  
  ' キー ストロークを合成
  Call SendInput(3, inpInfomation(0), Len(inpInfomation(0)))
  
  'Windowsに処理を渡す(クリップボードに画像がわたる)
  DoEvents
End Sub

Private Sub Form_Load()
  With Me
    'フォームの書式設定
    .ScaleMode = vbPixels
    
    'ダミーピクチャボックスの書式設定
    With .Picture1
      .Appearance = 0
      .AutoRedraw = True
      .AutoSize = True
      .BorderStyle = 0
      .Visible = False
    End With
    
    'コマンドボタン
    .Command1.Caption = "実行"
  End With
End Sub

この回答への補足

リファレンスブックを買い調べていたのですが、探し出せないので補足です。
えっと、フォームの取り込みはわかったのですが、たとえば、インターネットエクスプローラなどのウインドウ内の画像の取り込みはどのようにしたら良いかわかりますでしょうか。わかりましたら教えてください、お願いします。

補足日時:2001/12/18 22:58
    • good
    • 0
この回答へのお礼

お礼遅くなりました、すいません。
初心者みたいなものなので、解読に時間がかかってますがとても役に立っております。サンプルプログラムまで書いていただき本当にありがとうございます。

お礼日時:2001/12/17 18:02

No.1の補足です



DesktopHwnd = GetDesktopWindow()

の代わりに

DesktopHwnd = form1.hWnd

とすれば、form1をBMPに保存できます。
    • good
    • 0
この回答へのお礼

補足ありがとうございます。No.1だけでもとても参考になっていたのに、補足までしていただいてとても感謝感激です。ありがとうございます。

お礼日時:2001/12/17 18:12

ずばりなサンプルを見つけました。


何語??

参考URL:http://www.activevb-archiv.de/vb/VBtips/VBtip007 …

この回答への補足

これは、ディスクトップ全体ですよね。これでも良いのですが、フォーム内(ウインドウ内)を画像としてとるにはどうしたら良いのかわかりますか?
それから、ずうずうしいですが日本語で書いてあるところ知っていましたら教えてください。
お願いします

補足日時:2001/12/14 22:43
    • good
    • 0
この回答へのお礼

とても参考になっています。本当にありがとうございました
補足のほうわかりましたら教えてください。お願いします

お礼日時:2001/12/14 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!