プロが教える店舗&オフィスのセキュリティ対策術

始めまして。
OSは XP Pro SP2
VB6で、顧客情報のデータ入力画面に入力画面のハードコピーをするためのボタンをつくり、ボタンを押したらクリップボードの内容をPictureBoxにコピーするようにして、その内容を印刷するようにしたいのですが2つ不具合が発生してます。
下記2つの不具合の原因、対応方法を教えて頂きたくお願いします。
 1.アクティブな画面でなく全体が印刷される。
 2.画面を起動して一人目の顧客では入力画面では印刷されず、二人目の顧客を表示した状態で入力画面の印刷ボタンを押すと、一人目の顧客の入力画面が印刷される。

下記は、クリップボードにコピーし印刷する部分のコーディングです。
Global Const VK_SNAPSHOT = &H2C
Global Const KEYEVENTF_KEYUP = &H2
keybd_event VK_SNAPSHOT, 1, 0, 0
keybd_event VK_SNAPSHOT, 1, KEYEVENTF_KEYUP , 0
RC = DoEvents()
PicBox.Picture = Clipboard.GetData()
lngHeight = PicBox.Height
lngWidth = PicBox.Width
Printer.PaintPicture PicBox, 0, 0, _
lngWidth, lngHeight

 以上 ご教授よろしくおねがいします。

A 回答 (1件)

そのコードの内容ですと Win9x系のようです


WinNT系の場合は

keybd_event VK_LMENU, &h56, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, &h79, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_LMENU, &h56, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
keybd_event VK_SNAPSHOT, &h79, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
といった具合にしないといけないようです
つまり Alt + PtrScrn を送るようにするということです

これらを実行する前に ClicpBoard.Clear を実行して
クリップボードを空にしてから実行してみましょう

---- 出展元
[SDK32]keybd_event() を使用してのスナップショットの保存方法
http://support.microsoft.com/kb/411704/ja

参考URL:http://support.microsoft.com/kb/411704/ja
    • good
    • 0

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