AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

iexplorer starten und beenden

Ein Thema von Bomberbb · begonnen am 4. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#1

iexplorer starten und beenden

  Alt 4. Feb 2010, 12:26
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:01
SendMessageTimeOut erwartet ein Fensterhandle und kein Prozesshandle.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:17
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#4

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:19
kann ich denn aus dem Prozesshandle das Fensterhandle ermitteln?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:21
Zitat von Bomberbb:
kann ich denn aus dem Prozesshandle das Fensterhandle ermitteln?
Ja
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:22
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] Den Gedanken hatte ich wohl nicht alleine [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#7

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:43
ok, danke: ich habs jetzt so gelöst:
Delphi-Quellcode:
  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;
Funzt wie es soll. Und danke auch noch mal auf den Hinweis mit HandleNeeded! Da hätte ich sonst bestimmt ewigkeiten nach gesucht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:46
Zitat von Bomberbb:
ok, danke: ich habs jetzt so gelöst:     TWinControl(fwb).Name := 'RadioWebBrowser';
Diese Zeile ist unnötig

Zitat von Bomberbb:
Funzt wie es soll. Und danke auch noch mal auf den Hinweis mit HandleNeeded! Da hätte ich sonst bestimmt ewigkeiten nach gesucht.
Kannst mir ja ein (virtuelles) Bier ausgeben
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#9

Re: iexplorer starten und beenden

  Alt 4. Feb 2010, 13:51
Nun zumindest werde ich heute abend eins auf Dein Wohl trinken.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz