OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

画像の取り込みなんですが

  • すぐに回答を!
  • 質問No.185224
  • 閲覧数174
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 75% (6/8)

VB最近始めたばかりです。
起動してあるウインドウの全体をjpgなどの画像として取込み、それを保存したいのですが、どうやればいいのかさっぱりわかりません。 
わかりずらい質問の仕方かもしれませんが、もしわかる方がいれば教えてください。お願いします
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

サンプルです。

クリップボードを使用する方法のサンプルが手元にあったので、それを載せておきます。
クリップボードを使用しない方法は手元にないのですが、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
補足コメント
tetudamon

お礼率 75% (6/8)

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

お礼率 75% (6/8)

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

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 59% (729/1235)

ずばりなサンプルを見つけました。 何語?? ...続きを読む
ずばりなサンプルを見つけました。
何語??
補足コメント
tetudamon

お礼率 75% (6/8)

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

お礼率 75% (6/8)

とても参考になっています。本当にありがとうございました
補足のほうわかりましたら教えてください。お願いします
投稿日時 - 2001-12-14 22:57:06


  • 回答No.3
レベル13

ベストアンサー率 59% (729/1235)

No.1の補足です DesktopHwnd = GetDesktopWindow() の代わりに DesktopHwnd = form1.hWnd とすれば、form1をBMPに保存できます。 ...続きを読む
No.1の補足です

DesktopHwnd = GetDesktopWindow()

の代わりに

DesktopHwnd = form1.hWnd

とすれば、form1をBMPに保存できます。
お礼コメント
tetudamon

お礼率 75% (6/8)

補足ありがとうございます。No.1だけでもとても参考になっていたのに、補足までしていただいてとても感謝感激です。ありがとうございます。
投稿日時 - 2001-12-17 18:12:51
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ