it技術:dotnet:cefsharp
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:dotnet:cefsharp [2018/12/14 18:31] – [パネル配下にブラウザをセット] yajuadmin | it技術:dotnet:cefsharp [2019/03/16 21:18] (現在) – [マウスカーソルの位置とクリックに反応する位置がずれる] yajuadmin | ||
|---|---|---|---|
| 行 25: | 行 25: | ||
| Any CPUで32bit優先にした場合(32bit優先とはARMのWindows環境でも動作可能となる)\\ | Any CPUで32bit優先にした場合(32bit優先とはARMのWindows環境でも動作可能となる)\\ | ||
| [[https:// | [[https:// | ||
| + | |||
| + | ===== ブラウザ言語を変更する ===== | ||
| + | ひらがなと漢字が混在していた場合、ひらがなのみ太いなどのフォント表示(中国語っぽい)がされてしまう。\\ | ||
| + | 原因はロケールが違うため、言語を日本語に変更する。\\ | ||
| + | [[https:// | ||
| + | |||
| + | <code csharp> | ||
| + | CefSettings settings = new CefSettings(); | ||
| + | settings.Locale = " | ||
| + | settings.AcceptLanguageList = " | ||
| + | Cef.Initialize(settings); | ||
| + | </ | ||
| + | |||
| + | または、OSのカルチャーを取得してセットする。 | ||
| + | <code csharp> | ||
| + | CefSettings settings = new CefSettings(); | ||
| + | settings.Locale = System.Globalization.CultureInfo.CurrentCulture.Parent.ToString(); | ||
| + | settings.AcceptLanguageList = System.Globalization.CultureInfo.CurrentCulture.Name; | ||
| + | Cef.Initialize(settings); | ||
| + | </ | ||
| + | |||
| + | ===== debug.logを出力しない ===== | ||
| + | LogSeverity プロパティを無効にする。 | ||
| + | <code csharp> | ||
| + | CefSettings settings = new CefSettings(); | ||
| + | settings.LogSeverity = LogSeverity.Disable; | ||
| + | Cef.Initialize(settings); | ||
| + | </ | ||
| + | |||
| + | ===== GPUCacheやblob_storageがデスクトップに作成される ===== | ||
| + | CefSharpを使用したアプリケーションをデスクトップのショートカットから実行した場合\\ | ||
| + | ショートカットの作業フォルダが空だった場合、GPUCacheがblob_storageフォルダがデスクトップに作成されてしまう。\\ | ||
| + | 対応として作業フォルダを指定することで、作業フォルダ側に作成される。 | ||
| + | |||
| + | ショートカットの作業フォルダ対応ではなくプログラムで対応する場合\\ | ||
| + | カレントフォルダを設定しただけでは、GPUCacheフォルダはカレントフォルダに作成されるが、blob_storageフォルダはデスクトップに作成されてしまう。\\ | ||
| + | 対応として、CefSettings.UserDataPath にカレントフォルダを指定する必要がある。 | ||
| + | |||
| + | <code csharp> | ||
| + | // カレントディレクトリをアプリケーション起動パスに設定する | ||
| + | string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); | ||
| + | Directory.SetCurrentDirectory(appPath); | ||
| + | CefSettings settings = new CefSettings(); | ||
| + | settings.UserDataPath = appPath; | ||
| + | Cef.Initialize(settings); | ||
| + | </ | ||
| + | |||
| + | ===== Cef.Initializeの設定は1回のみ ===== | ||
| + | Cef.Initializeの設定は1回のみで、new ChromiumWebBrowser する前に設定する。\\ | ||
| + | Cef.Initialize したかどうかは、Cef.IsInitialized で判断(false: | ||
| + | [[https:// | ||
| ===== パネル配下にブラウザをセット ===== | ===== パネル配下にブラウザをセット ===== | ||
| 行 118: | 行 169: | ||
| ===== HTML要素の値を取得する ===== | ===== HTML要素の値を取得する ===== | ||
| Javascriptで操作させて取得する。\\ | Javascriptで操作させて取得する。\\ | ||
| - | ExecuteScriptAsyncメソッドで、Javascriptを実行する。 | + | ExecuteScriptAsyncメソッドで、Javascriptを実行する。\\ |
| [[https:// | [[https:// | ||
| 行 229: | 行 280: | ||
| </ | </ | ||
| + | ===== FAQ ===== | ||
| + | ==== マウスカーソルの位置とクリックに反応する位置がずれる ==== | ||
| + | 参照:[[http:// | ||
| + | |||
| + | === 現象 === | ||
| + | 一部のHigh-DPI 環境のPCでクリックする位置が10ドット上くらいでないと反応しない現象があった。\\ | ||
| + | EXEファイルから直接起動すると現象が発生しないが、デスクトップのショートカットやスタートアップから起動するとこの現象が発生する。 | ||
| + | === 対応 === | ||
| + | ショートカットのプロパティの互換性タブにある「高DPIスケール設定の上書き」の「高いDPIスケールの動作を上書きします。」にチェックを付ける。\\ | ||
| + | Windows 7では互換性タブにある「設定」の「高DPI設定では画面のスケーリングを無効にする」にチェックを付ける。 | ||
| + | |||
| + | === プログラム対応 === | ||
| + | 高DPI対応するために、app.manifest ファイルを追加して、dpiAwareをtrueに設定する。\\ | ||
| + | manifest ファイルの配布は不要。\\ | ||
| + | | ||
| + | |||
| + | 「dpiAware」の設定を「true」または「true/ | ||
| + | 違いは下記参照\\ | ||
| + | [[http:// | ||
| + | |||
| + | <code xml app.manifest> | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Cef.EnableHighDPISupport()メソッドを追加する。 | ||
| + | |||
| + | < | ||
| + | Cef.EnableHighDPISupport(); | ||
| + | Cef.Initialize(setting); | ||
| + | </ | ||
it技術/dotnet/cefsharp.1544779878.txt.gz · 最終更新: 2018/12/14 18:31 by yajuadmin
