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月20日 15:51 発信者:katoutakeo
題名:RE(3):別のWindow(アプリケーション)に、キー押下の情報を送信する
Chicchiさん、こんにちは。
>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.