Ereignis auslösen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Clipper
Beiträge: 30
Registriert: 24.12.2004 06:47
Wohnort: NRW

Ereignis auslösen

Beitrag 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?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Clipper
Beiträge: 30
Registriert: 24.12.2004 06:47
Wohnort: NRW

Beitrag 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?
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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:
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
Clipper
Beiträge: 30
Registriert: 24.12.2004 06:47
Wohnort: NRW

Beitrag 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?
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag 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
Benutzeravatar
Clipper
Beiträge: 30
Registriert: 24.12.2004 06:47
Wohnort: NRW

Beitrag von Clipper »

@Didelphodon

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