![]() |
EASYcomm - grafisches Netsend
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
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. :evil: |
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
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 |
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. |
Falls es interessiert - ich nutze folgende Funktion zum Senden über Mailslots:
Delphi-Quellcode:
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.
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; MfG Hitzi [edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit] |
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz