![]() |
iexplorer starten und beenden
Hallo,
ich habe ein kleines Problem. Ich möchte den ie nutzen um Radio zu hören. Da ich Ihn aber nicht in der Taskleiste sehen will rufe ich ihn per Createprocess auf. Der folgende Code funktioniert schon ganz gut. Allerdings mit einer Ausnahme: SendMessageTimeout bewirkt kein beenden des Prgramms. Mache ich was falsch, oder liegt das am ie??? Gruß BBB
Delphi-Quellcode:
Procedure TfrmKeyMakro.pmiRadioClick(Sender: TObject);
Var si : TStartUpInfo; DWResult :Dword; Begin { Process_Cmd } If fPi.hProcess = INVALID_HANDLE_VALUE Then Begin FillChar(si, SizeOf(StartupInfo), #0); si.cb := SizeOf(StartupInfo); si.dwFlags := STARTF_USESHOWWINDOW; si.wShowWindow := SW_HIDE; If CreateProcess(Nil, '"C:\Programme\Internet Explorer\iexplore.exe" "http://edge.download.newmedia.nacamar.net/freestream/download/radiohochstift/frameset.html"' , Nil, Nil, False, 0, Nil, Nil, si, fPi) Then Begin pmiRadio.Caption := 'Radio beenden'; End; End Else Begin SendMessageTimeout(fPi.hProcess, WM_CLOSE, 0, 0, SMTO_ABORTIFHUNG Or SMTO_NORMAL, 5000, DWResult); If isWindow(fPi.hProcess) Then TerminateProcess(fPi.hProcess, Cardinal(-1)); fPi.hProcess := INVALID_HANDLE_VALUE; pmiRadio.Caption := 'Radio starten'; End; End; |
Re: iexplorer starten und beenden
SendMessageTimeOut erwartet ein Fensterhandle und kein Prozesshandle.
|
Re: iexplorer starten und beenden
Nimm doch den TWebBrowser und zeite das Fenster nicht an. Du mußt aber mit HandleNeeded eine gültigen Fensterhandle für dein verstecktes Formular sorgen da sonst der IE nicht funktioniert.
|
Re: iexplorer starten und beenden
kann ich denn aus dem Prozesshandle das Fensterhandle ermitteln?
|
Re: iexplorer starten und beenden
|
Re: iexplorer starten und beenden
Aus der Hüfte geschossen: Du könntest mit EnumWindows alle Fenster durchgehen, in der Callback-Funktion mit GetWindowThreadProcessId die zugehörige ProzessId ermitteln und mit Deiner vergleichen. Bei Übereinstimmung dann einfach die Message schicken. Ist aber wie gesagt nur ein erster Gedanke und nicht getestet. Alternative hat Bernhard ja gerade beschrieben.
[edit] :lol: Den Gedanken hatte ich wohl nicht alleine [/edit] |
Re: iexplorer starten und beenden
ok, danke: ich habs jetzt so gelöst:
Delphi-Quellcode:
Funzt wie es soll. Und danke auch noch mal auf den Hinweis mit HandleNeeded! Da hätte ich sonst bestimmt ewigkeiten nach gesucht.
If assigned(fwb) Then
Begin FreeAndNil(fwb); pmiRadio.Caption := 'Radio starten'; End Else Begin fwb := TWebBrowser.Create(Self); TWinControl(fwb).Name := 'RadioWebBrowser'; TWinControl(fwb).Parent := Self; fwb.HandleNeeded; fwb.Navigate('http://edge.download.newmedia.nacamar.net/freestream/download/radiohochstift/frameset.html'); pmiRadio.Caption := 'Radio beenden'; End; |
Re: iexplorer starten und beenden
Zitat:
Zitat:
|
Re: iexplorer starten und beenden
Nun zumindest werde ich heute abend eins auf Dein Wohl trinken.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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