Text−To−Speech エンジンが
インストールされているかどうかを判断する方法を教えてください。
アプリケーション中ではLanguageID を設定すると例外が発生するので
インストールされていないことはわかっているのですが、
アプリケーションの起動前に
インストールがされているかどうかをチェックしたいのです
とりあえず一番単純にレジストリを見るとか?
インストールデータベースは HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
たかみちえさんどうもありがとうございます。
おっ、レジストリでチェックですか
このレジストリってひょっとすると
プログラムの追加と削除のレジストリなんでしょうか?
レジストリのチェックで処理できるようになりました。
どうもありがとうございました。
キャラクターのインストールのチェックはここではできませんでした!
しかたないので FileExists でシステムフォルダ下の
MSAGENT\CHARS\*****.acs をチェックしています。
これでよいでしょうか?
>とりあえず一番単純にレジストリを見るとか?
「とりあえず」?の処理方法なんですか?
もっと、よい(完全な)方法があるのでしょうか?
> 「とりあえず」?の処理方法なんですか?
本来のやり方は知らないってだけです。
でもたしか、Agent関係のAPIか何かに、存在チェックとか、キャラクターチェックとか聞いたことあるような気がしますが…。
たかみちえさん
大変お世話になっております。
あと、もうひとつ知りたいのですが、
Microsoft SAPI 4.0a runtime binaries の存在をチェックするのは
どうすればよいのでしょうか?
お手数をおかけして申しわけありませんけど
お願いします。
私の作ったアプリケーションを動作させるためには
ユーザーのパソコンにも
Microsoft Agent core components のインストールが
必要なのでしょうか?
と、いうのは、メーカーもOSも違うパソコンなんですけど
今まで何台か試してみました。
キャラクターと、言語エンジンの2つはインストールしていました。
そこで、前回の質問で、この2つのインストールのチェックが
できるようになりました。
何台かやっている中で、いままでSAPI無しで動作していたのですが、
1台だけ、SAPI をインストールしないと動作しないものが見つかりました。
そこで、一つ前の質問にいたったわけです。
そこで、もうひとつインストールしていない
Microsoft Agent core components
ですが、これもインストールしないと動作しない場合が
あるのでしょうか?
コンポーネントだから、実行ファイルに組み込まれていると
考えているのですが、違うのでしょうか?
質問ばかりですみませんが、よろしくお願いします。
わかるところだけ。
> コンポーネントだから、実行ファイルに組み込まれていると
> 考えているのですが、違うのでしょうか?
確かにコンポーネントは実行ファイルに組み込めます(パッケージを使用する場合は別)。
そのコンポーネントが取り込んでいるのはインターフェース部分だけで、本体部分(ActiveX)は取り込みません。
これは、DLLのAPIを利用してもそのDLLはEXEに組み込まれないのと同様です。
# VBで生成したEXEをVBランタイムの無い環境にコピーしても実行できないのも同じ
Microsoft Agent core componentsと同等のソースを用意して、ActiveXでなくそのソースを利用するようにできれば、実行ファイルに組み込めます。
Agentの場合では非現実的ですが、単純なActiveXならばこの方法が楽です。
ツイート | ![]() |