メニューからプログラム(EXE)を起動しています。
メニューを閉じるときに、メニューから起動したプログラムが
起動していないか確認をしたいのですが、どのような方法が
ありますか。
APIを使用する方法で構いません。
よろしくお願いします。
開発環境
XP Pro
VB6.0
通常はAPIのFindWindowですね。
あとは、
・Win32_Process クラス(WMI)
・CreateToolhelp32Snapshot
Process32First
Process32Next
・EnumProcesses
のいずれかで。
http://support.microsoft.com/kb/175030/ja
本日、FindWindowを試してみました。
ウィンドウタイトルを取得するために、起動したプログラムの
タイトルを取得しようと試みましたが、うまくいきません。
方法として、GetActiveWindowとGetWindowTextを使用しましたが、
起動したプログラムがアクティブと判断されず、スペースが返さ
れます。
どうすれば、ウィンドウタイトルの取得ができますか?
よろしくお願いします。
AppActivateを使う方法はどうでしょうか?
Private Sub Command1_Click()
Dim dblID As Double
On Error GoTo ActivateERR
dblID = Shell("NOTEPAD.EXE", vbNormalFocus)
AppActivate (dblID)
MsgBox "起動中"
Exit Sub
ActivateERR:
MsgBox "起動していません"
End Sub
Shellで起動している場合はタスク IDが使えます。
起動したアプリケーションがアクティブになってしましますが。
自分で起動してるなら、調べるWindowのウィンドウ名か、クラス名はわかりませんか。
ウィンドウのないアプリとかでは?
みなさんのおかげで解決しました。
ありがとうございました。
ツイート | ![]() |