忍者ブログ

[PR]

2025年04月29日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

TEdgeBrowserのUserAgentを変更する

2022年02月26日
まずICoreWebView2Settings2を宣言します。
あとはTEdgeBrowserのSettingsInterfaceを使いUserAgentを変更します。
下記は実装例のソースコードです。
 
unit App_WebView2;
interface
uses
  ActiveX, WebView2;
type
  ICoreWebView2Settings2 = interface(ICoreWebView2Settings)
    ['{EE9A0F68-F46C-4E32-AC23-EF8CAC224D2A}']
    function Get_UserAgent(out UserAgent: PWideChar): HResult; stdcall;
    function Set_UserAgent(UserAgent: PWideChar): HResult; stdcall;
  end;
  procedure WebView2_SetUserAgent( SettingsInterface: ICoreWebView2Settings; UserAgent: String );
  function  WebView2_GetUserAgent( SettingsInterface: ICoreWebView2Settings): String;
implementation
procedure WebView2_SetUserAgent( SettingsInterface: ICoreWebView2Settings; UserAgent: String );
begin
  ICoreWebView2Settings2( SettingsInterface ).Set_UserAgent( PWideChar( UserAgent ) );
end;
function  WebView2_GetUserAgent( SettingsInterface: ICoreWebView2Settings): String;
var
  wcUserAgent: PWideChar;
begin
  try
    ICoreWebView2Settings2( SettingsInterface ).Get_UserAgent( wcUserAgent );
    result := wcUserAgent;
  finally
    CoTaskMemFree(wcUserAgent);
  end;
end;

使い方の例はこんな感じです。

unit Unit1;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, WebView2, Winapi.ActiveX, Vcl.Edge;
type
  TForm1 = class(TForm)
    Button1: TButton;
    EdgeBrowser1: TEdgeBrowser;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
uses App_WebView2;
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebView2_SetUserAgent( EdgeBrowser1.SettingsInterface , 'Delphi');
end;

拍手[1回]

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字