webForumDet fria alternativet

Funktion i ActiveX

.NET

0 svar · 185 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Frågan#1

Tjabba!

Jag fick den ljusa idén att istället för att köpa ett program för 1500 kr (ActiveComport från ActiveXperts), så skulle jag göra motsvarande själv... som dessutom var anpassat efter mina önskemål. Det var ca 105 år sedan jag programmerade i VB senast, så jag tänkte att jag gör det som ett vanligt program först för att se att det blir som jag vill.

Programmet i fråga ska skicka ut ren text, eller char, till en display ansluten till en COM-port. Sagt och gjort. Det kanske är onödigt med hela koden för det programmet här. Vad det gör är att ta text skriven i textbox1 resp textbox2 och skickar till COM-porten.

Public Class Display

    Private Sub Visatext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Visatext.Click
        Dim Disp1, Disp2 As String
        Disp1 = TextBox1.Text
        Disp2 = TextBox2.Text
        SendSerialData(Disp1, Disp2)
    End Sub

    Sub SendSerialData(ByVal Disp1, ByVal Disp2)
        Dim Output As String
        Using comport As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM1")
            Output = Chr(12) & Disp1 & Chr(31) & Disp2
            comport.WriteLine(Output)
            comport.Close()
        End Using
    End Sub

    Private Sub Avsluta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Avsluta.Click
        SendSerialData("", "")
        End

    End Sub

    Private Sub Display_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SendSerialData("", "")

    End Sub

    Private Sub Reset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reset.Click
        SendSerialData("", "")
        TextBox1.Text = ""
        TextBox2.Text = ""

    End Sub
End Class

Det här fungerar jättebra och precis som jag önskar. Då kom steg 2, att göra om det till en web control/ActiveX. Tanken är att man via en webbsida (asp) ska kunna skicka data till displayen beroende på vad man klickar på. Rensat bort det som knapparna gör då det är onödigt och kvar blev i princip detta:

    Sub SendSerialData(ByVal Disp1, ByVal Disp2)
        Dim Output As String
        Using comport As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM1")
            Output = Chr(12) & Disp1 & Chr(31) & Disp2
            comport.WriteLine(Output)
            comport.Close()
        End Using
    End Sub

Nu är problemet att det blir error här:

My.Computer.Ports.OpenSerialPort

Ports finns inte tillgängligt när man gör det som en webbkontroll. Någon som vet hur jag kan öppna COM-porten via en ActiveX? Det bör ju uppenbarligen gå på något sätt...

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)