Frage

Ich habe es getan, indem OLE-Objekt mit Delphi 2000 / NT / XP wie folgt vor:

Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak(...)

Aber das funktioniert nicht in Vista, wie kann ich mein Programm einfach einen Text in Vista sprechen?

War es hilfreich?

Lösung

Ich habe gerade versucht (D2009 auf Vista Home Premium) mit dem folgenden Code und es funktioniert!

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Voice: Variant;
begin
  Voice := CreateOLEObject('SAPI.SpVoice');
  Voice.speak('Hello World');
end;

end.

FYI, gibt es eine schönes Papier rel="nofollow von Brian Long ...


(Very) Später Update:

, warum es möglicherweise nicht in Vista arbeitet und gibt eine EZeroDivide Ausnahme außerhalb der IDE finden Sie in dieser anderen SO Frage: Delphi SAPI Text-To-Speech

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top