PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
1068 98/03/27 16:12:21 RE(6):Run関数の代わりにWinExecで対処 By ryuji
1067 98/03/27 16:11:14 RE(5):WinExec() いただきました (^^) By nari
1062 98/03/27 10:35:03 RE(4):Run関数によるプログラム起動でWindowを隠せないでしょうか。 By nari
1055 98/03/26 20:20:30 RE(3):Run関数の代わりにWinExecで対処 By Taka
1053 98/03/26 19:47:09 RE(2):Win32APIでWindowを隠す By M.M
1052 98/03/26 18:50:43 RE(1):Run関数によるプログラム起動でWindowを隠せないでしょうか。 By nari
1048 98/03/26 15:21:24 Run関数によるプログラム起動でWindowを隠せないでしょうか。 By ryuji

カテゴリ:旧電子会議室
日付:1998年03月26日 19:47 発信者:M.M
題名:RE(2):Win32APIでWindowを隠す

「ryuji」さん、こんばんは。

>Run関数によりBATファイルを起動する際にDOS窓を見せない方法を考えています。
>PowerBuilderの持っている関数ではできそうにありません。
>WinAPIを使用すればできるのでしょうか。

以前にアップロードした、『SetForegroundWindow』のサンプルを少し変更して、
任意のウィンドウを最小化するサンプルを書いてみました。
『CloseWindow』というAPIを使って、ウィンドウを最小化しています。
バッチ実行時に一度画面に出ますが、このPGで最小化して下さい。

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

Function Unsignedlong FindWindowA
    REF String lpszClassName,REF String lpszWindow) Library \"USER32.dll\"
Function boolean CloseWindow(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 CloseWindow(ll_hwnd) then
  MessageBox(\"\",\"OK\")
else
  MessageBox(\"\",\"NG\")
end if
????????????????????????????????????????

ちなみに、私のマシンでは(OS:WindowsNT,Cドライブにインストール)
コマンドプロンプトのウィンドウクラス  :ConsoleWindowClass
コマンドプロンプトのウィンドウタイトル:C:\\WINNT\\System32\\CMD.exe
です。

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

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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