Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

seltsames Problem mit Messages unter w2k

  Alt 6. Jun 2005, 14:55
Ich hab ein Programm, welches mit einer Hilfsapplikation über Messages (SendMessageTimeout) kommuniziert. Das ganze läuft seit jahren auf zahlreichen PC's (Win9.x, 2000, XP)...
Heute hab ich bei einem Kunden mit Windows2000 ein seltsames Problem. Sobald mein Hauptprogramm eine Message sendet hängt es, obwohl ich zum Senden einen Timeout von max 5 Sekunden festgelegt habe . Das Problem habe ich, wie gesagt, noch nie gehabt und weiss daher im Moment nicht was unter Windows das versenden der Messages behindern könnte bzw. warum der Timeout nicht funktioniert ?

Das es an den Messages hängt, kann man sehr gut sehen... sobald ich das Hilfsprogramm über den Taskmanager abschiesse reagiert das Hauptprogramm wieder normal...

Delphi-Quellcode:
procedure TMainApp_Main.MySendHelperApp(MyMessage: string; TimeOut: cardinal);
var
  MyCopyDataStruct: TCopyDataStruct;
  hTargetWnd: HWND;
  result: cardinal;
begin
  hTargetWnd := 0;
  with MyCopyDataStruct do
  begin
    dwData := 0; // may use a value do identify content of message
    cbData := StrLen(PChar(MyMessage)) + 1;
    lpData := PChar(MyMessage)
  end;
  hTargetWnd := FindWindow(PChar('THelperApp_Main'), nil);
  if hTargetWnd <> 0 then
  begin
    CCursor := Screen.Cursor;
    Screen.Cursor := crHourGlass;
    SendMessageTimeout(hTargetWnd, WM_COPYDATA, Longint(Handle),
      Longint(@MyCopyDataStruct), SMTO_ABORTIFHUNG, TimeOut, result);
    Screen.Cursor := CCursor;
  end;
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat