Einzelnen Beitrag anzeigen

froschprinz

Registriert seit: 24. Dez 2010
Ort: Graben, Bayern
34 Beiträge
 
Delphi 7 Architect
 
#6

AW: Darstellungsfehler im Twebbrowser

  Alt 3. Jul 2014, 08:26
Hallo,
ich habe nach viel rumprobieren selber eine Lösung gefunden, die herforragend funktioniert. Eigentlich sollte jeder, der noch TWebbrowser benutzt, standartmäßig SetWebbrowserMode(11,'MeineAnwendung.exe'); setzen. Dann werden die Seiten perfekt dargestellt.
Bitte nicht vergessen, dass dazu Admin-Rechte nötig sind!
Übrigens: Auch wenn kein Internetexplorer 11 installiert ist, so führt der Aufruf SetWebbrowserMode(11) dennoch zum Erfolg, da dann der nächst-niedrigere Internetexplorer verwendet wird.
Funktioniert sowohl bei 32Bit als auch bei 64Bit, da Windows automatisch umleitet.

Delphi-Quellcode:
function SetWebbrowserMode(Mode: integer; AppName: string = ''):boolean;
const
  REG_KEY = 'SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION';
var
  Reg: TRegistry;
  Value: Integer;
  Erfolg:boolean;
begin
  Erfolg:=false;
  if AppName = 'then
    AppName := ExtractFileName(Application.ExeName);
  Case Mode of
    7 : Value := $1B58;
    8 : Value := $22B8;
    9 : Value := $270F;
    10 : Value := $2AF7;
    11 : Value := $2EDF;
  end;
  Reg := TRegistry.Create(KEY_ALL_ACCESS);
   try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey(REG_KEY, True) then
    begin
      Reg.WriteInteger(AppName, Value);
      Reg.CloseKey;
      erfolg:=true;
    end;
  finally
    Reg.Free;
    Result:=Erfolg;
  end;
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if not SetWebbrowserMode(11,'MeineAnwendung.exe')then showmessage('Sie haben keinen Schreibzugriff auf die Registrierungsdatenbank. Bitte informieren Sie Ihren Administrator');
end;
Ulli
  Mit Zitat antworten Zitat