vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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

Fortgeschrittene Programmierung
Re: Sendmessagenachrichten empfangen 
Autor: Philipp13
Datum: 18.07.06 15:59

Danke, hab das Problem gelöst. Falls es einer auch machen möchte, mein Quellie:
'Private Declare Function FindWindow Lib "user32" Alias _
'        "FindWindowA" (ByVal lpClassName As String, ByVal _
'        lpWindowName As String) As Long
 
Private Declare Sub CopyMemory Lib "kernel32" Alias _
        "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, _
        ByVal cbCopy As Long)
 
Private Declare Function SendMessage Lib "user32" Alias _
         "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
         ByVal wParam As Long, lParam As Any) As Long
 
Private Declare Function CallWindowProc Lib "user32" Alias _
         "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal _
         hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
         ByVal lParam As Long) As Long
 
Public Declare Function SetWindowLong Lib "user32" Alias _
        "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As _
        Long, ByVal dwNewLong As Long) As Long
 
Private Type COPYDATASTRUCT
    dwData As Long
    cbData As Long
    lpData As Long
End Type
 
Const GWL_WNDPROC As Long = -4&
Const WM_COPYDATA As Long = &H4A
Dim PrevWndProc As Long
 
Public Sub Init(hwnd As Long)
    PrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
 
Public Sub Terminate(hwnd As Long)
    Call SetWindowLong(hwnd, GWL_WNDPROC, PrevWndProc)
End Sub
 
Public Function SendData(HWnd2 As Long, ByVal WindowName As String, Data As _
  String) As Boolean
    Dim DesthWnd As Long, B(0 To 255) As Byte
    Dim CD As COPYDATASTRUCT
 
    If Data = "" Then Exit Function
 
    DesthWnd = FindWindow(vbNullString, WindowName)
    If DesthWnd = 0 Then
        SendData = False
    Else
        CD.dwData = 1
        Call CopyMemory(B(0), ByVal Data, Len(Data))
        CD.cbData = Len(Data) + 1
        CD.lpData = VarPtr(B(0))
 
        Call SendMessage(DesthWnd, WM_COPYDATA, HWnd2, CD)
        SendData = True
    End If
End Function
 
 
 
Private Function WindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam _
  As Long, ByVal lParam As Long) As Long
 
    If Msg = WM_COPYDATA Then
        Dim aa As String, B(0 To 255) As Byte
        Dim CD As COPYDATASTRUCT
 
        Call CopyMemory(CD, ByVal lParam, Len(CD))
 
        Select Case CD.dwData
        Case 1
            Call CopyMemory(B(0), ByVal CD.lpData, CD.cbData)
            aa = StrConv(B, vbUnicode)
            aa = Left$(aa, InStr(1, aa, Chr$(0)) - 1)
            BefehlEmpfangen aa
        End Select
    End If
 
    WindowProc = CallWindowProc(PrevWndProc, hwnd, Msg, wParam, lParam)
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Sendmessagenachrichten empfangen799Philipp1308.07.06 15:35
Re: Sendmessagenachrichten empfangen593Philipp1318.07.06 15:59

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