vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Programm über Parameter steuern 
Autor: Maywood
Datum: 20.07.05 19:33

Ok, hier das versprochene (einfache) Beispiel:

App1 (Sender):
'// 
'// Programmname: 
'// SendMessageTest_App1
'// 
 
Option Explicit On 
Option Strict On
 
Public Class Form1
    Inherits System.Windows.Forms.Form
 
#Region " Vom Windows Form Designer generierter Code "
 
    Public Sub New()
        MyBase.New()
 
        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()
 
        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
 
    End Sub
 
    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu 
    ' bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer
 
    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer 
    ' erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.TextBox1 = New System.Windows.Forms.TextBox
        Me.Label2 = New System.Windows.Forms.Label
        Me.Button1 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(8, 40)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(272, 20)
        Me.TextBox1.TabIndex = 4
        Me.TextBox1.Text = ""
        '
        'Label2
        '
        Me.Label2.Location = New System.Drawing.Point(8, 16)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(224, 24)
        Me.Label2.TabIndex = 5
        Me.Label2.Text = "Message"
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(8, 72)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(272, 24)
        Me.Button1.TabIndex = 6
        Me.Button1.Text = "Sende"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(288, 101)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.Label2)
        Me.Controls.Add(Me.TextBox1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.TopMost = True
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
 
    'Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
    '                                                                    ByVal 
    ' hwnd As Int32, _
    '                                                                    ByVal 
    ' wMsg As Int32, _
    '                                                                    ByVal 
    ' wParam As Int32, _
    '                                                                    ByRef 
    ' lParam As Object) As Int32
 
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                                                                            ByV_
                                                                            al _
                                                                            hwn_
                                                                            d A_
                                                                            s I_
                                                                            nt3_
                                                                            2, _
                                                                            ByV_
                                                                            al _
                                                                            wMs_
                                                                            g A_
                                                                            s I_
                                                                            nt3_
                                                                            2, _
                                                                            ByV_
                                                                            al _
                                                                            wPa_
                                                                            ram _
                                                                            As _
                                                                            Int_
                                                                            32, _
                                                                            ByR_
                                                                            ef _
                                                                            lPa_
                                                                            ram _
                                                                            As _
                                                                            COP_
                                                                            YDA_
                                                                            TAS_
                                                                            TRU_
                                                                            CT) _
                                                                            As _
                                                                            Int_
                                                                            32
 
    Public Structure COPYDATASTRUCT
        Public dwData As IntPtr
        Public cbData As Integer
        Public lpData As String
    End Structure
 
    Private Const WM_COPYDATA As Integer = &H4A
 
    Private Function FindOtherProcess() As IntPtr
        Dim p() As Process = Process.GetProcessesByName("SendMessageTest_App2")
        If p.Length < 1 Then Return New IntPtr(-1)
        Return p(0).MainWindowHandle
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim h As IntPtr = FindOtherProcess()
        Dim data As COPYDATASTRUCT
        If h.ToInt32 = -1 Then
            MessageBox.Show("Konnte SendMessageTest_App2 nicht finden..")
            Return
        End If
        Dim msg As String = Me.TextBox1.Text
        data.dwData = New IntPtr(0)
        data.lpData = msg + Chr(0)
        data.cbData = msg.Length
        SendMessage(h.ToInt32, WM_COPYDATA, 0, data)
    End Sub
End Class
App2 (Empfänger):
'// 
'// Programmname: 
'// SendMessageTest_App2
'// 
 
Option Explicit On 
Option Strict On
 
Public Class Form1
    Inherits System.Windows.Forms.Form
 
#Region " Vom Windows Form Designer generierter Code "
 
    Public Sub New()
        MyBase.New()
 
        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()
 
        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
 
    End Sub
 
    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu 
    ' bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer
 
    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer 
    ' erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Label2 = New System.Windows.Forms.Label
        Me.TextBox1 = New System.Windows.Forms.TextBox
        Me.SuspendLayout()
        '
        'Label2
        '
        Me.Label2.Location = New System.Drawing.Point(8, 16)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(224, 24)
        Me.Label2.TabIndex = 9
        Me.Label2.Text = "Message"
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(8, 40)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(272, 20)
        Me.TextBox1.TabIndex = 10
        Me.TextBox1.Text = " "
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(296, 69)
        Me.Controls.Add(Me.TextBox1)
        Me.Controls.Add(Me.Label2)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.TopMost = True
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
 
    Public Structure COPYDATASTRUCT
        Public dwData As IntPtr
        Public cbData As Integer
        Public lpData As String
    End Structure
 
    Private Const WM_COPYDATA As Integer = &H4A
 
    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
 
        If m.Msg = WM_COPYDATA Then
            Dim data As COPYDATASTRUCT
            data = CType(m.GetLParam(data.GetType), COPYDATASTRUCT)
            Me.TextBox1.Text = data.lpData.Substring(0, data.cbData)
        End If
 
        MyBase.WndProc(m)
    End Sub
End Class
Am besten wäre es, du erstellst hierfür zwei Projekte.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Programm über Parameter steuern1.163Hannes H.19.07.05 12:13
Re: Programm über Parameter steuern737Maywood19.07.05 13:16
Re: Programm über Parameter steuern674Hannes H.19.07.05 13:35
Re: Programm über Parameter steuern647Maywood20.07.05 11:29
Re: Programm über Parameter steuern708Hannes H.20.07.05 12:18
Re: Programm über Parameter steuern1.045Maywood20.07.05 19:33
Re: Programm über Parameter steuern714Hannes H.21.07.05 09:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel