« 【講座】HSPたまひよ塾 - 第7回「もし~だったら~をしろ!」 | メイン | 【講座】HSPよく使うフレーズ 第3回 時刻を表示する »

2006年03月03日

【講座】「教えて!おにたま!!」

<姫野さんからのおたより>

スクリプトの中で自動的に、「ime」や「capslock」を、
禁止にしたと思うのですが、むづかしいでしょうか?
netでいろいろ検索してみたのですが、
なかなかわかりませんでした。

<こたえ>

「教えて!おにたま!!」へのお便りありがとうございます(^^

残念ながらHSPの命令で直接、IMEを無効にしたり有効にするということは
できません。
ですが、最後の手段としてWindowsのAPIを利用することで実現することが
可能です。
imm32.dllにある、ImmAssociateContextというAPIを呼び出すことで、
IMEの変更を抑制することができます。だいたい以下のようなスクリプト
になります。

#uselib "imm32.dll"
#func ImmAssociateContext "ImmAssociateContext" int,int

a=""
input a:objid=stat ; 入力ボックスのidを調べる
ImmAssociateContext objinfo(objid,2),0 ; objidのIME変更を禁止する

この例では、objidという変数に入っているオブジェクトIDに対して、
IMEの変更を禁止させています。参考にしてみてください。
「CapsLock」の禁止については、もっと複雑になってしまいます。
ここは考え方を変えて、大文字でも小文字でも判定するようにスクリプト
を組んでみるというのは、いかがでしょうか?

それでは、またまた。

HSPに限らず、PCのコトやプログラミング関係どんなことでもお便り待っています
よ。

(おにたま)

投稿者 usuaji : 2006年03月03日 02:02

口臭チェッカー市場