PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
1054 98/03/26 20:11:06 RE(7):PB5.0.02: ウィンドウをアクティブにしたいんですが・・・ By M.M
855 98/03/13 14:45:52 RE(6):M.Mさんありがとうございます By HIDENORI
854 98/03/13 14:41:42 RE(5):あすかちゃんの父さんすいません・・・ By HIDENORI
852 98/03/26 19:55:17 RE(4):PB5.0.02: ウィンドウをアクティブにしたいんですが・・・ By M.M
851 98/03/13 14:17:31 RE(3):PB5.0.02: ウィンドウをアクティブにしたいんですが・・・ By あすかちゃんの父
845 98/03/13 13:49:04 RE(2):PB5.0.02: ウィンドウをアクティブにしたいんですが・・・ By HIDENORI
843 98/03/13 12:58:22 RE(1):PB5.0.02: ウィンドウをアクティブにしたいんですが・・・ By あすかちゃんの父
842 98/03/13 11:44:16 PB5.0.02: ウィンドウをアクティブにしたいんですが・・・ By HIDENORI

カテゴリ:旧電子会議室
日付:1998年03月26日 19:55 発信者:M.M
題名:RE(4):PB5.0.02: ウィンドウをアクティブにしたいんですが・・・

「HIDENORI」さん、こんにちは。

>>PBのアプリを「接続した時の小さい画面」の前に持ってくるのは、WinAPIを
>>コールしないといけないのではないでしょうか?(よく知らないのですが・・・・)
>APIの資料がないのでどれだかわからないですが調べてみます。

Win32APIの『SetForegroundWindow』を使用します。
このAPIで、任意のアプリケーションを、画面の最前列にもってくることができます。
PowerBuilderでの使用方法は、以下の通りです。

????????????????????????????????????????
[グローバル or ローカル外部関数に定義]

Function UnsignedLong FindWindowA
      (REF String lpszClassName,REF String lpszWindow) LIBRARY \"User32.dll\"
Function boolean SetForegroundWindow(UnsignedLong hwnd) Library \"USER32.DLL\"

????????????????????????????????????????
[Powerスクリプトの記述]

//トップウィンドウのウィンドウタイトル名から、アプリケーションのハンドルを取得
string       className,windowTitle
unsignedlong ll_hwnd

//クラス名とウィンドウタイトル名を取得
className = \"ウィンドウのクラス名\"
windowTitle = \"ウィンドウのタイトル名\"

//WindowsAPIをコールして、指定したタイトル名を持つアプリケーションを調べる
ll_hwnd = FindWindowA(className,windowTitle)
if ll_hwnd=0 then MessageBox(\"エラー\",\"指定したタイトル名を持つアプリケーションが見つかりません\")

//指定したハンドルのウィンドウを、アクティブにする
if SetForegroundWindow(ll_hwnd) then
  MessageBox(\"\",\"OK\")
else
  MessageBox(\"\",\"NG\")
end if
????????????????????????????????????????

クラス名と正確なウィンドウタイトル名は、spyなどのプログラムで調べられます。
spyはWindows SDKに添付されています。(Visual C++にも付いてるかな?)

ちなみに、
エクスプローラのクラス名       :ExploreWClass
PowerBuilderのSDIウィンドウのクラス名:FNWND350
です。

それでは、がんばって下さい。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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