c# 为什么 chrome 不让我用 user32.dll ShowWindow() 隐藏它
c# why will chrome not let me hide it with user32.dll ShowWindow()
我开始 chrome 使用下面的代码。
Process OpenYouTube = new Process();
Chrome.StartInfo.FileName = "chrome.exe";
Chrome.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
Chrome.Start();
然后使用下面的代码尝试隐藏它。
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_HIDE = 0;
const int SW_SHOW = 5;
HideProcessAndChildren(Chrome.Id);
private void HideProcessAndChildren(int pid)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Process Where ParentProcessID=" + pid);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mo in moc)
{
HideProcessAndChildren(Convert.ToInt32(mo["ProcessID"]));
}
try
{
Process proc = Process.GetProcessById(pid);
ShowWindow(proc.MainWindowHandle, SW_HIDE);
}
catch (ArgumentException ex)
{
// Process already exited.
}
}
此代码适用于记事本等,但 Chrome 拒绝隐藏。
如何在启动后或启动时隐藏它?我知道硒等
您将无法按照您尝试的方式进行操作。
您可以考虑使用 ChromeDriver 并尝试类似的方法:
var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
return new ChromeDriver(chromeDriverService, new ChromeOptions());
我开始 chrome 使用下面的代码。
Process OpenYouTube = new Process();
Chrome.StartInfo.FileName = "chrome.exe";
Chrome.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
Chrome.Start();
然后使用下面的代码尝试隐藏它。
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_HIDE = 0;
const int SW_SHOW = 5;
HideProcessAndChildren(Chrome.Id);
private void HideProcessAndChildren(int pid)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Process Where ParentProcessID=" + pid);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mo in moc)
{
HideProcessAndChildren(Convert.ToInt32(mo["ProcessID"]));
}
try
{
Process proc = Process.GetProcessById(pid);
ShowWindow(proc.MainWindowHandle, SW_HIDE);
}
catch (ArgumentException ex)
{
// Process already exited.
}
}
此代码适用于记事本等,但 Chrome 拒绝隐藏。
如何在启动后或启动时隐藏它?我知道硒等
您将无法按照您尝试的方式进行操作。
您可以考虑使用 ChromeDriver 并尝试类似的方法:
var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
return new ChromeDriver(chromeDriverService, new ChromeOptions());