Net Send - Messages abfangen - Geht das?



  • @-King-: Danke, aber das hatte ich auch schon rausgefunden. Ich konnte per MailSlot über NetSend etwas versenden. Lief wunderbar. Blieb nur die Frage, wie abfangen. Ich mag halt die MessageBoxes nicht, da man die einkommenden Messages nicht loggen kann. Da ich da keine Lösung gesehen habe, habe ich mir halt mein eigenes MailSlot-Programm zum Versenden von Nachrichten gebaut. Funzt super. Jetzt hapert es nur noch an Details in der Visualisierung.

    @tipp!: Danke, aber das ist mir zu krass. Aber danke trotzdem.



  • Wenn Du versenden kannst, kannst Du doch auch empfangen. Du erstellt den Mailslot so:

    HANDLE hSlot1 = CreateMailslot(TEXT("\\\\.\\mailslot\\messngr"), 0, MAILSLOT_WAIT_FOREVER, NULL);
    

    Du kannst dann das Sample aus dem MSDN 1:1 verwenden. Allerdings bekommst Du aufgrund der in der Message enthaltenen Null-Zeichen nur den Absender der Message in der Box ausgegeben.



  • -King- schrieb:

    Du erstellt den Mailslot so:

    Nein. Da es den MailSlot schon gibt, kann ich ihn auch nicht erstellen. Wenn ich das versuche, bekomme ich INVALID_HANDLE_VALUE zurück.



  • Da Dich die MessageBox sowieso nervt, wirst Du den Dienst doch eh deaktivieren. Und als Ersatz hast Du dann Deine Anwendung.



  • Das hast du etwas missverstanden. Den Dienst finde ich erstmal gut. Nur habe ich ein Programm geschrieben, welches diesen per NetSendBuffer (oder wie die Funktion noch gleich heißt) nutzt (siehe das Programm "NetSend" auf meiner HP). Dabei stört es mich eben, dass ich einkommende Messages nicht loggen kann. Aber das hat jetzt ein Ende. Doof ist nur, dass beim Erstellen eines MailSlots nur Hostnamen angenommen werden, aber keine IP's.



  • Dann deaktivier den Nachrichtendienst einfach und zeig dann selber die MessageBox an. Ob das nun der Nachrichtendienst oder dein Programm macht ist ja dann egal 😃



  • Geht nicht! Wenn man den Nachrichtendienst deaktiviert, gibt es auch den MailSlot nicht mehr.



  • Den Mailslot erstellst Du doch aber in Deiner Anwendung. Wenn der Nachrichtendienst deaktiviert ist, funktioniert der CreateMailslot-Aufruf. Dann kannst Du die Nachrichten anstelle des Originals einfangen.



  • @-King-
    Wenn ein anderer über Mailslot Nachrichten schickt, wird er sie problemlos empfangen, aber das Problem ist, dass er über Net Send keine Nachrichten mehr empfangen kann! Wenn ein anderer über Net Send eine Nachricht schickt, wird diese nicht über Mailslot übertragen! (Derjenige wird ein "Der Nachrichten Alias konnnte auf dem Netzwerk nicht gefunden werden." bekommen)

    @WebFritzi
    So schwer ist es auch net 😉
    Hab dir mal die Links raus gesucht, erst mal zu Miranda-Im und dem Plugin:
    www.miranda-im.org
    http://miranda-im.org/download/details.php?action=viewfile&id=364

    Und hier SourceForge Projekt Homepage des Plugin
    http://sourceforge.net/projects/nsp/

    Es lohnt sich echt, dass anzuschauen! Ich kann dir, wenn du willst, auch ein teils fertiges BCB Projekt per Mail schicken. Teils in der Beziehung, dass nur Empfangen geht und ich glaube auch, dass nur bis 128 Chars empfangen werden können, bei mehr als 128 Chars, muss ma noch mal kleinere Änderungen vornehmen.



  • @Tipp!
    Du bist echt nett, vielen Dank. Aber ich habe soeben mein Programm mit eigenem Mailslot fertiggestellt, und es stellt mich auch zufrieden. Jetzt kann ich einkommende Nachrichten auch loggen - genauso, wie ich es wollte. Ich danke dir trotzdem vielmals - auch für dein Angebot.



  • Kein Problem 🙂



  • Also Leute, ihr habt mir sehr geholfen. Das Programm ist jetzt für's erste fertig und ist auf meiner Homepage unter "Downloads" runterzuladen. Wenn ihr es benutzt, achtet mal genau auf den Maus-Cursor, wenn er sich über dem HOME-Link befindet. 😃


Anmelden zum Antworten