PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
6824 | 99/06/16 15:58:54 | RE(7):Win32API(FindWindow)について(おまけレスのおまけ) By Taka |
6819 | 99/06/16 15:20:38 | RE(6):Win32API(FindWindow)について(おまけレス) By O.Takagi |
6737 | 99/06/14 14:10:49 | RE(5):Win32API(FindWindow)について(おまけレス) By M.M |
6731 | 99/06/14 11:17:17 | RE(4):PB5.0.04: 5.0.02から04にバージョンアップしたらAPI(FindWIndow)が変になりました。 By O.Takagi |
6729 | 99/06/14 11:12:27 | RE(3):PB5.0.04: 5.0.02から04にバージョンアップしたらAPI(FindWIndow)が変になりました。 By Taka |
6727 | 99/06/14 10:49:12 | RE(2):PB5.0.04: 5.0.02から04にバージョンアップしたらAPI(FindWIndow)が変になりました。 By O.Takagi |
6712 | 99/06/11 16:42:36 | RE(1):PB5.0.04: 5.0.02から04にバージョンアップしたらAPI(FindWIndow)が変になりました。 By M.M |
6710 | 99/06/11 16:25:22 | PB5.0.04: 5.0.02から04にバージョンアップしたらAPI(FindWIndow)が変になりました。 By O.Takagi |
カテゴリ:スクリプトの記述
日付:1999年06月14日 10:49 発信者:O.Takagi
題名:RE(2):PB5.0.04: 5.0.02から04にバージョンアップしたらAPI(FindWIndow)が変になりました。
M.Mさん、こんにちは。
>具体的に、FindWindowAの外部関数の定義と、その外部関数を呼び出しているスクリプト
>の記述がどうなっているか、教えてもらえますか。
>
>情報不足のため、現時点では何とも言えません。
こんな感じです。
今まで(5.5.02)は動いていたので、どこが悪いのかはわかりません。
//グローバル外部関数の定義
FUNCTION Boolean SetForegroundWindow(long hndl) LIBRARY \"user32.dll\"
FUNCTION long FindWindowA(ref String ap_name, ref String ap_title) LIBRARY \"user32.dll\"
FUNCTION long SendMessageA(Long hndl, Int msg, Int wp, Long lp) LIBRARY \"user32.dll\"
//インスタンス変数の定義
String i_exe = \"c:\\pb\\css\\cs_san.exe\"
Transaction tra_cont
String i_ap = \"FNWND050\"
//実際のスクリプト。
Long ret
item = Integer(This.Tag) //1.タグ値よりメッセージ値を取得 //
i_title = \"案内一覧\"
ret = FindWindowA(i_ap, i_title) //2.
If ret < 1 Then
If Run(i_exe, Normal!) <> 1 Then
MessageBox(\"ERROR\", \"実行出来ませんでした。(Run)\")
Return
End If
Else
SetForegroundWindow(ret)
End If
//3
Do While ret < 1
ret = FindWindowA(i_ap, i_title)
Loop
SendMessageA(ret, item, 0, 0)
【処理の説明】
1.”タグ値よりメッセージ値”について
これは、ユーザオブジェクトのコマンドボタンを使っています。押されたボタンによってSendする値を変えるため
に、それぞれのコマンドボタンのタグ値に値を持たせています。
2.FindWindowAについて。
Runをする際の2重起動防止のために行っています。実際、2重起動してないので、ここは動いていると思われま
す。
3.ループについて。
Runしたアプリの最初のウィンドウが開ききるまで、ここでループします。と言うのは、開ききってからメッセージ
を送信するためです。
定義の中で記述してある
String i_ap = \"FNWND050\" は、スパイ++を使って取得しました。
こんなかんじでわかるでしょうか。
よろしくお願いします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.