RE: Jaws Speech Detection

  • From: "Homme, James" <james.homme@xxxxxxxxxxxx>
  • To: "programmingblind@xxxxxxxxxxxxx" <programmingblind@xxxxxxxxxxxxx>
  • Date: Mon, 22 Feb 2010 14:25:39 -0500

This idea is kind of clunky, but it might work.

1.       Get this file. and install 

2.       Create your own version of IsSpeaking that creates a file, even if it 
has just one byte in it when it's successful, and if not, it erases the file.

3.       If the file exists, the function was run successfully.

Jim Homme,
Usability Services,
Phone: 412-544-1810
Skype: jim.homme
Internal recipients,  Read my accessibility 

From: programmingblind-bounce@xxxxxxxxxxxxx 
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Andrew Hauck
Sent: Monday, February 22, 2010 1:27 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Jaws Speech Detection


I've been unable to locate an IsSpeaking type function using COM.

Currently I'm calling JAWS functions from a c++ .dll via COM. I've resorted to 
the RunFunction and RunScript COM functions to use the SpeechInUse() function 
within the FSDN. The problem with this approach is that the return value of the 
COM function is based on whether the JAWS script or function was scheduled on 
the execution queue, and not whether SpeechInUse() returns true or false.

I've thought about using the IniWriteIntegerEx function to write the 
SpeechInUse() result to a file, but have ran into problems using this function, 
mostly because the documentation is a bit confusing. The first first three 
parameters seem to make sense, but the fourth one doesn't make sense to me. It 
takes in an integer value but determines the directory where the file is 

I was wondering if anyone has used this function before or if they had better 
suggestions for detecting whether JAWS was speaking or not..

Below is an example of some code that Utilizes COM to invoke the JAWS run 

bool JawsInterface::RunFunction(const wchar_t* Function)
   function_r = 
jawsServer.Invoke1(_bstr_t("RunFunction"),&_variant_t(Function), &vResult);

This e-mail and any attachments to it are confidential and are intended solely 
for use of the individual or entity to whom they are addressed. If you have 
received this e-mail in error, please notify the sender immediately and then 
delete it. If you are not the intended recipient, you must not keep, use, 
disclose, copy or distribute this e-mail without the author's prior permission. 
The views expressed in this e-mail message do not necessarily represent the 
views of Highmark Inc., its subsidiaries, or affiliates.

Other related posts: