Autor Beitrag
Nostromo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33
Erhaltene Danke: 1

Win 7 Pro 64bit, Win XP SP3
Delphi 7 Ent
BeitragVerfasst: So 02.03.08 14:15 
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:

ausblenden 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';     { That's a broadcast  ! }
  WSocket.Port       := '600';
  WSocket.LocalPort  := '0';
  WSocket.Connect;
  Sleep(200);
  WSocket.SendStr('EMAIL:'+WApp.ActiveDocument.Name);
  WApp.free;
end;
MarkusD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: So 02.03.08 14:27 
hallo,

Es kann daran liegen, dass du mehrere Netzwerkverbindungen auf dem PC konfiguriert hast.

Ich hatte zB. einmal das Problem, dass ich Hamachi installiert hatte und dadurch 2 Mal eine UPD Message bekommen habe. Versuche mal andere Netzwerkverbindungen in den Systemsteuerungenn zu deaktivieren.

Markus
Nostromo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33
Erhaltene Danke: 1

Win 7 Pro 64bit, Win XP SP3
Delphi 7 Ent
BeitragVerfasst: So 02.03.08 14:33 
Also auf die Idee wär ich ja nie gekommen. Du hast recht. Ich habe tatsächlich insgesamt 3 aktive LAN-Adapter.
Dabei sind 2 LAN-Adpater durch die Installation von VMWare hinzugekommen, die Software war vor der Neuinstallation nicht vorhanden.

Habe jetzt einen Test des gesendeten Befehlstrings in die Applikation eingebunden. Bei gleichem Inhalt wird die Ausführung einfach verhindert. Das reicht für das jetzige Projekt dicke aus.

Vielen Dank für den Tipp.

gruß
Jürgen