acrobat readerの自動操作をVB6で作っていますが
{V}などのキー入力は反応するのですが
CTRL+Aがどうしても反応しません。教えて下さいお願いします。
記述
sendkeys {^A}
sendkeys {^(A)}
いずれも失敗。
ヘルプの使用例を見ると書いてありますが、
中括弧{}の外に出します。
[VB6.0]
SendKeys "^{A}", True
SendKeys "^{A}", True も失敗しました。
通常ならこれでいけるのでしょうが
acrobat reader7.0は反応しないようです。
ほかに直接キーを押すような命令はないでしょうか
よろしくお願いします。
[VB6.0]
SendKeys "{V}", True
SendKeys "%{E}", True
SendKeys "^{A}", True
ではどうですか?
特攻隊長まるるう様 何度も投稿頂きありがとうございます。
やはり
SendKeys "{V}", True
SendKeys "%{E}", True
SendKeys "^{A}", True
でも無理です。ほかのアプリならいけるのですが。
> ほかのアプリならいけるのですが。
つまりVB側の問題ではなく、Acrobat Reader 側の
問題である可能性が高いということですね?
…それだと
> ほかに直接キーを押すような命令はないでしょうか
同じ結果になるのでは?と考えられます。
確認ですが、
・手作業(キーボード)で操作した場合は、期待した
とおりの動作をするんですよね?
・SendKeys "{V}"は反応する(テキスト選択ツール
になる?)のですよね?
どこまで実行できますか?
[VB6.0]
SendKeys "{V}", True 'テキスト選択ツール
SendKeys "%{E}", True '[編集]メニュー選択
SendKeys "{DOWN}", True '[全てを選択]まで下へ移動
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
' SendKeys "{ENTER}", True ’上までの動作が確認できたら
’コメントからコードに戻してください。
>acrobat reader7.0は反応しないようです。
>ほかに直接キーを押すような命令はないでしょうか
次のような方法ではどうでしょう。
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
処理:
Call keybd_event(vbKeyControl, 0, 0, 0)
Call keybd_event(vbKeyA, 0, 0, 0)
Call keybd_event(vbKeyA, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(vbKeyControl, 0, KEYEVENTF_KEYUP, 0)
ただし、acrobat reader7.0がアクティブになっていることが条件です。
VB6.0 WindiowsXP acrobat reader7.0 の環境で確認できました。
特攻隊長まるるう様、いつもご丁寧にありがとうございます。
感謝感激です。ありがとうございます。
・手作業(キーボード)で操作した場合は、期待した
とおりの動作をします。
・SendKeys "{V}"は反応します(テキスト選択ツール
になる?)、テキスト選択ツールをクリックしたのち
少しsleepをかけてCTRL+Aをしたいんです(全て選択ですね)
やはりSendkeyでは何をやっても無理なようです。
中途半端様ありがとうございます。keybd_eventでバッチリ動きました。
特攻隊長まるるう様、ご丁寧に色々とアドバイス
ありがとうございました。勉強になりました。
ツイート | ![]() |