AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Browser Via Delphi aktualisieren/
Thema durchsuchen
Ansicht
Themen-Optionen

Browser Via Delphi aktualisieren/

Ein Thema von sentinel81 · begonnen am 30. Jul 2009 · letzter Beitrag vom 16. Aug 2009
 
sentinel81

Registriert seit: 20. Mär 2007
3 Beiträge
 
#1

Browser Via Delphi aktualisieren/

  Alt 30. Jul 2009, 17:36
Moin!
Ich habe für einen Infomonitor ein kleines Programm geschrieben, welches einen Browser neu laden soll und wenn er nicht gestartet ist, starten soll.
Da Chrome der einzige Browser ist, der auf Tastendrücke per PostMessage reagiert, habe ich mich entschlossen Chrome zu nehmen.
(Falls jemand einen Vorschlag hat, wie das mit Opera oder Firefox funkionieren könnte, würde ich das auch sehr begrüßen )

Allerdings habe ich auch mit Chrome einige Probleme:
1. Chrome muss den Fokus wiederbekommen, bevor er ein 2. mal F5 gesendet werden kann. Leider habe ich nicht hinbekommen den Fokus auf Chrome zu setzen. Meine Recherchen haben ergeben, dass die mit ShowWindow gehen sollte, leider hab ich es nicht hinbekommen.
2. Nach dem Start soll Chrome in den Vollbildmodus gebracht werden, was mit einem Senden von F11 funktioniert.
Wenn dies während des laufenden Programms geschieht - kein Problem. Leider wird diese Funktion bei FormCreate aufgerufen und dort funktioniert es nicht mehr so einfach. Wenn man vorher ShowMessage('Vollbildmodus wird gestartet') Aufruft und dies bestätigt funktioniert es wieder.
Leider hat Chrome keinen Startparameter, mit dem man es im Vollbildmodus starten könnte.

Hat jemand eine Idee woran es liegen könnte? Mit wartezeiten habe ich auch schon ein wenig experimentiert, hat aber nichts gebracht.

Hier nochmal der gesamte Code:


Delphi-Quellcode:
procedure TFChrome.FormCreate(Sender: TObject);
var
  HFenster: HWND;
  sHTML: string;
  boChrome: Boolean;
  boMeldung : Boolean;
  iWartezeit1,iWartezeit2,iWartezeit3 : Integer;
  SLEinstellungen : TStringList;
begin
  SLEinstellungen := TStringList.Create;
  try
    SLEinstellungen.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'chrome.cfg');
    if SLEinstellungen[0] = '1then
      boMeldung := True
    else
      boMeldung := False;
    iWartezeit1 := 500;
    iWartezeit2 := 500;
    iWartezeit3 := 500;
    TryStrToInt(SLEinstellungen[1],iWartezeit1);
    TryStrToInt(SLEinstellungen[2],iWartezeit2);
    TryStrToInt(SLEinstellungen[3],iWartezeit3);

  finally
    SLEinstellungen.Free
  end;
  HFenster := FindWindow('Chrome_WidgetWin_0',0);
  sHTML := '"' + ExtractFilePath(ParamStr(0)) + '..\infodisplay.html' + '"';
  if HFenster = 0 then
  begin
    boChrome := True;
    if FileExists(GetEnvironmentVariable('appdata')+'\..\Local\Google\Chrome\Application\chrome.exe') then
      ShellExecute(Application.Handle,nil,PChar(GetEnvironmentVariable('appdata')+'\..\Local\Google\Chrome\Application\chrome.exe'),PChar(sHTML),'',SW_SHOW)
    else
      if FileExists(GetEnvironmentVariable('temp') + '\..\Anwendungsdaten\Google\Chrome\Application\chrome.exe') then
        ShellExecute(Application.Handle,nil,PChar(GetEnvironmentVariable('temp') + '\..\Anwendungsdaten\Google\Chrome\Application\chrome.exe'),PChar(sHTML),'',SW_SHOW)
      else
      begin
        ShowMessage('Chrome wurde nicht gefunden!');
        boChrome:= False;
      end;
    if boChrome then
    begin
      Sleep(iWartezeit1);
      HFenster := FindWindow('Chrome_WidgetWin_0',nil);
      if boMeldung then
        ShowMessage('Vollbildmodus wird gestartet');
      Sleep(iWartezeit2);
      ShowWindow(HFenster,SW_NORMAL);
      PostMessage(HFenster,WM_KEYDOWN,VK_F11,0);
      PostMessage(HFenster,WM_KEYUP,VK_F11,0);
    end;

  end;
  ShowWindow(HFenster,SW_NORMAL);
  PostMessage(HFenster,WM_KEYDOWN,VK_F5,0);
  PostMessage(HFenster,WM_KEYUP,VK_F5,0);
  Sleep(iWartezeit3);

  Application.Terminate;

end;
Mit freundlichen Grüßen

sentinel81
  Mit Zitat antworten Zitat
 


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 06:51 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