2004年05月31日

sapiw.dll プログラミング

今日は時間が使えたので、プログラミングをしてみた。



いままでの記事と趣が違うので、



この記事は読み飛ばしてもらってもかまわない。







最終更新日が5年前のページだが、



Windows95上での音声化ライブラリ使用記というページを見つけた。



このブログで紹介したVE2000の前身のソフトに、



Ve98というのがある。



これは、機能的にはVE2000に及ばないが、



SAPI音声さえあればWinodwsXPでも動く。



このソフトではSAPIを操作するために sapiw.dllというDLLが使われている。



他のプログラムからでも、このDLLを利用するとSAPI音声を簡単に操作することができる。



sapiw.dllの入手先は、VE2000の置いてあるVIPS(リンク切れ)のページ。







「Windows95上での音声化ライブラリ使用記」では、sapiw.dll関連で2つの記事がある。



VisualBasic4.0を利用するものと、Delphi2.0を利用するもの。



このバージョンより新しいものを両方とも持っているが、Delphiの方が好きなので、



こっちをやってみる。







ページの最後の方に、Delphiのプロジェクトファイルなどが置いてあるので、



全部ダウンロードし、コンパイルしてみる。



コンパイルエラー。



調べてみるとuses節にoleautoユニットを並べてあるが、



Delphi3以降でコンパイルする場合はこれをComobjで置き換えないといけない。



書き替えて、難なくコンパイル完了。



EXEファイルができるフォルダにsapiw.dllをコピーしておいて、実行すると、



「こんにちは」としゃべってくれた。







ほんの少し改造してみる。



implementation の次に、次の行を入れて、



uses Clipbrd;



ボタンを押したときの処理のところを次のように書き替える。



procedure TForm1.Button1Click(Sender: TObject);

begin

   if Clipboard.HasFormat(CF_TEXT) then

    SAPI_Speech(1, PChar(Clipboard.AsText) )

end;



他のところも、例えば、ボタンが”こんにちは”のままだから、適当に書き替える。



そして、コンパイル。

そうすると、「簡易クリップボードリーダー」のできあがり。



今回はできるだけ手を加えないような形で紹介したが、sapiwユニットを作って、dllの関数全部そこで宣言しておけば、以後uses節で参照するだけになるので、記述が楽になるだろう。





Delphi 6 Personalは、ここでダウンロードできる。



ただし、利用するにはボーランドのサイトで、使用者登録(無料)が必要。





今度ひまなときに、Dwlphi6以外のフリーのコンパイラを使った、誰でも試せる単純なプログラムを作って、ここで公開してみよう。




posted by takayan at 00:13 | Comment(0) | TrackBack(1) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

VE2000を改良
Excerpt: 日曜はsapiw.dllを使ったプログラミングの記事を書いたのだけど、実はあれはVE2000の改造に行き詰まって、気分転換に作ったプログラムだった。VE2000のことは、過去記事27日と28日あたり。..
Weblog: しゃべるPC
Tracked: 2008-05-11 17:45