Avatar billede horus Nybegynder
04. september 2006 - 09:15 Der er 6 kommentarer og
1 løsning

Sende og modtage SMS

Hejsa,

Jeg søger et par eksempler på hvordan man via VB.NET (eller bare alm. VB) kan sende og modtage SMS via et GSM/GPRS modem tilsluttet computerens COM port.

Som sagt - gerne nogle praktisk fungerende eksempler jeg kan arbejde videre med...

Horus
Avatar billede swiatecki Novice
04. september 2006 - 09:45 #1
Avatar billede horus Nybegynder
04. september 2006 - 10:10 #2
interessant link - det vil jeg kigge nærmere på - men det er da nogle pebrede priser...
Avatar billede swiatecki Novice
04. september 2006 - 10:26 #3
fandt også engang et gratis et.. kigger lige efter det
Avatar billede horus Nybegynder
04. september 2006 - 10:38 #4
har hentet toolkittet - og sakses et eksempel fra deres site - men det er der nu ikke meget held ved....

Får en compile error ved følgende linie:

Public asObj As ASMSCTRLLib.SMSC

og det selvom jeg har sat ref. som de beskriver.... asmsctrllib klassen (eller hvad det nu er) er dog ikke noget VB vil kendes ved - i stedet har jeg:

ASMSCtrl - men derfra kan .SMSC ikke vælges ????

Nogle gode råd ?
Avatar billede mikze Nybegynder
04. oktober 2006 - 16:19 #5
Hej, jeg har selv rodet meget med det de seneste uger. Jeg sidder lige nu med et program som også kan søge efter mobiler.

Jeg ved ikke hvilke mobiler det virker med, men det virker i hvert fald med min Sony Ericsson W810i.


Jeg kan hjælpe dig hvis du har Sony Ericsson, men ved ikke så meget om nokia og siemens osv!
Avatar billede mikze Nybegynder
04. oktober 2006 - 16:40 #6
Du kan prøve at gøre dette for at prøve noget nyt.

Opret et nyt projekt og tilføj en "SerialPort" til dit projekt og kald den for "serial".

Under settings for din serial port kan du sætte din baudrate (sæt den evt. på 115200, som de fleste kan køre på). Databits og alt det andet du kan indsætte plejer der ikke at skulle rodes ved, men til gengæld skal du lige sætte PortName til din ports navn fx "COM7" eller "COM3" .. Jeg kører selv på COM3.

Prøv nu at opret en tekstboks i en rimelig god størrelse og kald den txtReceived og lav den til multiline = true og scrollbar = both.

Lav derefter to knapper, hvor den ene hedder btnOpen og den anden btnClose - med text sat til Open og Close for hver af dem (gæt selv hvilken der skal til hvilken). Når man trykker på btnOpen skal koden være:


--------------------


    Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
        Try
            serial.Open()
        Catch ex As Exception
            MsgBox("Fejl:" & vbCrLf & vbCrLf & ex.ToString)
        End Try
    End Sub


--------------------

og for btnClose skal den være:

--------------------


    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        Try
            serial.Close()
        Catch ex As Exception
            MsgBox("Fejl:" & vbCrLf & vbCrLf & ex.ToString)
        End Try
    End Sub


--------------------


Lav nu en tekstboks uden multiline og kald den txtSend og lav også en knap der hedder btnSend. BtnSend kan have teksten "send". Lav for knappen btnSend koden:

--------------------


    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
        Try
            serial.Write(txtSend.Text & vbCr)
        Catch ex As Exception
            MsgBox("Fejl:" & vbCrLf & vbCrLf & ex.ToString)
        End Try
    End Sub


--------------------

Når du sender er det en god idé at sende vbCr .. det vil din mobil sikkert gerne have :) (vil min i hvert fald).

Her er koden for din serial samt en funktion til opdatering af et tekstfelt som du bare skal indsætte i View-code vinduet:

--------------------


    Private Sub serial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serial.DataReceived
        updaterecv(serial.ReadExisting.ToString)
    End Sub

    Private Sub updaterecv(ByVal teksten As String)
        If (txtReceived.InvokeRequired = True) Then
            Dim d As New SetTextCallback(AddressOf updaterecv)
            Me.Invoke(d, New Object() {teksten})
        Else
            txtReceived.Text = txtReceived.Text & teksten
        End If
    End Sub


--------------------


Og til sidst skal du også lige "declare" en enkelt variabel over alt andet kode (selvfølgelig stadig i dit projekt under din class men før dine subs).


--------------------


    Delegate Sub SetTextCallback(ByVal teksten As String)


--------------------


Prøv nu at starte dit projekt og trykke på knappen OPEN og bagefter skriv "AT" uden " " i dit tekstsend-felt og tryk på knappen send.. Så skulle du gerne få noget tilbage som


OK



eller:



AT

OK
Avatar billede horus Nybegynder
30. september 2008 - 08:48 #7
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester