Hallo ihr Kundigen,
ich habe ein kleines Problem: Ich habe ein Programm geschrieben, das ein Formular mit einer Webbroser Komponente enthält, über die ich eine https:// Seite aufrufe um Meldungen an Prowl (pushed Nachrichten an das iPhone) zu senden.
Unter anderem möchte ich dabei gerne auch eine Nachricht senden, wenn mein Programm beendet wird (egal, ob über einen Beenden-Button oder durch Herunterfahren des Rechners). Zum Versand einer Nachricht rufe ich die Routine SendProwlMessage auf, was auch ganz prima funktioniert, zumindest, solange das Programm nicht beendet wird.
Wird es jedoch beendet, so rufe ich ebenfalls die Routine SendProwlMessage('Programm wird beendet') in TForm1.FormDestroy auf. Leider wird keine Meldung mehr ausgegeben, ich vermute, weil die Webbrowserkomponente schon beendet wurde?
Was kann ich tun?
MfG
A. Pieroth
Delphi-Quellcode:
function TProwlPushForm.WaitForBrowser(WB: TWebbrowser; TimeOut: Integer = 8000): Boolean;
var
StartTime, EndTime: DWORD;
begin
Result := False;
StartTime := GetTickCount;
repeat
Application.ProcessMessages;
EndTime := GetTickCount;
until (WB.ReadyState = READYSTATE_COMPLETE) or (Application.Terminated) or (EndTime - StartTime > TimeOut);
Result := WB.ReadyState = READYSTATE_COMPLETE;
end;
procedure TProwlPushForm.SendProwlMessage(Nachricht: string);
var s: string;
begin
ProwlApi.apikey:= settings.ProwlApiKey;
ProwlApi.priority:='0';
ProwlApi.application:= settings.ProwlApplication;
ProwlApi.event:= settings.ProwlEvent;
s:= ProwlUrl+'add?apikey='+ProwlApi.apikey+'&priority='+ProwlApi.priority+'&application='
+ProwlApi.application+'&event='+ProwlApi.event+'&description='+utf8encode(Nachricht);
WebBrowser1.Navigate(s);
WaitForBrowser(WebBrowser1, 5000);
end;