PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
18946 03/03/01 18:33:00 RE(1):PB5.0.02: SetKeyboardStateについて By Chicchi
18945 03/03/01 16:46:24 PB5.0.02: SetKeyboardStateについて By Chicchi

カテゴリ:PowerBuilderの開発環境
日付:2003年03月01日 16:46 発信者:Chicchi
題名:PB5.0.02: SetKeyboardStateについて

いつもお世話になります。
PBで自作のソフトキーボードを作るべく、文字を表したボタンをクリックされると
Win32APIのkeybd_event関数を実行するウィンドウを作成していますが、Shiftキー
と同時に押さなければならない文字の場合、GetKeyboardState関数と
SetKeyboardState関数を組み合わせてもうまく動作しません。

【\"を\"の場合】
long l_rc1, l_rc2
char KeyState[256]
constant long VK_0 = 48
constant long KEYEVENTF_EXTENDEDKEY = 1
constant long KEYEVENTF_EXTENDEDKEY_KEYUP = 3

// ターゲットコントロールにフォーカスを設定
sle_1.SetFocus( )
// Shiftキーを押された状態に変更
l_rc1 = GetKeyboardState( KeyState )
KeyState[16] = Char(1)
l_rc2 = SetKeyboardState( KeyState )
// \"わ\"のキーのキーストロークを合成(かな入力モード)
keybd_event( VK_0, 0, KEYEVENTF_EXTENDEDKEY, 0 )
keybd_event( VK_0, 0, KEYEVENTF_EXTENDEDKEY_KEYUP, 0 )

これを実行すると、sle_1には\"を\"ではなく\"わ\"が追加されてしまいます。
GetKeyboardState・SetKeyboardStateとも戻り値は0以外の数値なので、エラーでは
ないと思うのですが、正しい使用方法をご存知の方はおられますでしょうか?


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS Oracle SQL*Net 2.3
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.