dポイントプレゼントキャンペーン実施中!

印刷ダイアログを起動させるために
Ctrl + P をメッセージ送信しようとしているのですが
書きのように記述しても実現できませんでした.
ご存知の方がおりましたら、ご回答いただけませんでしょうか。


PostMessage hwindow, WM_KEYDOWN, 17, 0
PostMessage hwindow, WM_KEYDOWN, 80, 0
PostMessage hwindow, WM_KEYUP, 80, 0
PostMessage hwindow, WM_KEYUP, 17, 0

A 回答 (1件)

私は、VBAでしかやったことがありませんが、"Ctrl + P "をやる前に、"Alt + F"を送ってはどうでしょうか?



検討違いな事を言ってたらごめんなさい?

この回答への補足

"Alt + F"とはメニューにカーソルを合わせてからということですか?
一応下記を参考に keybd_event で実現できました。


http://oshiete1.goo.ne.jp/kotaeru.php3?q=1254391 …

http://homepage1.nifty.com/MADIA/vb/vb_bbs2/2004 …


***************

'印刷ダイアログ起動  Ctrl + P
SetForegroundWindow (hwindow)
keybd_event VK_CONTROL, 0, 0, 0
keybd_event VK_P, 0, 0, 0
keybd_event VK_P, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0

'印刷指示 ENTER
keybd_event VK_ENTER, 0, 0, 0
keybd_event VK_ENTER, 0, KEYEVENTF_KEYUP, 0

'終了
WaitTimer 1
Do Until IsWindowEnabled(hwindow) <> 0
WaitTimer 0.5
SetForegroundWindow (hwindow)
If IsWindow(hwindow) = 0 Then
'ウィンドウが無いときは抜ける
Exit Function
End If
Loop
WaitTimer 1
SetForegroundWindow (hwindow)
PostMessage hwindow, WM_CLOSE, 0, 0

補足日時:2005/06/02 16:51
    • good
    • 0

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