Wie kann ich meine Methode (LoadUrl) in einem neuen Prozess ausführen. Das Problem ist, dass CefSharp (https://cefsharp.github.io) nur einmal initialisiert wird, und ich Ex nicht reinitialisieren kann. "User-Agent" auf die folgende Anfrage.C# CefSharp im neuen Prozess
Ich habe versucht, dies in neuen Thread, aber es stürzt ab, wenn ich Cef.Initialize()
nach Cef.ShutDown()
versuchen.
Gibt es eine Möglichkeit, CefSharp jedes Mal mit einer neuen Befehlszeile zu starten?
Mein Code:
public void LoadUrl()
{
Cef.Initialize(InitializeCef());
CefSharp.OffScreen.ChromiumWebBrowser browser = new CefSharp.OffScreen.ChromiumWebBrowser("", BrowserSettings());
string URL = "http://localhost:3180/";
browser.Size = new System.Drawing.Size(800, 600);
browser.LoadError += (BrowserLoadError);
browser.JsDialogHandler = new JsDialogHandler();
browser.FrameLoadEnd += new EventHandler<FrameLoadEndEventArgs>(browser_FrameLoadEnd);
while (!browser.IsBrowserInitialized)
{
Console.WriteLine("Initializing browser...");
}
browser.Load(URL);
browser.Dispose();
Cef.Shutdown();
}
private BrowserSettings UniBrowserSettings()
{
BrowserSettings settings = new BrowserSettings();
settings.DefaultEncoding = "UTF-8";
settings.JavascriptAccessClipboard = CefState.Disabled;
settings.JavascriptOpenWindows = CefState.Disabled;
settings.JavascriptCloseWindows = CefState.Disabled;
settings.JavascriptDomPaste = CefState.Disabled;
settings.OffScreenTransparentBackground = true;
return settings;
}
private static CefSettings InitializeCef()
{
CefSettings settings = new CefSettings();
settings.UserAgent = DateTime.Now + DateTime.Now.ToString() + " myBrowser " + Cef.CefSharpVersion;
return settings;
}
Es ist eine "Chromium" -Begrenzung, siehe https://bitbucket.org/chromembedded/cef/issues/421#comment-16410312 – amaitland
@amaitland Ich dachte, dass so viel für die tatsächliche Initialisierung von CefSharp, aber warum sollte es nicht sein möglich, den UserAgent zu ändern, sobald Cef initialisiert wurde? Es scheint, als gäbe es einen Getter und Setter für das Eigentumsrecht? ** edit ** merke ich was ich in der Post geschrieben habe, bearbeite das aber jetzt noch neugierig auf den UserAgent – Matt
Aber ich möchte nicht nur senden sondern auch Daten empfangen. Wie - Verbindungsfehler ... usw. –