Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: PokiPoki en 29 Enero 2014, 22:30 pm



Título: Ayuda con VBS (SOLUCIONADO) Tema Cerrado
Publicado por: PokiPoki en 29 Enero 2014, 22:30 pm
Antes de nada,saludar a todos los componentes del foro pues me acabo de registrar

Necesito una pequeña ayuda para hacer funcionar mi archivo EnvioMail.vbs

Código
  1. set objcdo=createobject("cdo.message")
  2. objcdo.subject="bla bla bla"
  3. objcdo.from="micorreo@hotmail.com"
  4. objcdo.to="tucorreo@hotmail.com"
  5. objcdo.textbody="Este es el texto del mail"
  6. objcdo.addattachment("c:\miarchivo.zip")
........................
..............................
pues lo que quiero es poder usar la funcion randomize y reemplace,para que cada vez que mande un correo me cambie el texto escrito en el campo de objcdo.subject="bla bla bla" y me genere uno aletorio cada vez

tengo esta funcion ramdomize,aunque el resultado lo muestra en un Msgbox  :(

Código
  1. WScript.Echo TextRandom(12)
  2.  
  3. Function TextRandom(Count)
  4.    Randomize
  5.    For i = 1 To Count
  6.        If (Int((1 - 0 + 1) * Rnd + 0)) Then
  7.            TextRandom = TextRandom & Chr(Int((90 - 65 + 1) * Rnd + 65))
  8.        Else
  9.            TextRandom = TextRandom & Chr(Int((57 - 48 + 1) * Rnd + 48))
  10.        End If
  11.    Next
  12. End Function

pero no se como agregarla con la funcion reemplace dentro de mi archivo EnvioMail.vbs, me seria de gran utilidad poderlo hacer funcionar.

PD:Soy novato en esto,pues no se si lo que propongo se puede o no hacer  :huh:


Título: Re: Ayuda con VBS
Publicado por: Eleкtro en 29 Enero 2014, 23:14 pm
Bienvenido al foro.

1. Debes usar las etiquetas de código, porfavor lee las normas.

2. No existe ningún método que se denomine 'reemplace', en todo caso imagino que quieres decir 'replace', pero no entiendo el uso que le quieres dar en este escenario.

3. Para resolver la situación de poder usar una cadena de texto aleatoria como 'asunto', es tan simple como asignar los datos que devuelve el método 'TextRandom' a la propiedad 'Subject' del objeto 'objcdo'.
Código
  1. objcdo.subject = TextRandom(n)

Te sugiero que leas un tutorial básico, no de VBS, sinó de programación orientada a objetos en general, ya que esto es lo más básico de todo ...y supongo que no querrás pasarte la vida necesitando ayuda para resolver cosas básicas :P.

Saludos!


Título: Re: Ayuda con VBS
Publicado por: PokiPoki en 30 Enero 2014, 00:26 am
Gracias por la ayuda Eleкtro

soy novato en esto,el error era mio,error tonto y muy simple pues seguia usando comillas dobles
Código:
objcdo.subject = "TextRandom(n)"
en el campo del asunto :(

PD:Por mi parte el tema esta solucionado y Cerrado,un saludo compañeros


Título: Re: Ayuda con VBS
Publicado por: Eleкtro en 30 Enero 2014, 01:35 am
error tonto y muy simple pues seguia usando comillas dobles
Código:
objcdo.subject = "TextRandom(n)"

Como información adicional quiero explicarte que la comilla doble es un símbolo reservado por el lenguaje para encerrar un String  (lo que resulta obvio :P), entonces cuando quieras insertar comillas dobles en un string debes escapar el caracter, la forma de escaparlo es duplicar el símbolo (2 comillas dobles para encerrar el string y 2 comillas dobles para insertar una comilla doble dentro del string) y concatenar el texto con el operador "&", todo esto se haría así:

Código
  1. objcdo.subject = """" & TextRandom(n) & """"

o bien:

Código
  1. objcdo.subject = """" & "Texto Normal" & """"

O también puedes utilizar la función Chr que devuelve el caracter de un byte (0-255):

Código
  1. objcdo.subject = chr(34) & TextRandom(n) & chr(34)

o bien:

Código
  1. objcdo.subject = chr(34) & "Texto Normal" & chr(34)

Saludos.