AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte EASYcomm - grafisches Netsend
Thema durchsuchen
Ansicht
Themen-Optionen

EASYcomm - grafisches Netsend

Ein Thema von hitzi · begonnen am 28. Mai 2003 · letzter Beitrag vom 28. Mai 2003
Antwort Antwort
Benutzerbild von hitzi
hitzi
Registriert seit: 2. Jan 2003
Hallo,


heut möchte ich mal ein kleines Tool von mir vorstellen. Dabei handelt es sich um den Netsend Clone EASYcomm.

Nach dem ersten Start läuft das Programm in den Minimalkonfiguration -> STRG - E für die Einstellungen.

Die EASYcomm Erweiterung nutzt TCP für die Nachrichtenübermittlung.

Bekannte Bugs:

Nachricht an bestimmte IP funktioniert in unserem Netzwerk nicht.
Bei Nutzung des eigenen Messagedienst findet das orginal "net send" den Computer, auf dem der eigene Messagedienst läuft, nicht mehr.


Getestet auf WinNT4, Win2000, WinXP.


So nun schreibt mir fleißig eure Verbesserungswünsche, Bugs, etc ....


MfG Hitzi
Angehängte Dateien
Dateityp: zip easycomm.zip (288,0 KB, 32x aufgerufen)
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#2
  Alt 28. Mai 2003, 12:48
Sieht ganz schick aus, nur funktionieren tut es bei mir nicht. Wenn ich an 127.0.0.1 sende müßte ich selber die Nachricht bekommen. Tue ich aber nicht, obwohl dein Programm steif und fest behauptet die Nachricht wurde versandt, obwohl das gar nicht stimmt.
Mit dem "eigenen Nachrichtendienst" (was auch immer das sein mag) geht es auch nicht.

Wenn ich den Netzwerktreeview nach Computer sortiere, gehen die selbst eingetragenen IPs verloren.

Und das nöächste mal bitte einen Hinweis wo dein Programm Müll in der Registry hinterläßt.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

 
Delphi 2010 Professional
 
#3
  Alt 28. Mai 2003, 13:07
Zitat von Luckie:
Wenn ich an 127.0.0.1 sende müßte ich selber die Nachricht bekommen.
Hatte ich oben schon angesprochen. ->
Zitat von hitzi:
Bekannte Bugs:

Nachricht an bestimmte IP funktioniert in unserem Netzwerk nicht.
Sieht wohl so aus, als ob das nicht an unseren Netzwerk liegt, sondern generell nicht funktioniert?!


Zitat von Luckie:
Mit dem "eigenen Nachrichtendienst" (was auch immer das sein mag) geht es auch nicht.
Ist im eigentlichen Sinne kein Nachrichtendienst. Diese Funktion schaltet den "Nachrichten" Dienst von Windows (Messenger Dienst) ab und richtet einen eigenen Mailslot (messgnr) ein. Diese ganze Funktion beeinflusst nicht das Senden. Sie nur dazu da die Netsendmeldungen in einen eigenen Fenster darzustellen. (Hauptgrund war die fehlende Möglichkeit den Text einer empfangenen Netsend zu kopieren - außer über das Ereignisprotokol)

Zitat von Luckie:
Wenn ich den Netzwerktreeview nach Computer sortiere, gehen die selbst eingetragenen IPs verloren.
Notiert ... Wird in der nächsten Version behoben sein.

Zitat von Luckie:
obwohl dein Programm steif und fest behauptet die Nachricht wurde versandt, obwohl das gar nicht stimmt.
Das ist das Problem bei den Mailslots. Es gibt keine Bestätigung, dass eine Nachricht den Empfänger erreicht hat. Deine Nachricht wurde versandt (Meldung ist korrekt), ich habe da aber noch ein Problem mit der richtigen IP Übergabe an die Mailslot Funktion (denke ich ... ). So landet deine Nachricht im digitalen Nirvana.

Zitat von Luckie:
Und das nöächste mal bitte einen Hinweis wo dein Programm Müll in der Registry hinterläßt.
Alle einträge sind unter
HKEY_CURRENT_USER\Software\EASYcomm\2.0
zu finden. Werde in der folgenden Version die Möglichkeit einbauen diesen Schlüssel wieder zu löschen.

Weiterhin legt das Programm im Standardprogrammordner das Verzeichnis EASYcomm an, wo die Nachrichten Logs gespeichert werden.



MfG Hitzi
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#4
  Alt 28. Mai 2003, 13:24
Komisch, mit meinem NetSend kann ich an die IP 127.0.0.1 senden. Die Bestätigung kam aber auch bei verwendung des Nachrichtendienstes.

Mein Netsend fidest du auf meiner Homepage, probier den doch mal bei euch aus.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

 
Delphi 2010 Professional
 
#5
  Alt 28. Mai 2003, 13:34
Falls es interessiert - ich nutze folgende Funktion zum Senden über Mailslots:

Delphi-Quellcode:
function Netsend(Server, Reciever, Sender, Msg : String) : Boolean;

  function SendToMailSlot(Server, Slot, Data : String) : Boolean;
  var hToSlot : THandle;
      BytesWritten : DWord;
  begin
    Result := False;
    hToSlot := CreateFile(PChar('\\' + Server + '\mailslot\' + Slot), GENERIC_WRITE,
                                FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
    if hToSlot = INVALID_HANDLE_VALUE then Exit;
    try
      BytesWritten := 0;
      if (not WriteFile(hToSlot, Pointer(pchar(Data))^, length(Data), BytesWritten,nil)) or (BytesWritten <> dword(length(Data))) then Exit;
      result := True;
    finally
      CloseHandle(hToSlot);
    end;
    sleep(5);
  end;

var j : integer;
    sDummy, sOld : string;

begin
  if length(msg) > 128 then begin
    sOld:=msg;
    while length(sOld) > 128 do begin
      sDummy := ReverseString(copy(sOld, 1, 128));
      j := pos(' ', sDummy);
      if j > 0 then
        sOld := ReverseString(copy(sDummy, 1, j-1)) + copy(sOld, 129, length(sOld))
      else
        sOld := copy(sOld, 129, length(sOld));
      Result := SendToMailSlot(Server, sc_Mailslot, Sender + #0 + Reciever + #0 +
                               ReverseString(copy(sDummy, j+1, length(sDummy))));
    end;
    Result := SendToMailSlot(pchar(Server), sc_Mailslot, Sender + #0 + Reciever + #0 + sOld);
  end else if length(msg) > 0 then
    Result := SendToMailSlot(Server, sc_Mailslot, Sender + #0 + Reciever + #0 + msg)
  else result := true;
end;
Ob der Fehler (IP) in dieser Funktion liegt oder im Aufruf kann ich zum jetzigen Zeitpunkt noch nicht sagen. Bin gerade noch an einem anderen Projekt dran.

MfG Hitzi

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Thomas
  Mit Zitat antworten Zitat
MathiasSimmack
 
#6
  Alt 28. Mai 2003, 19:03
Der Fehler liegt daran (bzw. darin), dass unter NT nicht zwangsläufig ein Mailslot benutzt wird. Insbesondere dann, wenn der Empfänger ein Benutzername ist. "net send" und WinPopup (Win9x) benutzen neben dem Mailslot noch eine zusätzliche Variante. ... Hm, ich wusste sogar mal wie die heißt, weil auch ich -vor mehr als 2 Jahren!- ein eigenes Nachrichtentool für Win9x/NT/... geschrieben habe.

Außerdem muss -wenn das eigene Programm "net send"-kompatibel sein soll!- der Mailslot den Namen messngr tragen. Kann sein, dass das bei dir der Fall ist. Es geht aus dem geposteten Code nur nicht hervor.
Benutzt das eigene Programm einen eigenen Mailslot-Namen, dann muss das selbe Programm logischerweise auch auf den anderen Rechnern laufen, sonst kommt die Nachricht natürlich nicht an.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz