[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
| |
バグ報告
23
:
名無しさん
:2025/06/24(火) 22:01:41
HSP3どころか2を使ってたんですね
3以降しか使ったこと無いので適当に調べつつ2.61で試してみました
onkeyにgosubが使えなかったりWin32APIを使うのに予め使う全ての関数を準備できずに都度都度指定しないといけなかったり
とてつもなく面倒で長くなったのですが、こちらでは2.61でも実行できました
注意点として、
・hwndの内容(最初の段落)はアクティブウィンドウのものを取得してる関係で、
他のウィンドウがアクティブ状態だと正しくIMEの状態を検知できないので、
起動後直ぐとかgselでウィンドウをアクティブした後に実行することを推奨します
・hwndとHIMC(最初と2段落目)は一度取得すればいいので何度も取得する必要はないですが、
screen命令を実行したりすると取得したhwndは使えなくなるので再度取得の必要が出ます
;以下2.61用コード 一応動作は確認済み
;アクティブウィンドウ(HSPのウィンドウ)のハンドルを記録しておく
;ウィンドウが新しくなるとハンドルが変わるので、
;screen命令を実行したりする場合はその都度これ(この下6行分)も一緒に実行する必要ありのはず
ll_dll "user32.dll" ;DLL読み込み
ll_type "v" ;引数無し
ll_func "GetActiveWindow" ;アクティブウィンドウ取得用関数を指定
ll_call ;関数実行
ll_ret hwnd ;戻り値を変数hwndに入れる
ll_free ;DLL開放(しなくてもいいらしいけど、もうuser32.dllに用はないので開放する)
mes hwnd ;確認用に表示してみる
;入力コンテキストへのハンドル取得
ll_dll "imm32.dll" ;DLL読み込み
ll_func "ImmGetContext" ;入力〜のハンドル取得用
ll_type "N" ;引数は数値
ll_n hwnd ;アクティブウィンドウのハンドルを引数に指定
ll_call ;関数実行
ll_ret HIMC ;戻り値を変数HIMCに入れる
onkey,*a
stop
*a
cls
ll_func "ImmGetOpenStatus" ;IMEの状態取得用関数
ll_type "N" ;引数は数値
ll_n HIMC ;引数に入力〜のハンドル指定
ll_call ;関数実行
ll_ret IME_Now ;戻り値を変数IME_Nowに入れる
mes IME_Now ;1なら有効0なら無効
stop
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板