別プロセスのウィンドウを表示・非表示 <TOP>
FindWindow
クラス名またはキャプションを与えてウィンドウのハンドルを取得
ShowWindowAsync
別のスレッドによって作成されたウィンドウの表示状態を設定
メモ帳を起動し、ウィンドウの表示・非表示を設定します。
'================================================================ '= 別プロセスのウィンドウを表示・非表示 '= (ShowWindowAsync.bas) '================================================================ #include "Windows.bi" ' クラス名またはキャプションを与えてウィンドウのハンドルを取得 Declare Function Api_FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$) ' 別のスレッドによって作成されたウィンドウの表示状態を設定 Declare Function Api_ShowWindowAsync& Lib "user32" Alias "ShowWindowAsync" (ByVal hWnd&, ByVal nCmdShow&) #define SW_HIDE 0 '指定のウィンドウを非表示にし他のウィンドウをアクティブ化 #define SW_SHOW 5 'ウィンドウをアクティブ化し現在の位置とサイズで表示 Var Shared Combo1 As Object Var Shared Button1 As Object Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Combo1.AddString "表示" Combo1.AddString "非表示" End Sub '================================================================ '= '================================================================ Declare Sub Combo1_Change edecl () Sub Combo1_Change() Var ClassName As String Var WinHandle As Long Var sw As Long Var Ret As Long 'クラス名でウィンドウハンドルを取得 ClassName = "Notepad" WinHandle = Api_FindWindow(ClassName, ByVal 0) 'ウィンドウハンドルを取得できたときは If WinHandle <> 0 Then If Combo1.GetCursel <> 0 Then sw = SW_HIDE Else sw = SW_SHOW 'ウィンドウの表示状態を設定 Ret = Api_ShowWindowAsync(WinHandle, sw) End If End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() 'コマンドボタンを無効に設定 Button1.EnableWindow 0 'メモ帳を起動 Shell "Notepad.exe", , 5 End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End