別プログラムが起動中かを確認する方法


KKK  2005-10-25 19:57:56  No: 126817

別プログラムが起動中かを確認する方法はありますか?

別プログラムのタイトルは変わるのでFindWindowではだめです。


:-<  2005-10-25 20:20:33  No: 126818

開発環境は?


KKK  2005-10-25 20:36:38  No: 126819

VB6.0です。


030  2005-10-25 20:50:40  No: 126820

プロセスを列挙してイメージ名で判断してはどうですか?


KKK  2005-10-25 20:52:48  No: 126821

>プロセスを列挙してイメージ名で判断してはどうですか?
EnumWindowを使うのですか?
EnumWindowはコールバック関数を書く必要があるので・・・
これ以外に方法はありませんか?


030  2005-10-25 20:57:05  No: 126822

サンプル
http://www.vbvbvb.com/jp/gtips/1101/gCreateToolhelp32SnapshotTh32csSnapprocess.html


KKK  2005-10-25 21:02:30  No: 126823

このサンプルもめんどくさいですね。
これだとEnumWindowでやったほうがいいかな。
簡単にできる方法はないでしょうか?


魔界の仮面弁士  2005-10-25 21:17:40  No: 126824

手軽な方法を求めるなら、Win32_Process クラスを使うのが良いかも。
これなら VB6 どころか、VBScript でも通用しますし。


:-(  2005-10-25 21:22:24  No: 126825

お礼も述べず、いきなり面倒くさいと言い
簡単にできる方法を要求するなら

あなたが簡単と思う基準を書き込んでくださいな。


K.J.K.  2005-10-25 22:38:56  No: 126826

# ハンドル名でKKKを使うのはかなり問題があるかと。
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%BC%E3%83%BB%E3%82%AF%E3%83%A9%E3%83%83%E3%82%AF%E3%82%B9%E3%83%BB%E3%82%AF%E3%83%A9%E3%83%B3

## プログラミング関連で「ハンドル名」と書くのは、他にも「ハンドル」
## がいろいろあるためです。

Windowの列挙とProcessの列挙とを区別しているのでしょうか?
そもそも特定のWindow(のハンドル)を取得したいのでしょうか?
タイトルが変わる、と言っていますが、ウィンドウのクラス名
も変わるのでしょうか?


KKK2  2005-10-25 22:57:00  No: 126827

>そもそも特定のWindow(のハンドル)を取得したいのでしょうか?
はいそうです。

>タイトルが変わる、と言っていますが、ウィンドウのクラス名
>も変わるのでしょうか?
ウィンドウのクラス名は変わらないですが、VBアプリです。
ウィンドウのクラス名とはVBアプリでは「ThunderRT6FormDC」ですよね?


030  2005-10-25 23:15:26  No: 126828

>>そもそも特定のWindow(のハンドル)を取得したいのでしょうか?
>はいそうです。
別プログラム(プロセス)が起動中かを確認したいんじゃないのですか?
もう少しやりたいことを整理してみては?
回答は変わりませんが。


KKK2  2005-10-26 02:34:28  No: 126829

>別プログラム(プロセス)が起動中かを確認したいんじゃないのですか?
起動してるかわかったってことはウィンドウハンドルもとれるでしょ。


030  2005-10-26 02:42:02  No: 126830

>起動してるかわかったってことはウィンドウハンドルもとれるでしょ。
回答になってませんね。


ひろ  2005-10-26 02:45:23  No: 126831

結局のところ起動中か確認する目的は何ですか?


KKK2  2005-10-26 03:26:24  No: 126832

>>030
わからなければ回答しないでください。

>結局のところ起動中か確認する目的は何ですか?
起動しているかを監視して、起動していなかったら自アプリを終了させたいのです。


名無し  2005-10-26 03:29:38  No: 126833

みんなー。回答しなくてもいいってさー。

終了


ガッ  2005-10-26 03:31:21  No: 126834

> 起動しているかを監視して、起動していなかったら自アプリを終了させたいのです。
これまでの回答で十分に対応可能だと思われるが…?


ん〜  2005-10-26 03:53:50  No: 126835

これまでの回答で十分に対応可能だと思われるが…?
なぜ、ここまでの回答が付いて、出来ないのかがわからない。
ハンドル名と同じくカルトな方法でやりたいのかなぁ〜。


Dental  2005-10-26 04:38:34  No: 126836

> 起動しているかを監視して、起動していなかったら自アプリを終了させたいのです。

それで結局のところ、「プロセスの存在確認」ではなく、
「ウィンドウの存在確認」を行おうとしている理由は何故です?

そのあたりの背景情報が提示されない事には、これ以上の
具体的な回答は望むべくもないかと。

そもそも、今までの質問内容を見る限りでは、Window まで特定せずとも、
Process の存在チェックだけで十分なように思えるんですが。
プロセスのチェック程度なら、先に出た WMI のクラスを使えば、
API すら使わず、ほぼ 1 行で判定する事ができるというのに。

大体、どうしても Window の識別が必要なのだとしても、その Window を特定するための
情報は、ほとんど提示されてませんよね。せいぜい「VB6 製」という程度で。

その割には、FindWindow不可 / AddressOf不可 / スナップショットは面倒と、
制限ばかり増やして、肝心な情報が出てきてないようで。
そんな状況で、より「簡単にできる方法」ばかりを求めても、そりゃ無茶でしょうよ。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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