今、コマンドボタンを使って実行するようにしているのですが、何か他の関数などを使って実行する方法はないでしょうか?
編集 削除>今、コマンドボタンを使って実行するようにしているのですが
それはコマンドボタンのクリック(Click)イベントで実行している
という事ですか?コマンドボタンには他にも GotFocus,DragDrop...
などのイベントが用意されています。同様に他のコントロール
にも様々なイベントが用意されています。自分の望むタイミングで
発生するイベントが存在するならそれを利用してみて下さい。
無いなら…自作して下さい。イベントも独自のものを定義する事が
できます。…全くランダムに実行する事もできなくは無いですが、
プログラムとしてスゴいものになりそうです。まずは自分がどういう
条件で実行したいか?具体的なタイミングを考えて下さい。
Private Sub CommandActivate_Click()
Dim ReturnCode
:
:
省略
:
End Sub
Private Sub CommandDeactivate_Click()
' 音声認識を終了します。
End Select
Dim Result As Long
Result = TOSTTSX1.Speak(txtEdit.Text)
If Result <> 0 Then
MsgBox ("読み上げエラーが発生しました。(エラーコード:" + CStr(Result) + ")")
End If
End Sub
今、このようなプログラムを作成中なのですが、CommandDeactivateクリックのとこを数秒おいてから実行したいのですが・・・どのようにしたらいいでしょう??
初心者なので参考になるかどうかはわかりませんが、
秒数が決まっているなら、Sleep関数でどうでしょうか?
[VB.NET]
Private Declare Sub Sleep Lib "kernel32" ( _
ByVal dwMilliseconds As Long)
Sleep(1000) '1秒待つ
[VB.NET]の場合、[.NET Framework クラス ライブラリ]でも
用意されてます。定義済み関数みたいな使い方ができます。
System.Threading.Thread.Sleep(1000)
オイラはサンプルでたまに使ってるんだけどね。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200409/04090099.txt
マグさん………何もAPIを使わずとも、VB.NET なら
System.Threading.Thread.Sleep で十分では?
それに、DWORD型を As Long で宣言しちゃってるし……(脱力)
Sleep関数を使ったらその間処理が行われないのではないですかね??数秒間の間も処理は行われてて、ある時間が来ると次の処理に移る方法はないですか??
編集 削除Sleep APIに対応するのは、Sleepメソッドです。>マグさん
APIの対応表が下記にあるので、参考になるかも。
http://www.microsoft.com/japan/msdn/net/general/win32map.asp
ただ、今回の質問は、.NETでは無い様にも見えますね。
(開発環境が明示されていないので、どちらにも取れますけれども)
> 数秒おいてから実行したいのですが
Timerコントロールを使って、数秒後に処理すると言う手も。
>System.Threading.Thread.Sleep(1000)
このような関数があったとは知りませんでした。
>それに、DWORD型を As Long で宣言しちゃってるし……(脱力)
それは、かなり、前にそのソースをコピー&ペーストしたソースだから
詳しくはわからないんです。
Sleep関数は一回も使っていませんし・・・
でも、動作確認はしています。
>Sleep APIに対応するのは、Sleepメソッドです。>マグさん
>APIの対応表が下記にあるので、参考になるかも。
>http://www.microsoft.com/japan/msdn/net/general/win32map.asp
ありがとうございます。
参考になりすぎました。
APIの知識はあまりありませんから(笑
ひょっとしたら、皆無に等しいというほどです。
>それは、かなり、前にそのソースをコピー&ペーストしたソースだから
>詳しくはわからないんです。
>Sleep関数は一回も使っていませんし・・・
>でも、動作確認はしています。
変数の型が違うのでちゃんと[VB.NET]用に読み替えないと、
とんでもない値が返って来たり、エラーになったり…。
http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter4/chapter4_3.asp
Timer を使ったり[VB6.0]は↓こっちのスレでいいんじゃないでしょうか?。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200410/04100015.txt
…先の展開は分かりませんが。
わかりました。
今後、宣言に気をつけます。