環境:VB6.0
常駐アプリを作っているのですが、そのアプリ起動時にホットキーを設定し
テキストエディタなどを編集中にホットキーが押された場合、ある文字列を
テキストエディタのカーソル位置に貼り付けたいのですが、どのような方法がありますか?
(テキストエディタに限らず、文字入力可能なところにカーソルがある場合に行いたいと思っています。)
ホットキーはRegisterHotKeyで設定しています。
よろしくお願いします。
送り先WindowがActive状態なら、クリップボード経由でペーストするなり、
SendKeysで文字列を流し込むなり、いろいろあるのでは?
>Sayさん
回答有難うございます。
>クリップボード経由でペースト
このアプリはホットキーにCtrl+Vを登録しているのですが、貼り付けは行うことが出来るのでしょうか?
>SendKeysで
ホットキーが押された時の処理にSendKeysを入れるとホットキーで押されているキーも有効となってしまう気がするのですが。。
>このアプリはホットキーにCtrl+Vを登録しているのですが、貼り付けは行うことが出来るのでしょうか?
Shift + Ins でも貼り付けできますよ。
>あんさん
回答有難うございます。
keybd_eventを使用して実現することが出来ました。有難うございました。
参考までに---
Public Sub EditClipboard()
Dim strBuff as String
strBuff = Clipboard.GetText(vbCFText)
※クリップボード内容編集処理
Clipboard.Clear
Clipboard.SetText strBuff, vbCFText
Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) 'Ctrl を離した状態にする
Call keybd_event(Asc("V"), 0, KEYEVENTF_KEYUP, 0) '「V」 を離した状態にする
Call keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0) 'Shift を押した状態にする
Call keybd_event(VK_INSERT, 0, KEYEVENTF_EXTENDEDKEY Or 0, 0) 'Insert を押した状態にする
Call keybd_event(VK_INSERT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0) 'Insert を離した状態にする
Call keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0) 'Shift を離した状態にする
Call keybd_event(VK_CONTROL, 0, 0, 0)
End Sub
| ツイート |
|