• 締切済み

Ctrl + P のメッセージ送信

印刷ダイアログを起動させるために 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

みんなの回答

  • psychang
  • ベストアンサー率50% (2/4)
回答No.1

私は、VBAでしかやったことがありませんが、"Ctrl + P "をやる前に、"Alt + F"を送ってはどうでしょうか? 検討違いな事を言ってたらごめんなさい?

dcddx
質問者

補足

"Alt + F"とはメニューにカーソルを合わせてからということですか? 一応下記を参考に keybd_event で実現できました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1254391&rev=1 http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200402_04020031.html *************** '印刷ダイアログ起動  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

関連するQ&A