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(4):別の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 (記載なし)

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