use Win32::OLE; use strict; my $vcmd_ms; $Win32::OLE::Warn = 1; # Warn if ole fails eval {$vcmd_ms = Win32::OLE->GetActiveObject('Speech.VoiceCommand')}; die "VoiceCommand not installed" if $@; unless (defined $vcmd_ms) { $vcmd_ms = Win32::OLE->new('Speech.VoiceCommand'); die Win32::OLE->LastError if (Win32::OLE->LastError()); } $vcmd_ms->Register(""); # this is the line that barfs die Win32::OLE->LastError if (Win32::OLE->LastError());