アカウント名:
パスワード:
Autohotkeyとか全く知らんけど、 Altコード [wikipedia.org]で解決するしかないかね? #4216253 [srad.jp]的解決法の方が外乱に強いので個人的には好きだけど。
Send{Raw}の{Raw}が付いてる理由は、{Raw}が無いと、パイプに入って来る{}やら記号でAltキー等のメタキーが効いちゃうとかその辺の理由。多バイト非対応なのは、Send~は内部的に仮想キーコード [microsoft.com]をSendInput [microsoft.com]で送る仕様なんだろうね。この場合、プログラムが人間の代わりにキーボード叩いているだけなので、キーボードに無い文字はそのまま送れない=多バイト不可って事になる。ただし、左Altキー+テンキー(VK_NUMPAD0~9)で文字コードを入力する事で、多バイトもIME抜きで直接入れられる。(前
時間が出来たので、サンプルコード。知らん言語で、言語リファレンスもまともに見てないのでもっと良い書き方があるとか、実際に動かしてないので動くかどうかしらんが書き換え候補張っときます。
{ SendInput {Raw}%PipeText% PipeText =}
を下記のように。 { Loop, Parse, PipeText { AscCode := Asc( %A_LoopField% ) SendInput {ASC %AscCode%} } PipeText =} スラドに空白が多いと怒られたから2タブになってます。
キーボードにある文字も展開してるので処理時間が超伸びるし、Altキーなど
試行錯誤してたが無理な気がしてきた。
{ Loop, Parse, PipeText { AscCode := Asc(A_LoopField) SendInput % AscCode } PipeText = }
としてみたが意図した出力が得られなかった。どうも
Loop, Parse, PipeText
が8バイト毎に切り出してるっぽくて「あ」が33400(0x82a0)じゃなくて130,160(0x82,0xa0)で出力される。
{ array:=StrSplit(PipeText) For index, element in array { AscCode := Asc(element) SendInput % AscCode } PipeText = }
Loop,Parseの代わりにStrSplitを使っても同じだった。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
どうしてもSendInputしたいの? (スコア:0)
Autohotkeyとか全く知らんけど、 Altコード [wikipedia.org]で解決するしかないかね?
#4216253 [srad.jp]的解決法の方が外乱に強いので個人的には好きだけど。
Send{Raw}の{Raw}が付いてる理由は、{Raw}が無いと、パイプに入って来る{}やら記号でAltキー等のメタキーが効いちゃうとかその辺の理由。
多バイト非対応なのは、Send~は内部的に仮想キーコード [microsoft.com]をSendInput [microsoft.com]で送る仕様なんだろうね。
この場合、プログラムが人間の代わりにキーボード叩いているだけなので、キーボードに無い文字はそのまま送れない=多バイト不可って事になる。
ただし、左Altキー+テンキー(VK_NUMPAD0~9)で文字コードを入力する事で、多バイトもIME抜きで直接入れられる。(前
Re: (スコア:0)
時間が出来たので、サンプルコード。
知らん言語で、言語リファレンスもまともに見てないのでもっと良い書き方があるとか、
実際に動かしてないので動くかどうかしらんが書き換え候補張っときます。
{
SendInput {Raw}%PipeText%
PipeText =
}
を下記のように。
{
Loop, Parse, PipeText
{
AscCode := Asc( %A_LoopField% )
SendInput {ASC %AscCode%}
}
PipeText =
}
スラドに空白が多いと怒られたから2タブになってます。
キーボードにある文字も展開してるので処理時間が超伸びるし、
Altキーなど
Re:どうしてもSendInputしたいの? (スコア:1)
試行錯誤してたが無理な気がしてきた。
としてみたが意図した出力が得られなかった。どうも
が8バイト毎に切り出してるっぽくて「あ」が33400(0x82a0)じゃなくて130,160(0x82,0xa0)で出力される。
Loop,Parseの代わりにStrSplitを使っても同じだった。