Feedback

VB - String von einer Instanz zur anderen senden

Veröffentlicht von am 10/15/2006
(1 Bewertungen)
Mit dieser Klasse kann man einen Text von einer Instanz eines Programmes zu einer anderen Instanz senden
Dabei muss die Zielinstanz den Handle eines Controls (z.B. eine TextBox) in einer Datei speichern (mit der "WriteHandle" Funktion).
Die Instanz die den Text senden will muss dann dieses Handle aus der Datei auslesen (mit der "ReadHandle" Funktion) um den Text dann zu senden.
Imports System.IO

''' <summary>
''' Mit dieser Klasse kann man einen Text von einer Instanz eines Programmes zu einer anderen Instanz senden
''' Dabei muss die Zielinstanz den Handle eines Controls (z.B. eine TextBox) in einer Datei speichern (mit der "WriteHandle" Funktion).
''' Die Instanz die den Text senden will muss dann dieses Handle aus der Datei auslesen (mit der "ReadHandle" Funktion) um den Text dann zu senden.
''' </summary>
''' <remarks>Copyright © 2006 Tim Hartwig</remarks>
Public Class clsSendText
    Private Declare Ansi Function IsWindow Lib "user32.dll" ( _
        ByVal hWnd As Integer) _
    As Integer

    Private Declare Ansi Function SendMessage Lib "user32" Alias "SendMessageA" ( _
        ByVal hWnd As Integer, _
        ByVal wMsg As Integer, _
        ByVal wParam As Integer, _
        ByVal lParam As String) _
    As Integer

    Private Const WM_SETTEXT As Integer = &HC

    ''' <summary>
    ''' Diese Funktion schreibt das Handle eines Controls welchen den Text empfangen soll in eine Datei.
    ''' Die Instanz die den Text senden soll muss dann dieses Handle mit der "ReadHandle" Funktion auslesen.
    ''' </summary>
    ''' <param name="Handle">Das Handle des Controls wie z.B. einer TextBox</param>
    ''' <param name="Path">Den Pfad der Datei in dem das Handle gespeichert werden soll</param>
    Public Sub WriteHandle(ByVal Handle As System.IntPtr, ByVal Path As String)
        File.WriteAllText(Path, Handle.ToString)
    End Sub

    ''' <summary>
    ''' Diese Funktion ließt ein Handle aus einer Datei und gibt diesen als IntPtr zurück.
    ''' Dieses Handle wird benötigt um einen Text an die Zielinstanz zu schicken.
    ''' </summary>
    ''' <param name="Path">Der Pfad der Datei in der sich der Handle-Wert befindet</param>
    Public Function ReadHandle(ByVal Path As String) As System.IntPtr
        Return New System.IntPtr(CInt(File.ReadAllText(Path)))
    End Function

    ''' <summary>
    ''' Diese Funktion sendet den Text zum Control der Zielinstanz
    ''' </summary>
    ''' <param name="Handle">Das Handle des Controls der Zielinstanz an welches der Text gesendet werden soll</param>
    ''' <param name="Text">Der Text der gesendet werden soll</param>
    Public Sub SendText(ByVal Handle As System.IntPtr, ByVal Text As String)
        If Handle <> 0 And IsWindow(Handle) <> 0 Then
            SendMessage(Handle.ToInt32, WM_SETTEXT, 0, Text)
        End If
    End Sub
End Class

Abgelegt unter SendMessage.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!