منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ممكن مساعدة في ارسال رسالة بي لغة العربية
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
عند ارسال رسالة الي الجوال تظهر  علي شكل ؟؟؟؟؟؟؟؟؟؟؟
كود :
       Dim message As String
       message = RichTextBox1.Text
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))
           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
جرب استبدال السطر التالي :


كود :
message = RichTextBox1.Text


بهذا :


كود :
message = Encoding.UTF8.GetString(RichTextBox1.Text)
يوجد error 
        Dim message As String
        message = Encoding.UTF8.GetString(RichTextBox1.Text)
        SerialPort1.Open()
        If SerialPort1.IsOpen() Then
            SerialPort1.Write("AT" & vbCrLf)
            SerialPort1.Write("AT+CMGF=1" & vbCrLf)
            SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
            SerialPort1.Write(message & Chr(26))
            MsgBox("يتم الارسال")
        Else
            MsgBox("لم يتم")
        End If
    End Sub
تعدل على الاخ حريف البرمجة
كود :
Message = Encoding.Unicode.GetString(Encoding.UTF8.GetBytes(RichTextBox1.Text))
جرب تغير في الترميز UTF8 وUnicode و التبديل بينهم
البرنامج لا يرسل 
كود :
       Dim message As String
       message = Encoding.Unicode.GetString(Encoding.UTF8.GetBytes(RichTextBox1.Text))
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))

           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
   End Sub
جرب UTF7 بدلا من Unicode


مش فاهم ردك
(11-08-18, 12:18 AM)الزوي كتب : [ -> ]البرنامج لا يرسل 
انت شوف البرنامج  لا يعمل ارسال الرسالة كيف قبل 
كود :
Imports System.IO.Ports
Imports System.Text

Public Class Form1
   Dim SerialPort1 As New System.IO.Ports.SerialPort()
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       SerialPort1.PortName = "COM4"
       SerialPort1.BaudRate = 9600
       SerialPort1.Parity = Parity.None
       SerialPort1.StopBits = StopBits.One
       SerialPort1.DataBits = 8
       SerialPort1.Handshake = Handshake.RequestToSend
       SerialPort1.DtrEnable = True
       SerialPort1.RtsEnable = True
       SerialPort1.NewLine = vbCrLf

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Dim message As String
       message = Encoding.UTF7.GetString(Encoding.UTF8.GetBytes(RichTextBox1.Text))
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))

           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
   End Sub


End Class
جرب هذا التعديل
كود :
Imports System.IO.Ports
Imports System.Text

Public Class Form1

   Dim SerialPort1 As New System.IO.Ports.SerialPort()

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
       SerialPort1.PortName = "COM4"
       SerialPort1.BaudRate = 9600
       SerialPort1.Parity = Parity.None
       SerialPort1.StopBits = StopBits.One
       SerialPort1.DataBits = 8
       SerialPort1.Handshake = Handshake.RequestToSend
       SerialPort1.DtrEnable = True
       SerialPort1.RtsEnable = True
       SerialPort1.NewLine = vbCrLf

   End Sub

   Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
       Dim message As String = ConvertUTF8ToCUSD2(RichTextBox1.Text)
       SerialPort1.Open()
       If SerialPort1.IsOpen() Then
           SerialPort1.Write("AT" & vbCrLf)
           SerialPort1.Write("AT+CUSD=2" & vbCrLf)
           SerialPort1.Write("AT+CMGF=1" & vbCrLf)
           SerialPort1.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
           SerialPort1.Write(message & Chr(26))

           MsgBox("يتم الارسال")
       Else
           MsgBox("لم يتم")
       End If
   End Sub

   Public Function ConvertUTF8ToCUSD2(s As String) As String
       Dim code As String = String.Empty
       For Each c As Char In s.ToCharArray
           code &= AscW(c).ToString("X4")
       Next
       Return code
   End Function

End Class
شكرا يا اخي علي الرد لكن نفس الشي لا يتم ارسال الرسالة الي الجوال
ضع الكود الاول الذي تقول فيه (عند ارسال رسالة الي الجوال تظهر علي شكل ؟؟؟؟؟؟؟؟؟؟؟)

الارسال من الجوال مكلف،
لماذا لا تستخدم رسائل SMS عن طريق الانترنت، فهي أرخص بكثير
مثل شركة https://www.mobily.ws
الصفحات : 1 2 3