Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: extreme69 en 1 Marzo 2011, 07:59 AM

Título: MSCOMM - Manejar el celular desde la PC
Publicado por: extreme69 en 1 Marzo 2011, 07:59 AM
Hace 2 días que estoy intentando que esto me funcione...

No encontré absolutamente nada en el foro sobre este control.

| |-+  Resultados de la búsqueda
Páginas: [1]
No se encontraron resultados
Páginas: [1]


Si encontré unos ... 1200 ejemplos distintos... pero obviamente me falta algo porque no logro hacer que me funcione.

Paso a explicar... estoy intentando manejar el celular desde la pc, ¿para que? bueno, mando muchos sms por día y me queda más cómodo escribirlos en un teclado de pc que en el celular.

Así que estoy intentando hacer un programa que me permita desde el pc enviar sms (con el celular conectado por usb).

Bueno, mis primeras pruebas fueron 100% exitosas, utilicé hyperterminal para conectarme al COM correspondiente y luego jugué con comandos AT hasta lograr enviar el SMS con éxito.

Pongo los comandos y describo cada línea:

AT 'son comandos AT
OK
AT+CMGF=1 'manejar el mensaje en formato texto
OK
AT+CMGW="+666" 'mandar sms a este numero
> Testeo de texto largo para probar bla bla bla bla bla bla bla bla bla. 'contenido del sms a enviar
+CMGW: 14398

OK
AT+CMSS=14398
+CMSS: 20

OK


Ahora lo quiero hacer en VB6... y me encuentro con importantes inconvenientes.

Primero que nada creé una función con un "sleep" improvisado... el código sería algo así:

Sub Espera(Segundos As Single)
  Dim ComienzoSeg As Single
  Dim FinSeg As Single
  ComienzoSeg = Timer
  FinSeg = ComienzoSeg + Segundos
  Do While FinSeg > Timer
      DoEvents
      If ComienzoSeg > Timer Then
          FinSeg = FinSeg - 24 * 60 * 60
      End If
  Loop
End Sub


Luego agregué el control MSComm y un botón con el siguiente código:

MSComm1.InputLen = 0
MSComm1.CommPort = "3" ' Com3 Port
Espera (1)
MSComm1.Settings = "57600,n,8,1"
Espera (1)
MSComm1.PortOpen = True
Espera (1)
MSComm1.Output = "AT" & Chr(10)
Espera (1)
MSComm1.Output = "AT+CMGF=1" & Chr(10)
Espera (1)
MSComm1.Output = "AT+CMGW=" & "+666" & Chr$(13) & Chr(13) & Chr(10)
Espera (1)
MSComm1.Output = "Contenido sms aca" & Chr(26)


Pero esto NO me funciona... aunque está igual de seteado que el hyperterminal...

Por otro lado, si pretendo enviar sms desde un programa, debo saber el "index" del mensaje a enviar, en el caso del hyperterminal como lo hago a mano ví que el index del mensaje a enviar era "14398", para luego utilizar CMSS=14398 para enviar el sms, pero si lo hago con el soft ¿como hago que determine este número para luego usarlo en CMSS?

Podría usar MSComm.Input = RichTextBox1.Text y mid para sacar el contenido, pero no funciona tampoco, obviamente estoy haciendo algo mal.

¿Un poco de luz?  ;-)
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: BlackZeroX en 1 Marzo 2011, 11:05 AM
.
No estas respectando la sintasis de los comandos AT, Prueba con esto:

Alternativa al OCX.
Clase para los puertos Com hecha por Coco/Cocus (http://infrangelux.sytes.net/FileX/?file=clsCom.cls&dir=/BlackZeroX/Programacion/vb6/Modulos%20de%20Clase/Puertos%20Com).

Código (Vb) [Seleccionar]


Option Explicit

Private WithEvents obj_clscom           As clsCom

'
'   /////////////////////////////////////////////////////////////
'   // Autor:   BlackZeroX ( Ortega Avila Miguel Angel )       //
'   //                                                         //
'   // Web:     http://InfrAngeluX.Sytes.Net/                  //
'   //                                                         //
'   //    |-> Pueden Distribuir Este codigo siempre y cuando   //
'   // no se eliminen los creditos originales de este codigo   //
'   // No importando que sea modificado/editado o engrandecido //
'   // o achicado, si es en base a este codigo                 //
'   /////////////////////////////////////////////////////////////
'   // http://infrangelux.sytes.net/Blog/index.php?option=com_content&view=article&id=6:artwait&catid=2:catprocmanager&Itemid=8
'   /////////////////////////////////////////////////////////////

Private Declare Function WaitMessage Lib "user32" () As Long

Enum eTime
    Horas = 3600
    Minutos = 60
    Segundos = 1
End Enum

Public Sub Wait(ByVal vToWait&, Optional ByVal ThisWait As eTime = Segundos, Optional ByVal UseAllProc As Boolean = False)
Dim vDateE      As Date
    vDateE = DateAdd("s", vToWait& * (ThisWait + 0), Time)
    Do While vDateE > Time
        Call WaitMessage
        If Not UseAllProc Then DoEvents
    Loop
End Sub
Private Sub Form_Load()
    Set obj_clscom = New clsCom
    With obj_clscom
        .ComPort = 4
        .ComSettings = "57600,N,8,1"    ' 57600 bps, sin paridad, 8 bits de data, 1 bit de stop
        .TimerDelay = 1000              ' 1000ms = 1 Segundo para chequear si entro data
        .TimerEnabled = True
        If .InitCom Then
            Call .WriteCom("AT" & vbCr)
' wait()
            Call .WriteCom("AT+CMGF=1" & vbCr)
' wait()
            Call .WriteCom("AT+CMGS=" & Chr(34) & "0445526651140" & Chr(34) & vbCr) ' // Segun el protocolo lo que nos retorna es +CMGS: <Num. Identificador>
' wait()
            Call .WriteCom("Espero una jalada en mi cel, aun que ya no tengo credito xP" & Chr(26))    ' 26 = Ctrl+Z ( Segun el protocolo AT )
        End If
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set obj_clscom = Nothing
End Sub

Private Sub obj_clscom_DataReceived(ByVal strData As String)
    Debug.Print strData
    If InStr(1, strData, "+CMGS:") > 0 Then
        If InStr(1, strData, "OK") > 0 Then
            Dim str_Ret()       As String
            str_Ret() = Split(Replace(Replace(strData, vbCr, ""), "OK", ""), " ")
            Call obj_clscom.WriteCom("AT+CMSS=" & Val(str_Ret(1)) & vbCr)
        End If
    End If
End Sub



Temibles Lunas!¡.
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: -- KiLiaN -- en 1 Marzo 2011, 11:28 AM
CitarTemibles Lunas!¡.

y porque ahora temibles?? xD
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: BlackZeroX en 1 Marzo 2011, 11:56 AM
.

OJO el codigo que puse es funcional al 100%

Tan solo con el comando

AT+CMGS

Enviara el SMS

No conozco, ni me figura en mis libros el comando:

AT+CMSS

Pero lo agregue a como creo que va.

Temibles Lunas!¡.
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: extreme69 en 1 Marzo 2011, 17:37 PM
BlackZeroX, ¿como decirlo sin sonar gay?

Sos un tierno  :-*

Tuve que cambiar algunos comandos AT pero funcionó EXCELENTE  ;-)
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: Psyke1 en 1 Marzo 2011, 18:18 PM
Cita de: extreme69 en  1 Marzo 2011, 17:37 PM
BlackZeroX, ¿como decirlo sin sonar gay?

Sos un tierno  :-*

Tuve que cambiar algunos comandos AT pero funcionó EXCELENTE  ;-)
gay :xD

DoEvents! :P
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: extreme69 en 1 Marzo 2011, 19:40 PM
Cita de: Mr.Frog™ en  1 Marzo 2011, 18:18 PM
gay :xD

DoEvents! :P

Uy! ese me conoce  :-[

De paso por si alguien más está intentando hacer lo mismo que yo explico la diferencia entre CMGW y CMGS es que con CMGW el mensaje se guarda en el storage area de "mensajes salientes" y hasta que no usás CMSS=Numero_Index no se envía el mensaje.

Yo venía utilizando CMGW + CMSS y tenía un grave problema que era como obtener las respuestas para obtener el numero index del mensaje a enviar, ahora con el CMGS quedó solucionado.

Esos libros mágicos de BlackZeroX son increíbles... debe tener una biblioteca de 9000m2...  :o

Ahora noto una gran diferencia más en el CMSS... estoy haciendo las pruebas enviandome un sms a mi mismo, el mensaje llega, y lo puedo leer, PERO NO QUEDA GUARDADO EN NINGUN LADO jajajaja, es increíble... se puede leer 1 única vez, y no queda ningún rastro del mensaje luego de salir del mensaje, simplemente desaparece.

Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: BlackZeroX en 1 Marzo 2011, 20:26 PM
.
Tu como crees que le enviaba mensajes a la Mr. Frogs sin que tuviera evidencias de quien le envio el mensajito xP.

Con:

AT+CMGW

lo guardas

Dulces Lunas!¡.
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: extreme69 en 1 Marzo 2011, 20:34 PM
Jajaja, si, si, ya ví, pero lo raro... es que se entiende que no kede en la bandeja de salida porque no se está guardando el mensaje... pero ¡¿en la de entrada tampoco?!
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: 79137913 en 1 Marzo 2011, 22:33 PM
HOLA!!!

No se si me estoy metiendo mal, pero los mensajes que conozco que no se guardan en ninguna casilla son las notificaciones de red.

GRACIAS POR LEER!!!
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: extreme69 en 1 Marzo 2011, 22:56 PM
Cita de: 79137913 en  1 Marzo 2011, 22:33 PM
HOLA!!!

No se si me estoy metiendo mal, pero los mensajes que conozco que no se guardan en ninguna casilla son las notificaciones de red.

GRACIAS POR LEER!!!

No es por el tipo de mensaje sino por la forma en que se envía (al menos en cuanto a la bandeja de salida se refiere), ahora voy a probar mandando sms a otro numero y fijandome si queda en la de entrada o no :P
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: elcarancho en 26 Enero 2012, 12:24 PM
Perdon, son novato...
Podrían decirme como sería el proyecto completo para el envio de sms?
Utilizo la clase para los puertos com y el código de BlackZeroX  sería un formulario?
Muchas gracias por compartir esta valiosa información
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: extreme69 en 30 Enero 2012, 11:07 AM
Tenés mi código ahí arriba, el cual funciona perfecto, sólo hay que cambiar el AT+CMGW por AT+CMGS que ese era mi problema.

De todas formas, no todos los celulares soportan todos los comandos AT... deberías revisar la lista de comandos AT permitidos por tu cel.
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: dmgdani en 17 Febrero 2012, 02:14 AM
hola todos
si me lo permitis hay una manera para lo que quieres sin utilizar visual basic.
pero necesitas de un movil nokia yo tengo un n73 y me va perfecto.

utilizo este programa
http://mobileways.de/products/remotepro/remote-professional/ (http://mobileways.de/products/remotepro/remote-professional/)

pudes manejar el movil desde el ordenador y escribir los mensajes.
funciona tanto por cable usb o bluethoot.
si lo quieres el programa te lo puedo pasar full si no lo encuentras.


perdon si esta mal mi respuesta al no responer nada con relacion a vsial basic lo hago para ayudar tambien a las personas que quieren manejar el movil con el ordenador y los comandos AT se les quedan grandes o no les funcionan.

un saludo a todos
Título: Re: MSCOMM - Manejar el celular desde la PC
Publicado por: BlackZeroX en 18 Febrero 2012, 10:03 AM
Cita de: dmgdani en 17 Febrero 2012, 02:14 AM
hola todos
si me lo permitis hay una manera para lo que quieres sin utilizar visual basic.
pero necesitas de un movil nokia yo tengo un n73 y me va perfecto.

Tu respuesta esta fuera de lugar (es muy tonta) debido a que estas en un foro de PROGRAMACIÓN, mas no de software existente...

P.D.: ¿Revisaste la fecha de las publicaciones?

Dulces Lunas!¡.