はじめましてchopと申します
宜しくお願いします。
いきなりですが質問です。
外部アプリケーションの二重起動防止は出来ないのでしょうか?
出来るとしたらどのような方法があるか教えて下さい。
↓にMutexを利用した方法が掲載されています。
http://hp.vector.co.jp/authors/VA000092/win32/misc.html#instance
この手の内容はよくさがせばありますので、YAHOO等で一度検索しましょう。
Mutexは自分のアプリケーションの二重起動しか出来ないと聞きましたが。
できるんですか?
起動する側は何使って(関数)外部アプリ起動しているの
発言される前に「使用上の注意」を必ずお読み下さい。
>Mutexは自分のアプリケーションの二重起動しか出来ないと聞きましたが。
>できるんですか?
起動される側で排他をとればいいですよ。
その他に
・起動する側で管理したい場合はフラグを利用する。
・起動する側で起動するアプリの数を制限する場合は、カウンタを利用する。
このような内容ではだめですか?
スミマセンでした 遅れましたが 開発環境 VC6.0 MFC です。
起動する関数はShellExecuteです>woodさん
排他を取るというのはどういう事でしょうか?
VC初心者なので良く分らないのですが・・・。
OSは Win NT4.0 です。記入忘れです。
毎度スミマセン。
http://google.yahoo.co.jp/bin/query?p=%c6%f3%bd%c5%b5%af%c6%b0%a1%a1%c7%d3%c2%
be&hc=0&hs=0
上のページの上から3番目の項目なんてどうかな?
役に立たなかったら申し訳ない。
>排他を取るというのはどういう事でしょうか?
排他はMutexやセマフォを利用して行うものです。
↓に掲載されています。
http://yougo.ascii24.com/gh/16/001652.html
ShellExecuteで別のアプリケーションを起動する時に、
前回ShellExecuteで起動したアプリケーションがまだ動いていたら
2つ目を起動しない、ということですか?
それならば単純にFindWindowで該当する別アプリケーションを探して、
有無を調べればよいでしょう。
皆さんありがとうございました。
FindWindowでウィンドウタイトルを入れてやって
ハンドルが0だったら起動するみたいな処理を入れたら
出来ました。
お世話になりました。