Hallo Leute,
ich habe eine DLL in Office-Word integriert die mit einer Delphi-Applikation über UDP kommuniziert, d.h. es wird nach einem Klick auf einen Button in Word _einmal_ WSocket.SendStr aufgerufen.
Dabei wird der String "EMAIL:" + Dokumentname gesendet.
Das hat bisher einwandfrei gefunkt. Jetzt aber das seltsame.
Nach einer kompletten Neuinstallation meines Rechners sendet SendStr _IMMER_ genau drei mal.
Ein Einfügen von Sleep() mit verschiedenen Zeitabständen nach dem SendStr hat keinerlei Auswirkungen darauf.
Wie kann ich verhindern das SendStr mehrfach den gleichen String sendet?
Der Socket wird in der DLL einmal erstellt und beim schliessen von Word wieder befreit.
Die Sende-Funktion sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure T.CommandBarButtonClick(const Ctrl: CommandBarButton; var CancelDefault: WordBool); var WApp : TWordApplication; begin WApp := TWordApplication.Create(nil); WApp.Connect; WSocket.Close; WSocket.Proto := 'udp'; WSocket.Addr := '255.255.255.255'; WSocket.Port := '600'; WSocket.LocalPort := '0'; WSocket.Connect; Sleep(200); WSocket.SendStr('EMAIL:'+WApp.ActiveDocument.Name); WApp.free; end; |