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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.