AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi TWebBrowser(.UserAgent) - User Agent ändern

TWebBrowser(.UserAgent) - User Agent ändern

Ein Thema von Bladefire · begonnen am 9. Jul 2014 · letzter Beitrag vom 18. Jul 2014
Antwort Antwort
Bladefire

Registriert seit: 30. Jun 2014
67 Beiträge
 
#1

TWebBrowser(.UserAgent) - User Agent ändern

  Alt 9. Jul 2014, 16:42
Hallo,

Ich möchte den User Agent vom TWebBrowser ändern. Dazu habe ich im Internet diese Webseite gefunden. Jedoch verstehe ich den Code (überhaupt) nicht.

Ich werde jetzt Schritt für Schritt schreiben wie ich vorgegangen bin. Ich bitte euch mir anschließend mittzuteilen was ich falsch gemacht habe.

Falls jemand die Zeit hat mir zu erklären was dieser Code genau macht ist dies ebenfalls gerne gesehen.

Schritt 1:

Ich füge die Konstante vor Type in einem VCL Formular ein
Code:
const
  DISPID_AMBIENT_USERAGENT = -5513;
(Hier fängt es schon an, keine ahnung was das macht)

Schritt 2:

Ich füge nach
Code:
type
und
Code:
TForm4 = class(TForm)
Code:
TWebBrowser = class (SHDocVw.TWebbrowser, IDispatch)
ein.

Schritt 3:

Ich füge (ersetze)
Code:
  private
    FUserAgent: string;
    procedure SetUserAgent (const Value: string);
    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT; stdcall;
  public
    property UserAgent: string read FUserAgent write SetUserAgent;
    constructor Create(AOwner: TComponent); override;
  end;
ein.

Schritt 4:
nach
Code:
implementation

{$R *.dfm}
Füge ich diesen Abschnitt ein:

Code:
constructor TWebBrowser.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FUserAgent:='';
end;
 
function TWebBrowser.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HRESULT;
begin
  //check if the DISPID_AMBIENT_USERAGENT flag is being processed and if the User Agent to set is not empty
  if (FUserAgent <> '') and (Flags and DISPATCH_PROPERTYGET <> 0) and Assigned(VarResult) and (DispId=DISPID_AMBIENT_USERAGENT) then
  begin
    //set the user agent
    POleVariant(VarResult)^:= FUserAgent+#13#10;
    Result := S_OK; //return S_OK
  end
  else
  Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params, VarResult, ExcepInfo, ArgErr); //call the default Invoke method
end;
 
procedure TWebBrowser.SetUserAgent(const Value: string);
var
  Control: IOleControl;
begin
  FUserAgent := Value;
  //the current interface supports IOleControl?
  if DefaultInterface.QueryInterface(IOleControl, Control) = 0 then
    Control.OnAmbientPropertyChange(DISPID_AMBIENT_USERAGENT); //call the OnAmbientPropertyChange event
end;
Was habe ich alles Falsch gemacht?

Danke schonmal für eure hilfe

Lg Simon
  Mit Zitat antworten Zitat
Bladefire

Registriert seit: 30. Jun 2014
67 Beiträge
 
#2

AW: TWebBrowser(.UserAgent) - User Agent ändern

  Alt 18. Jul 2014, 02:27
Für zukünftige Besucher diesess Threads die das gleiche Problem haben:

http://www.delphipraxis.net/181108-u...ionoption.html
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf