Как загрузить два профиля Chrome на две панели в C# WinForm?
Я пытаюсь открыть два профиля Chrome в своем приложении winform на С#. Я использую следующий код для загрузки профиля 1 в панель 1, он работает хорошо.
private System.Diagnostics.Process pDocked;
private IntPtr hWndOriginalParent;
private IntPtr hWndDocked;
private System.Diagnostics.Process pDocked2;
private IntPtr hWndOriginalParent2;
private IntPtr hWndDocked2;
if (hWndDocked != IntPtr.Zero)
return;
var url = "www.google.com";
var process = new Process();
process.StartInfo = new ProcessStartInfo("chrome.exe");
process.StartInfo.Arguments = url + @" --profile-directory=""Profile 1""";
process.Start();
pDocked = process;
while (hWndDocked == IntPtr.Zero)
{
pDocked.WaitForInputIdle(1000);
pDocked.Refresh();
if (pDocked.HasExited)
{
return;
}
hWndDocked = pDocked.MainWindowHandle;
}
hWndOriginalParent = SetParent(hWndDocked, panel1.Handle);
Но когда я пытаюсь загрузить профиль 2 на панель 2, он всегда открывается над панелью 1 (а не внутри нее). Он имеет тот же размер, что и профиль 1, но открывается вне приложения. Я не уверен, что не так с моим кодом.
Вот код, который я использую для профиля 2
if (hWndDocked2 != IntPtr.Zero)
return;
var url2 = "www.bing.com";
var process2 = new Process();
process2.StartInfo = new ProcessStartInfo("chrome.exe");
process2.StartInfo.Arguments = url2 + @" --profile-directory=""Profile 2""";
process2.Start();
pDocked2 = process2;
while (hWndDocked2 == IntPtr.Zero)
{
pDocked2.WaitForInputIdle(1000);
pDocked2.Refresh();
if (pDocked2.HasExited)
{
return;
}
hWndDocked2 = pDocked2.MainWindowHandle;
}
hWndOriginalParent2 = SetParent(hWndDocked2, panel2.Handle );
Кстати, когда я загружаю другое приложение (например, notepad.exe) в panal2, оно загружается нормально. Кажется, это не работает только тогда, когда я дважды загружаю одно и то же приложение (например, хром в моем случае) в WinForm. Однако я предполагаю, что каждый профиль хрома рассматривается как отдельное приложение?
Может ли кто-нибудь помочь мне узнать, можно ли загрузить эти два профиля Chrome в две панели в одной и той же WinForm? Я был бы очень признателен за любое предложение. Спасибо.