自作アプリケーションがインストールされているかを知るには?

解決


やまだ  2014-02-18 01:08:23  No: 46051

こんにちは。
開発環境は、delphiXE3 enterprise(update2適用)、win7(sp1)です。

VBをやっていたとき、excelとかインストールされているかどうか知るにはcreateobject("excel.application")を実行してインスタンスが作成されるかどうか見て判断していました。

それは、excelがactivex.exeで作られているから、インスタンスが作成されるものだと思っていました。

今回自作アプリケーションがインストールされているかどうかを知りたいと思っています。

けど、自作アプリケーションは通常のexeです。

createoleobjectを使ってだと思うんですが、どうすれば良いのか分かりません。

どなたか教えていただけないでしょうか。

よろしくお願いします。


igy  2014-02-18 01:14:25  No: 46052

インストーラでインストールするときに、導入フォルダ等の情報をレジストリに書き込む
とか、
(導入フォルダが固定なら)導入フォルダに実行ファイルが存在するか
とか、では、ダメですか?


やまだ  2014-02-18 01:39:11  No: 46053

教えていただいたのですが、ある方法を思いつき解決しました。

findwindowを使うやり方です。

戻り値が0ならインストールされていないと判断しました。
もちろんfindwindowの前にapplication.processmessagesを書いています。

お騒がせしました。

ありがとうございました。


  2014-02-18 09:52:59  No: 46054

これはイラッときたw


tor  2014-02-18 18:46:37  No: 46055

ニラだと「インストールされているかどうか」ではなく、せいぜい自アプリが今実行中かどうかしかわからないのでは……
(それもかなり確実性低いと思いますが)
具体的にどうやっているのかわかりませんが、本当にそれで解決でいいのかナー?と心配になる内容ではありますね。

推測ですが、仮にモナなりテミなりして
実際にアプリケーションのウィンドウが出てくるかどうかで判断しようとしているんだとしたら
いや、そこは関数の返り値見ましょうよと言いたいです。


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

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






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