PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
21420 04/07/20 15:51:46 RE(4):別のWindow(アプリケーション)に、キー押下の情報を送信する By katoutakeo
21419 04/07/20 15:51:43 RE(3):別のWindow(アプリケーション)に、キー押下の情報を送信する By katoutakeo
21416 04/07/16 19:43:55 RE(2):別のWindow(アプリケーション)に、キー押下の情報を送信する By Chicchi
21415 04/07/16 19:37:52 RE(1):別のWindow(アプリケーション)に、キー押下の情報を送信する By Chicchi
21412 04/07/16 17:19:07 別のWindow(アプリケーション)に、キー押下の情報を送信する By katoutakeo

カテゴリ:スクリプトの記述
日付:2004年07月16日 19:37 発信者:Chicchi
題名:RE(1):別のWindow(アプリケーション)に、キー押下の情報を送信する

katoutakeoさん、こんばんは。

>起動したアプリケーションのボタンにある、
>アクセラレーターキーを直接指定して、ボタンを押す動作をさせたいのですが。

私も以前、他所様が作成したパッケージソフトのウィンドウのコマンドボタンをクリックする処理
を作成したことがあります。方法は次のとおりです。



// 1. API の FindWindow 関数で目的のウィンドウを検出。
l_win_handle = FindWindowA( 0, xxxxx )

// 2. API の GetWindow 関数の第二引数に GW_CHILD を指定し、そのウィンドウのコントロール
// をループで検索し、同じく API の GetWindowText 関数でキートップのテキストを取得、目的
// のボタンか否かを判定する。
l_ctrl_handle = GetWindow( l_win_handle, GW_CHILD )
DO UNTIL l_ctrl_handle < 1
s_ctrl_name = Space( 127 )
GetWindowTextA( l_ctrl_handle, s_ctrl_name, 127 )
IF Trim( Upper( s_ctrl_name ) ) = \"次へ(&N)\" THEN
b_found = TRUE
EXIT
END IF
l_ctrl_handle = GetWindow( l_ctrl_handle, GW_HWNDNEXT )
LOOP
IF NOT b_found THEN
RETURN
END IF

// 3. 目的のボタンが見つかったら、Send 関数で WM_LBUTTONDOWN と WM_LBUTTONUP を送信する。
Send( l_ctrl_handle, WM_LBUTTONDOWN, 0, 0 )
Send( l_ctrl_handle, WM_LBUTTONUP, 0, 0 )



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

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

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