お世話になっております。
表記のとおり、ある処理が終了するたびに
フォームを画像として保存したいのですが、
やり方が分かりません。
.PrintFormを使うとプリンターに出力できる
みたいなんですが、プリンター出力ではなく、
画像ファイルとして保存したいのです。
ファイルの形式はなんでもいいです。
どなたか分かる方がいらっしゃいましたら
よろしくお願いします。
プリントスクリーンでクリップボードにコピーして、BMPファイルで保存してはいかがでしょう?
編集 削除手順は全くそのとおりなんですが、
プログラムの中からその作業を行うことは可能でしょうか?
方法を知ってましたら教えてください。
ちょっと手元に資料が無いんで適当な方法ですがw
SendKeys "+{PRTSC}" 'プリントスクリーンを実行
DoEvents 'いらないかも?
'画面にピクチャーボックスを貼り付けてください。
'全画面に貼り付けるのが面倒ならば何かフォームを作って、そこに貼り付け
'終了のタイミングでLoadしてください。非表示でもかまわないと思います。
'それでそのピクチャーボックスに画像(クリップボードより)を表示
PictureBox1.Image = Clipboard.GetDataObject.GetData(DataFormats.Bitmap)
あとはその画像を保存するだけです。保存の仕方はHelp参照でお願いします(^^
それと、試してません。。。
すみません、ちょっと.Netの記述が混じってるかも・・・
編集 削除APIのkeybd_eventでキーストロークをシミュレートすれば出来ます。
SendKeysでは出来ないと思います。
Private Declare Sub keybd_event Lib _
"user32.dll" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_SNAPSHOT As Long = &H2C&
Private Const KEYEVENTF_KEYUP As Long = &H2&
Private Sub Command1_Click()
Dim lScanCode As Long
lScanCode = 1 'Win9x : 0, WinNT : 1
Clipboard.Clear
Call keybd_event(VK_SNAPSHOT, lScanCode, 0, 0)
Call keybd_event(VK_SNAPSHOT, lScanCode, KEYEVENTF_KEYUP, 0)
DoEvents
Call SavePicture(Clipboard.GetData(vbCFBitmap), "C:\test.bmp")
End Sub
出来ました!!
お二人とも、有難うございました。
無事、画像として保存することが出来ました。
お世話になります。