■ メニュー終了時にアプリケーションの起動を確認するには

[Visual Basic 初心者掲示板] [過去ログの一覧]


まさ 2008/02/05(火) 17:06:54
メニューからプログラム(EXE)を起動しています。
メニューを閉じるときに、メニューから起動したプログラムが
起動していないか確認をしたいのですが、どのような方法が
ありますか。
APIを使用する方法で構いません。
よろしくお願いします。

開発環境
XP Pro
VB6.0

我龍院 2008/02/05(火) 17:30:42
通常はAPIのFindWindowですね。

もげ 2008/02/05(火) 17:35:48 <常連>
あとは、


・Win32_Process クラス(WMI)

・CreateToolhelp32Snapshot
    Process32First
    Process32Next

・EnumProcesses

のいずれかで。

http://support.microsoft.com/kb/175030/ja

まさ 2008/02/06(水) 11:01:01
本日、FindWindowを試してみました。
ウィンドウタイトルを取得するために、起動したプログラムの
タイトルを取得しようと試みましたが、うまくいきません。
方法として、GetActiveWindowとGetWindowTextを使用しましたが、
起動したプログラムがアクティブと判断されず、スペースが返さ
れます。
どうすれば、ウィンドウタイトルの取得ができますか?
よろしくお願いします。

matsu 2008/02/06(水) 11:59:08
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が使えます。
起動したアプリケーションがアクティブになってしましますが。

我龍院 2008/02/06(水) 12:44:55
自分で起動してるなら、調べるWindowのウィンドウ名か、クラス名はわかりませんか。

まさか 2008/02/06(水) 16:19:28
ウィンドウのないアプリとかでは?

まさ 2008/02/07(木) 09:13:45
[[解決]]

みなさんのおかげで解決しました。
ありがとうございました。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library