Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Flamer en 27 Octubre 2015, 01:27 am



Título: [Solucionado]Error con VBscript que habla
Publicado por: Flamer en 27 Octubre 2015, 01:27 am
Hola amigos tengo un problema y es que tengo este código pero me manda un error

Código
  1. Set speech=CreateObject("sapi.spvoice")
  2. speech.Speak "Hola foro soy flamer"
  3.  

me dice origen null y error no especifico, linea 2 carácter 1

saludos Flamer

nota: me quivo que de subforo algun moderador que lo mueva a script


Título: Re: Error con VBscript que habla
Publicado por: _TTFH_3500 en 27 Octubre 2015, 02:13 am
speech es una variable, debes declararla, no se mucho de Visual Basic pero intenta con:

Código
  1. Dim speech
  2. Set speech=CreateObject("sapi.spvoice")
  3. speech.Speak "Hola foro soy flamer"

O guardar lo que quieres decir en otra variable:

Código
  1. Dim speaks, speech
  2. speaks = "Texto a decir"
  3. Set speech = CreateObject("sapi.spvoice")
  4. speech.Speak speaks


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 27 Octubre 2015, 02:44 am
sigue igual parece ser mi ordenador por que ni el textaloud y el balabolka funcionan no dan señales de vos

saludos flamer


Título: Re: Error con VBscript que habla
Publicado por: tincopasan en 27 Octubre 2015, 03:37 am
también pódes probar esto:
Código
  1. set speech = Wscript.CreateObject("SAPI.spVoice")
  2. speech.speak "hola flamer"
  3.  


Título: Re: Error con VBscript que habla
Publicado por: Eleкtro en 27 Octubre 2015, 03:55 am
Según la documentación de la MSDN no estás haciendo nada de forma incorrecta:
http://msdn.microsoft.com/en-us/library/ms720592%28v=vs.85%29.aspx



sigue igual parece ser mi ordenador por que ni el textaloud y el balabolka funcionan no dan señales de vos

pero ...¿estás seguro de tener las voces SAPI instaladas en tu equipo?. o dicho de otra forma, ¿estás utilizando un Windows modificado?, me refiero al típico "Windows edition taringa por calamar69" que podría tener características capadas, como por ejemplo las functiones TTS/SAPI de Microsoft.

Prueba de la siguiente manera:
Código
  1. Set speech = Wscript.CreateObject("SAPI.SpVoice")
  2.  
  3. If (speech Is Nothing) Then
  4.   Call WScript.Echo("Fallo al intentar cargar el objeto COM")
  5.  
  6. Else
  7.   Set speech.Voice = speech.GetVoices.Item(0) ' La voz de "SAM".
  8.   Call speech.Speak(speech.Voice.GetDescription)
  9.  
  10.   While Not speech.WaitUntilDone(0)
  11.     WScript.Sleep 100
  12.   Wend
  13.  
  14. End If

Saludos


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 27 Octubre 2015, 04:26 am
Aqui el error en video


https://www.youtube.com/watch?v=n0TTJvkBK8k


Título: Re: Error con VBscript que habla
Publicado por: Eleкtro en 27 Octubre 2015, 05:00 am
Aqui el error en video

Nadie ha insinuado que mientas... aparte, tanto el código de @Tincopasan como el de @_TTFH_3500 como el tuyo y el mio, los cuatro son y hacen exactamente lo mismo que publicaste en tu código, solo que el orden de las cosas cambia.

Repito, Flamer, ¿estás seguro de que tienes las voces SAPI instaladas?, ¿estás usando un Windows modificado?, y, ¿has probado el script que te mostré?.

No lo pregunto por pensar que mientas, lo pregunto por que es un dato importante, puede ser la causa del problema. Y es que el error dice claramente "null".

Abre una instancia de la CMD y ejecuta el comando SFC para buscar fallos en el sistema de archivos de Windows y corregirlos:
Código:
SFC /ScanNow

Saludos!


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 29 Octubre 2015, 05:39 am
Hola aqui el resultado del comando

Código:
Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Windows\system32>sfc /scannow

Iniciando examen en el sistema. Este proceso tardará algún tiempo.

Iniciando la fase de comprobación del examen del sistema.
Se completó la comprobación de 100%.
Protección de recursos de Windows encontró archivos dañados y no consiguió
reparar algunos de ellos. Para obtener más detalles, consulte CBS.Log
windir\Logs\CBS\CBS.log. Por ejemplo, C:\Windows\Logs\CBS\CBS.log.

C:\Windows\system32>C:\Windows\Logs\CBS\CBS.log
Acceso denegado.

C:\Windows\system32>


con respecto a lo que dices que si tengo la SAPI pues no se la verdad pero yo tenia el textaloud y el balabolka ase meses atrás cuando hice mis primeros vídeos y si funcionaba pero los des-instale y ahora no agarra

boy a instalar la SAPI aver que

saludos


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 31 Octubre 2015, 03:02 am
Hola acabo de instalar la SAPI 5.1 y siguio igual

la de este link: http://www.microsoft.com/en-us/download/details.aspx?id=10121 (http://www.microsoft.com/en-us/download/details.aspx?id=10121)

alguna solucion


Título: Re: Error con VBscript que habla
Publicado por: tincopasan en 31 Octubre 2015, 04:17 am
es muy dificil así saber donde está el error. se me ocurre que puede ser también una cuestión de permisos (probá ejecutando en modo administrador).
si tenés xp probá el mismo script en win8
y se que es parte de tí, pero tu ortografía es tan mala que desalienta a seguir leyendo, sería muy bueno para tí que mejores aunque sea de a poco. Sin ánimos de ofenderte!
Saludos.


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 31 Octubre 2015, 13:54 pm
es windows 7

no te preocupes sobre mi ortografia no me ofendo, aun que no creas lo estoy intentando

saludos flamer y boy a intentar modo administrador


Título: Re: Error con VBscript que habla
Publicado por: Eleкtro en 31 Octubre 2015, 20:10 pm
Al parecer todos coincidimos en que es un problema del equipo, personálmente debido a la ausencia de las librerías COM relacionadas.

Sin embargo, y para salir de dudas, te sugiero que pruebes en otro lenguaje como VB.Net o C# para comprobar si obtienes los mismos resultados, para obtener al menos un mensaje de error que sea más informativo.

VB.Net:
Código
  1. Imports System.Speech.Synthesis
  2.  
  3. Dim speech As New SpeechSynthesizer
  4. Try
  5.    speech.Speak(speech.Voice.Description)
  6.  
  7. Catch ex As Exception
  8.    MessageBox.Show(ex.Message)
  9.  
  10. End Try

C#:
Código
  1. using System.Speech.Synthesis;
  2.  
  3. SpeechSynthesizer speech = new SpeechSynthesizer();
  4. try {
  5. speech.Speak(speech.Voice.Description);
  6.  
  7. } catch (Exception ex) {
  8. MessageBox.Show(ex.Message);
  9.  
  10. }

Saludos


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 1 Noviembre 2015, 05:38 am
No creo que sea nesesario en NET, como dije anteriormente el textaloud y balabolka no funciona ninguna voz.


Título: Re: Error con VBscript que habla
Publicado por: Eleкtro en 1 Noviembre 2015, 07:16 am
Dos o tres veces te he preguntado si usas un windows modificado, pregunta la cual todavía no has respondido.

Textaloud, el otro programa y VisualBasicScript no te informan del error, sin embargo, en .Net obtendrias, al menos, mejor información sobre la causa del problema.

Si no quieres dejarte ayudar entonces no se por que formulas una pregunta. Ya no gastaré más "saliba".

Saludos.


Título: Re: Error con VBscript que habla
Publicado por: tincopasan en 1 Noviembre 2015, 13:14 pm
tiene razón Elektro de capturar de alguna forma el error, sobre todo porque originalmente lo declara como desconocido, ahora bien, también pódes tratar con el propio vbs:
Código
  1. On Error Resume Next
  2. set speech = Wscript.CreateObject("SAPI.spVoice")
  3. speech.speak "hola Flamer"
  4. If Err.Number <> 0 Then
  5.    WScript.Echo Err.Number & " Origen " & Err.Source & " Descripcion: " &  Err.Description
  6.    Err.Clear
  7. End If'


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 1 Noviembre 2015, 16:07 pm
No se si mi windows es modificado no lo instale yo, seré bueno para algunas cosas pero para otras no, no crean que se mucho de computadoras

y por otro lado no tengo el NET lo tendría que instalar por que no lo tengo

salida del script de tinco

(http://thumbs.subefotos.com/bce959a8ddb2a6716bbb77d50c3aeec4o.jpg)

salu2 flamer y perdón Elecktro


Título: Re: Error con VBscript que habla
Publicado por: tincopasan en 1 Noviembre 2015, 19:07 pm
ese error no tiene nada que ver con sapi, tu windows tiene algo mal, desinstalaste o borraste algo o como te dijeron es una versión personalizada de win y le faltan funciones!


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 1 Noviembre 2015, 19:49 pm
orale ahora el problema es que le falta o que borre

saludos y pues así lo voy a dejar gracias a los 2


Título: Re: Error con VBscript que habla
Publicado por: Flamer en 2 Noviembre 2015, 02:35 am
jajajajaa gracias a tincopasan y a Elecktro por querer ayudarme

ya solucione el problema era sencillo solo era cargar la dll

primero descargarla del registro así:
Código:
regsvr32 /u sapi.dll

y despues cargarla así:
Código:
regsvr32 /i sapi.dll

Saludos Flamer y gracias de todos modos


Título: Re: [Solucionado]Error con VBscript que habla
Publicado por: Eleкtro en 2 Noviembre 2015, 04:47 am
Entonces por lo que comentas habia algún conflicto en el registro de Windows en lo respecto a las entradas del registro relacionadas con interfaces COM de SAPI, y volviendo a registrarlas fue suficiente para solucionarlo.

Me alegro, aunque ahora el misterio es la causa a la que se debió ese conflicto.

Te mencionaré algunas posibles causas para que tengas precaución por si algo parecido te volviese a suceder en el futuro:

  • La utilización de aplicaciones limpiadoras del registro (excepto CCLEANER, que es muy poco severo en ese sentido)
  • La utilización de algún administrador de tareas o visor de objetos COM donde deshabilitaste SAPI, sin querer.

PD: Perdona el mosqueo.

Saludos