2014-10-15 2 views
1

Я пытаюсь открыть google chrome с C#, но я не хочу его видеть, когда он открывается. Я пытался добавитьЗапустить хром в минимизированном режиме

process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; 

, но он ничего не делает. Я узнал, что могу использовать параметры для обеда хром как -new-window, но рядом с новым окном никаких других параметров не работает. Я попытался пообедать в других местах на экране, но он не имеет никакого эффекта. Я попытался изменить размер окна, но он ничего не делает.

Когда я обедаю свой хром, он всегда открывается в максимизированном окне (хотя я не передаю ему этот аргумент), я не мог понять, почему он всегда работает в максимизированном режиме, но я думаю, что именно по этой причине я не можете переместить его или изменить размер окна.

Как я могу управлять хромом, не видя окна? сведено к минимуму или даже обедать, это будет великолепно. Благодарим за помощь.

+1

Я просто нашел решение, которое я написал в ответ. –

ответ

1

Сначала убедитесь, что хром загружен полностью (его окно загружено, я не имею ни малейшего представления об этом в это время), то используйте этот код, чтобы свести его к минимуму.

private const int SW_SHOWMINIMIZED = 2; 

[DllImport("user32.dll")] 
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 

private void hideChrome() 
{ 
    Process proc; 
    foreach (Process process in Process.GetProcesses()) 
    { 
     if (process.ProcessName.Equals("chrome")) 
      proc = process; 
    } 

    IntPtr hWnd = proc.MainWindowHandle; 
    if (!hWnd.Equals(IntPtr.Zero)) 
    { 
     ShowWindowAsync(hWnd, SW_SHOWMINIMIZED); 
    } 
} 
+0

Прежде всего спасибо за вашу помощь, это сработало. Но я использую хром, и я пытаюсь скрыть процесс браузера (а не вкладки), видимо, есть только 1 процесс браузера для всех моих 4 окон, которые в настоящее время открыты. Когда я использую эту функцию, она сводит к минимуму последнюю, которая имела фокус. Как я могу свести к минимуму второй? – MyNick

+0

@ user2462683: Сначала мне жаль, что я сделал это на firefox и скопировал это без редактирования здесь :) Да, вы правы, попробуйте [this] (http://stackoverflow.com/questions/2531828/how-to -enumerate-all-windows-owned-to-a-specific-process-using-net), чтобы получить все обработчики окон. –

Смежные вопросы