Seite 1 von 1

Ereignis auslösen

Verfasst: 27.12.2004 18:07
von Clipper
Hallo,
ich habe eine DLL geschrieben, die Mail verschickt. Da dieser Prozess u.U. lange dauern kann, möchte ich in dem die DLL nutzenden Programm dem User zeigen, dass der Sendevorgang noch andauert (z.B. über
einen Progressbar). Wie kann ich dies am besten bewerkstelligen?

Verfasst: 27.12.2004 18:50
von bluejoke
Ein komplizierte Weg is das Zeugs mit den COM-Objekten, die ich übrigens nicht kapiere.

Auf Freaks Site gibts ein Beispiel (es geht um ein Prozessgadget bei einem Download): http://freak.purearea.net
Zu finden unter der Rubrik "Help"


Achja, es ist Englisch....


Simon

Verfasst: 27.12.2004 19:24
von Clipper
Danke für den Tipp!

Ich habe kurz über den Code geschaut. Respekt!
Offensichtlich funktioniert es über SendMessage(...
Freak bohrt an URLDownloadToFile_(...). Auf die Funktion selbst hat er keinen Einfluss.
Da müsste ich es doch leichter haben indem ich "einfach"
Messages aus der DLL abschicke, die im Hauptprogramm abgefangen werden können - oder?

Verfasst: 27.12.2004 23:14
von Lars
Ich weiß ja nicht, wie du Mail verschickst. Aber wenn du das von Hand mit
den PB-Commands machst, dann kannst du ja einfach die Mail z.B. in 20
KB Blöcke schneiden und dann mit ein bisschen Dreisatz verschicken :wink:

Verfasst: 28.12.2004 08:09
von Clipper
Ich verschicke die Mail per Userlib, sonst währe es kein Problem den Status anzuzeigen.

Inzwischen habe ich es per "SendMessage_(..." gelöst!
Funktioniert prima.

Ich bin nur etwas unsicher, welche MessageID ich vergeben darf.
Die ID wird ja in der Userlib "hart codiert". Wenn ich schreibe:
SendMessage(g_hwnd.l,#WM_USER+1,@bytessent,@msg.s)
dann könnte es ja theoretisch zu einem Konflikt mit anderen Nachrichten kommen, die dieselbe ID benutzen.

Welche MessageID nimmt man am besten?

Verfasst: 28.12.2004 09:21
von Didelphodon
Du musst dir natürlich eine neue Message registrieren.

Das machst Du zum Beispiel so:

Meine_Neue_MessageID = RegisterWindowMessage_("Zweck")

... und die verwendest Du dann.

LG Didelphodon

Verfasst: 28.12.2004 14:56
von Clipper
@Didelphodon

Danke für den Tipp! - Ist schon eingebaut.