Windows 서비스로 실행되는 제품에서 TAPI를 사용하여 개발 작업을 간소화하기 위해 AddTapi.NET 라이센스를 구입했습니다. Windows GUI 및 콘솔 응용 프로그램에서 TAPI를 사용할 수 있었고 코드를 Windows 서비스로 이식 할 수있었습니다. 그 시점에서 필자는 TapiCall.Speak 나 TapiCall.Play (웨이브 파일)와 같은 음성 API를 사용하는 코드가 전화선에서 사운드를 생성하지 않고 침묵하고 있다고 지적했습니다.Windows 서비스에서 TAPI 음성 사용
내 문제와 관련된 몇 가지 이전 질문이 있습니다.
Question: Playing Voice over a modem from a Windows service은 Windows 서비스에서 GUI 스레드를 생성하여 해결 된 음성을 사용하여 문제가 발생했음을 나타냅니다. 나는이 일을 시도했지만 전화로 연설을 듣는 데 실패했습니다.
Question: Access violation with Tapi in Windows service은 서비스의 TAPI에 초기 문제가 있음을 나타 냈지만 아직 AddTapi 제품을 사용하여 해결되었습니다. 티켓에는 명시 적으로 음성 API 사용에 대한 언급이 없습니다 (SAPI)
Visual Studio 2010 및 .NET 4.0을 사용하여 C#에서 프로그래밍 중입니다. Windows 7에서 작동하게하려고합니다. Microsoft에서 Windows 2008, Windows Vista 및 Windows 7 서비스의 음성 하위 시스템 사용을 허용하지 않도록 보안을 변경했음을 나타내는 AddTapi의 전자 메일을 받았습니다. 위 기사가 Windows 7에 없더라도 기사가 AddTapi에서 성공을 거둔 것으로 보입니다.
내가 작업하는 주 시스템이 Windows 서비스 (및 하위 프로세스)라는 점을 감안할 때 가장 좋은 방법은 무엇입니까? 연설이 효과를 발휘합니다. SAPI 코드를 콘솔 응용 프로그램에 넣으면 사용자가 컴퓨터에 로그온하지 않아도 SAPI 코드를 관리하고 싶습니다. 내 TAPI 코드에 대한 그래픽은 없습니다. Article: Launching an interactive process과 유사한 접근 방식을 취하여 대화 형 프로세스를 생성해야합니까? Windows 서비스에서 TAPI 연설을 사용한 성공 사례가 있습니까?
1 주일에 2 번보고 나서 Windows 작업 스케줄러를 사용하여 Windows 서비스를 작업으로 옮겨 보았습니다. 이를 통해 응용 프로그램 시작 및 중지에 대한 제어권을 얻을 수있었습니다. 확실히 말해서, 사용자가 로그온 한 경우에도 '사용자가 로그온했는지 여부를'실행하여 작업을 구성하면 SAPI가 작동하지 않습니다. '사용자가 로그온 할 때만 실행'으로 설정을 변경하면 예약 된 작업이 SAPI 재생 및 말하기 옵션으로 정상적으로 작동했습니다. 사용자가 항상 로그온하도록하는 것은 바람직하지 않지만 지금은 유일한 해결책 인 것 같습니다. –