2013-06-22 56 views
0

我想在我的form1加載發生時打開窗口解說器,並在窗體關閉時停止敘述。如何在c#上發生表單加載時打開narrator?

http://msdn.microsoft.com/en-us/library/system.speech.synthesis.aspx

我經歷了以上鍊接,但於事無補。 確保我的要求不符合語音。

請幫忙。

+0

有人需要將敘述者:

using System; using System.Collections.Generic; using System.Linq; using System.Speech.Synthesis; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class SpeachForm : Form { SpeechSynthesizer _synth; public SpeachForm() { InitializeComponent(); _synth = new SpeechSynthesizer(); } private void SpeachForm_Load(object sender, EventArgs e) { // Configure the audio output. _synth.SetOutputToDefaultAudioDevice(); // Speak a string. var msg = "The text you want to say."; _synth.SpeakAsync(msg); } private void SpeachForm_FormClosing(object sender, FormClosingEventArgs e) { _synth.SpeakAsyncCancelAll(); _synth.Dispose(); } } } 

這種形式是從通過另一種形式叫當你載入你的表單時,確定它已經打開。並且不希望關閉它時關閉它。這決不是由你來做出這樣的決定。 –

+0

@HansPassant你是對的。但讓我們說我想這樣做。這有可能嗎?我不想發言。我確實想使用默認的Windows解說器語音。 –

+0

爲什麼不直接運行narrator.exe進程? –

回答

1

在您的表單中,您希望掛鉤Load事件和FormClosing事件。在構造函數中,初始化你的合成器。在Load事件異步,然後開始演講中的FormClosing事件取消言論和處置您的合成:

var frm = new SpeachForm(); 
frm.ShowDialog(); 
+0

+1很棒! :) –

+0

@Brad Rem謝謝你的時間。但這不是我的問題。我不想發言。我需要打開默認的Windows解說器。 –

+0

@SutharshanSuthan,如果敘述者只適用於你的表單,也許你可以枚舉表單上的控件或文本,併爲敘述者構建一個字符串。如果這不是你想要做的,請提供有關項目性質的更多細節,以便我們更好地瞭解你想要實現的目標。 –

相關問題