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

解決


まさ  2008-02-06 02:06:54  No: 138849

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

開発環境
XP Pro
VB6.0


我龍院  2008-02-06 02:30:42  No: 138850

通常はAPIのFindWindowですね。


もげ  2008-02-06 02:35:48  No: 138851

あとは、

・Win32_Process クラス(WMI)

・CreateToolhelp32Snapshot
    Process32First
    Process32Next

・EnumProcesses

のいずれかで。

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


まさ  2008-02-06 20:01:01  No: 138852

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


matsu  2008-02-06 20:59:08  No: 138853

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 21:44:55  No: 138854

自分で起動してるなら、調べるWindowのウィンドウ名か、クラス名はわかりませんか。


まさか  2008-02-07 01:19:28  No: 138855

ウィンドウのないアプリとかでは?


まさ  2008-02-07 18:13:45  No: 138856

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加