Hallo Toni,
dank dem C# Beispiel von Grooooog ist auch bei mir der „Knoten“ geplatzt.
Ich habe alles ausprobiert und es funktioniert zu 100%.
In meinem Beispiel kann man nun auch alles im Debug-Modus starten.
An Anfang muss noch ein Import eingefügt werden:
Imports System.Runtime.InteropServices
Hier die Ein-/Anbindung der Funktionen der dll.
<DllImport("TRIXI.dll")> _
Private Shared Function Connect(ByVal IP As String, ByVal Port As Integer) As Boolean
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function Disconnect() As Boolean
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function IsOnline() As Boolean
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function WriteString(ByVal VariableID As Integer, ByVal Value As String) As Integer
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function WriteInteger(ByVal VariableID As Integer, ByVal Value As Integer) As Integer
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function WriteFloat(ByVal VariableID As Integer, ByVal Value As Double) As Integer
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function WriteBoolean(ByVal VariableID As Integer, ByVal Value As Boolean) As Integer
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function ReadString(ByVal VariableID As Integer) As String
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function ReadInteger(ByVal VariableID As Integer) As Integer
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function ReadFloat(ByVal VariableID As Integer) As Double
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function ReadBoolean(ByVal VariableID As Integer) As Boolean
End Function
<DllImport("TRIXI.dll")> _
Private Shared Function RunScript(ByVal ScriptID As Integer) As Integer
End Function
Nutzung in VB.NET
Private Sub btConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btConnect.Click
If Connect(tbIP.Text, 3773) Then
MessageBox.Show("Connected")
Else
MessageBox.Show("Connection failed")
End If
End Sub
Private Sub tbDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbDisconnect.Click
Disconnect()
End Sub
Private Sub btSendString_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSendString.Click
WriteString(tbWSID.Text, tbWriteString.Text)
End Sub
Private Sub btReceiveString_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btReceiveString.Click
tbWriteString.Text = ReadString(tbWSID.Text)
End Sub
Private Sub btSendInteger_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSendInteger.Click
Dim SendInteger As Integer
SendInteger = Integer.Parse(tbWriteInteger.Text)
WriteInteger(tbWIID.Text, SendInteger)
End Sub
Private Sub btReceiveInteger_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btReceiveInteger.Click
tbWriteInteger.Text = ReadInteger(tbWIID.Text)
End Sub
Private Sub btIsOnline_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btIsOnline.Click
If IsOnline() Then
MessageBox.Show("Is Online!!")
Else
MessageBox.Show("Is Offline!!")
End If
End Sub
Private Sub btSendFloat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSendFloat.Click
Dim SendFloat As Double
SendFloat = Double.Parse(tbWriteFloat.Text)
WriteFloat(tbWFID.Text, SendFloat)
End Sub
Private Sub btReceiveFloat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btReceiveFloat.Click
tbWriteFloat.Text = ReadFloat(tbWFID.Text)
End Sub
Private Sub btSendBoolean_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSendBoolean.Click
WriteBoolean(tbWBID.Text, cbBoolean.Checked)
End Sub
Private Sub tbReceiveBoolean_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbReceiveBoolean.Click
cbBoolean.Checked = ReadBoolean(tbWBID.Text)
End Sub
Private Sub btRunScript_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btRunScript.Click
RunScript(tbRSID.Text)
End Sub
Im Anhang ist das Projekt zum spielen.
Besten Dank nochmal für die TRIXI.dll.
Hat halt bei mir etwas länger gedauert.
Meine VB Kenntnisse waren doch etwas eingerostet. :o
@Grooooog
Besten Dank für dein C# Beispiel. War letzten Endes die Initialzündung.
Bis dann
Martin