![]() |
TWebBrowser(.UserAgent) - User Agent ändern
Hallo,
Ich möchte den User Agent vom TWebBrowser ändern. Dazu habe ich im Internet ![]() 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:
(Hier fängt es schon an, keine ahnung was das macht)
const
DISPID_AMBIENT_USERAGENT = -5513; Schritt 2: Ich füge nach
Code:
und
type
Code:
TForm4 = class(TForm)
Code:
ein.
TWebBrowser = class (SHDocVw.TWebbrowser, IDispatch)
Schritt 3: Ich füge (ersetze)
Code:
ein.
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; Schritt 4: nach
Code:
Füge ich diesen Abschnitt ein:
implementation
{$R *.dfm}
Code:
Was habe ich alles Falsch gemacht?
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; Danke schonmal für eure hilfe Lg Simon |
AW: TWebBrowser(.UserAgent) - User Agent ändern
Für zukünftige Besucher diesess Threads die das gleiche Problem haben:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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 by Thomas Breitkreuz