SendKeysステートメントで日本語を送るにはどうしたらいいでしょうか
どうしてもわかりませんので、よろしく御願いします
追加ですが、送ることは出来ますが、文字化けします
「日本語」とはいわゆる全角文字のことですか?
SendKeysは文字コードを合成するステートメントではありません。
キーストロークを合成するステートメントです。
クリップボード経由でSendKeys "^C" & SendKeys "^V" で送って下さい。
SendKey ってくらいだから keyコードしか送れません
日本語は key ではなく 文字 なので
SendKey で送る というのは根本的に間違っています
やりたいことを 詳しく書けば
もっと良いコメントがもらえるものと思われ
どうもありがとうございます。
したいことはファイルから一行読み込んでテキストボックスに出力するという物です。
クリップボードにコピーする方法ってわからないのですが、教えていただけませんか?
それって、SendKeys関係ないのでは?
自FormのTextBoxなら、そのまま代入すればいいですし、
自作の別アプリなら、hwnd取得してSendmessageで流し込めばいいでしょう。
自作でない別exeだと、hwndの取得に苦労するかもしれませんが・・・。
hwnd持たないこともあるので、クリップボード経由も有力な方法です。
vbからの利用法なら、Clipboardオブジェクトについて調べてみてください。
質問者の代弁になりますが
>SendKey ってくらいだから keyコードしか送れません
Private Sub Command1_Click()
Dim Mystr As String
Mystr = "あいうえお"
Text1.SetFocus
SendKeys Mystr
SendKeys "かきくけこ"
End Sub
このような事も可能です。勿論 SendKeys ステートメントの事ですから
色々と問題はありますが!
結構便利なので昔よく使っていました。(他のアプリにデータを送るのに)
>SendKeys "かきくけこ"
>
(‾□‾;)
こいつは驚きです(実験してみてびっくり)
いったいどうなってるんだろう
"か" を送るには
半角/全角 k a 半角/全角 と4回送る!?
まったくもって不明
なんか知らんが insartキーが何回か押された後が・・・
(わしのPC insert 押されると 画面が光るようにしてあるの
insert いつの間にか間違って押されててむかつくことあるから)
まずコピペの方ですが、こちらはどんな文字にも対応できました。
しかしクリップボードを使用するというのは汎用性の面でどうかと思いましたので、再びSendKeysでトライしてみたら、なんとかフォーカスをあわすことでできました。
自分はフォーカスを合わせていなかったから駄目だったのですね...
ただし英数字の場合はフォーカスを合わさなくてもOKでした。ややこしいですね。
こうやって考えていくと、日本語を表示するには色々と問題が生じてきます。hwnd取得してSendmessageをする方法についてはまだやっていませんが、またの機会に挑戦しようと思っています。
長い期間をもってレスしていただきありがとうございました。
ようやくスッキリです。
また何かあったらご教授くださいませ。では。
解決
ツイート | ![]() |