SendMessage ?

ANSI Lady

Grünschnabel
Hallo liebe Forummitglieder,
ich habe auch ein "Problem" mit diesem Sendmessage.
Vielleicht ist hier jemand so nett und kann mir weiterhelfen

[Nils Hitze] Thema geteilt : http://www.tutorials.de/forum/showthread.php?s=&threadid=146897 [/Nils Hitze]

Ich programmiere seit kurzem erst auf Windows, zudem mit VB... Ein Bekannter von mir proggrammiert seit Jahren beruflich, aber nur mit Delphi.
Wir haben nun ein Programm entworfen und ich würde nun gerne an seinen Programmteil eine Nachricht schicken.

Das Fensterhandle seiner Anwendung bekomme ich mittels des Codes vom vb@rchiv :
http://www.vbarchiv.net/archiv/tipp_details...

...und habe dann so weitergemacht :

Code:
Const WM_XYZ_RESCAN = "WM_XYZ_RESCAN"

lngHWnd = IsEXERunning("xyz.exe", Handle)
If lngHWnd <> 0 Then
SendMessage CStr(lngHWnd), WM_XYZ_RESCAN, 0, 0
End If

Leider passiert aber überhaupt nichts.
Er hat das selbe mit Delphi gemacht was dann so aussieht und zudem noch wunderbar funktioniert :

Code:
procedure TForm1.Send(cmd, param:Longint);
begin
   PostMessage(FindWindow(nil,'xyz'),cmd,param,0);
end;

Send(WM_XYZ_RESCAN,0);

WM_XYZ_RESCAN := RegisterWindowMessage('WM_XYZ_RESCAN');

Wie man sieht erwartet er nur die Zeichenkette 'WM_XYZ_RESCAN'.
Vielleicht überrsehe ich ja was und würde mich daher freuen wenn sich hier jemand mein Problem mal anschaut.

Vielen Dank schon mal im vorraus,
Gruß && :kiss:
ANSI
 
Zuletzt bearbeitet:
Na gut....
Danke an all die helfenden, das Problem hat sich gelöst...

Code:
option explicit

Public Const WM_XYZ_RESCAN = "WM_XYZ_RESCAN"

Private Declare Function RegisterWindowMessage Lib "user32" Alias _
  "RegisterWindowMessageA" (ByVal lpString As String) As Long

Private Declare Function FindWindow Lib "user32" _
        Alias "FindWindowA" (ByVal lpClassName _
        As String, ByVal lpWindowName As String) _
        As Long
                                       
Private Declare Function PostMessage Lib "user32" _
   Alias "PostMessageA" _
   (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   ByVal lParam As Long) As Long

Public Function WM_CHANGENOTIFY() As Long
    Static msg As Long
      If msg = 0 Then
            msg = RegisterWindowMessage(WM_XYZ_RESCAN)
      End If
     WM_CHANGENOTIFY = msg
     End Function

Private Sub Form_Load()
    xhWnd = FindWindow(vbNullString, "Anwendung")
    PostMessage xhWnd, WM_CHANGENOTIFY, 0, 0
End Sub

Gruß && :kiss:
ANSI
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück