[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Speak.exeはコンソールから起動可?



白藤です。

nnakamur wrote
>
>ぼちぼちとマニュアルやらコードとか見ています、
>中村 のりつぐ です。
>
>
>Speak.exe は標準入力からデータを読み込むとのことですが、
>と、いうことは、DOS窓から
>
> Speak < hoge
>
>とやって喋らせることが可能ということでしょうか?
>
>もし可能であるならば、読ませるファイルの
>簡単な例を教えて頂けるとありがたいのですが。
>
おすすめはできませんが可能です。
以下の例をhoge.txt に書き込んで標準入力から流すと
確かに読みます。MainFrm.cpp のOnCmdMsg() に解析部分が
あるので、ここを見るとだいたい分かるでしょう。

1文字読みの例
s
l {A}

行読みの例
s
q {わいわい}
d

s 読み上げをstopする
d 読み上げ用のキューにたまった文字列を読む
q キューに{%s} の文字をためる
l {%c} %c の文字を読む


※この方法の問題点
 Speak.exe はVC++ で言うところのWindows アプリケーションで、
コンソール・アプリケーションです。したがって、DOS窓からCtrl-D
とかを押しても終了しません。(DOS窓と無関係に動いています)

Windows NT/2000 上では、
窓は、SW_HIDEで作られている(Speak.cpp InitInstance())ので、
見えません。したがってタスクマネージャーのアプリケーションには
表示されません。プロセスの項目にのみ表示されます。
DOS窓から起動させる場合、毎回タスクマネージャーから「プロセスの
終了」ボタンを押して殺してやる必要があります。

emacspeak から呼び出した場合は、emacspeakがプロセス管理を
やってくれているので、終了時にSpeak.exeも同時に終了します。タスク
マネージャーからSpeak.exeを殺した場合も、emacspeakが必要に
応じてSpeak.exeを再起動します。(lisp読めないのでコードは確認
していませんが、動作はそうなってます)

// Name : Hideki Shirafuji
//
// mailto:shirafuji@mail.com