インストールを調べるには?


エージェントォゥ!!  2005-10-14 13:05:31  No: 18087  IP: 192.*.*.*

Text−To−Speech エンジンが
インストールされているかどうかを判断する方法を教えてください。

アプリケーション中ではLanguageID を設定すると例外が発生するので
インストールされていないことはわかっているのですが、
アプリケーションの起動前に
インストールがされているかどうかをチェックしたいのです

編集 削除
たかみちえ  URL  2005-10-14 13:19:40  No: 18088  IP: 192.*.*.*

とりあえず一番単純にレジストリを見るとか?
インストールデータベースは HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

編集 削除
エージェントォゥ!!  2005-10-14 13:58:08  No: 18089  IP: 192.*.*.*

たかみちえさんどうもありがとうございます。

おっ、レジストリでチェックですか
このレジストリってひょっとすると
プログラムの追加と削除のレジストリなんでしょうか?

レジストリのチェックで処理できるようになりました。
どうもありがとうございました。

キャラクターのインストールのチェックはここではできませんでした!
しかたないので  FileExists でシステムフォルダ下の
MSAGENT\CHARS\*****.acs をチェックしています。
これでよいでしょうか?

>とりあえず一番単純にレジストリを見るとか?
「とりあえず」?の処理方法なんですか?
もっと、よい(完全な)方法があるのでしょうか?

編集 削除
たかみちえ  URL  2005-10-14 19:57:32  No: 18090  IP: 192.*.*.*

> 「とりあえず」?の処理方法なんですか?
  本来のやり方は知らないってだけです。
でもたしか、Agent関係のAPIか何かに、存在チェックとか、キャラクターチェックとか聞いたことあるような気がしますが…。

編集 削除
エージェントォゥ!!  2005-10-14 22:27:21  No: 18091  IP: 192.*.*.*

たかみちえさん
大変お世話になっております。
あと、もうひとつ知りたいのですが、

Microsoft SAPI 4.0a runtime binaries の存在をチェックするのは
どうすればよいのでしょうか?
お手数をおかけして申しわけありませんけど
お願いします。

編集 削除
エージェントォゥ!!  2005-10-14 22:43:08  No: 18092  IP: 192.*.*.*

私の作ったアプリケーションを動作させるためには
ユーザーのパソコンにも

Microsoft Agent core components のインストールが
必要なのでしょうか?

と、いうのは、メーカーもOSも違うパソコンなんですけど
今まで何台か試してみました。

キャラクターと、言語エンジンの2つはインストールしていました。
そこで、前回の質問で、この2つのインストールのチェックが
できるようになりました。

何台かやっている中で、いままでSAPI無しで動作していたのですが、
1台だけ、SAPI をインストールしないと動作しないものが見つかりました。
そこで、一つ前の質問にいたったわけです。

そこで、もうひとつインストールしていない
Microsoft Agent core components
ですが、これもインストールしないと動作しない場合が
あるのでしょうか?
コンポーネントだから、実行ファイルに組み込まれていると
考えているのですが、違うのでしょうか?
質問ばかりですみませんが、よろしくお願いします。

編集 削除
にしの  2005-10-15 02:20:29  No: 18093  IP: 192.*.*.*

わかるところだけ。
> コンポーネントだから、実行ファイルに組み込まれていると
> 考えているのですが、違うのでしょうか?
確かにコンポーネントは実行ファイルに組み込めます(パッケージを使用する場合は別)。
そのコンポーネントが取り込んでいるのはインターフェース部分だけで、本体部分(ActiveX)は取り込みません。
これは、DLLのAPIを利用してもそのDLLはEXEに組み込まれないのと同様です。
# VBで生成したEXEをVBランタイムの無い環境にコピーしても実行できないのも同じ

Microsoft Agent core componentsと同等のソースを用意して、ActiveXでなくそのソースを利用するようにできれば、実行ファイルに組み込めます。
Agentの場合では非現実的ですが、単純なActiveXならばこの方法が楽です。

編集 削除