On Sun, 25 Jun 2023, James Richters via fpc-pascal wrote:
I gave up on doing it directly, it seems SO convoluted to do with FPC with the COM unit and all this stuff I just don’t understand, and it’s SO simple to do with a VBS script in just 3 lines and it just works! (it would only be 2 lines if I didn’t want Microsoft Zira)
I don't know what people advised you, but what you want to do needs 3 lines of code only: I created a lazarus application, dropped a button and in the onclick I call speak('hello'). It just works. -- uses comobj; procedure speak(s : string); var v : olevariant; begin v:=CreateOleObject('SAPI.SpVoice'); v.Voice:=v.GetVoices().Item(1); v.Speak(s); end; {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin speak('hello'); end; --No need to write a script, call tprocess etc. You can do everything right in fpc as simple as this.
Michael.
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal