Уделение внимания внешнему приложению (Chrome) - PullRequest
0 голосов
/ 03 апреля 2020

Доброе утро,

Я пытаюсь понять, как сосредоточиться на Google Chrome. То есть сделать как щелчок по программному обеспечению на панели задач (уже открытой).

Спасибо за помощь в том, чтобы помочь мне сосредоточиться на Google Chrome.

1 Ответ

0 голосов
/ 03 апреля 2020

Вы можете использовать следующую функцию, чтобы вывести chrome на передний план и сфокусировать его.

Код использует 2 windows API-вызовов, потому что то, что вам нужно, напрямую не предоставляется. Net рамки.

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;

public class Program
{
    [DllImport("user32.dll")]
    [return: MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
    private static extern bool ShowWindow(IntPtr hWnd, int flags);

    [DllImport("user32.dll")]
    public static extern int SetForegroundWindow(IntPtr hwnd);

    private static bool FocusChromeWindow()
    {
        foreach (Process chrome in Process.GetProcessesByName("chrome"))
        {
            // In case the process did not reveal a main window handle
            // try to restore it in case it is hidden 
            if (chrome.MainWindowHandle == IntPtr.Zero)
            {
                ShowWindow(chrome.Handle, 9); // 9 = Restore
            }
            // If main window handle is still zero,
            // this chrome process is one of the background
            // workers chrome starts. Skip it.
            if (chrome.MainWindowHandle != IntPtr.Zero)
            {
                SetForegroundWindow(chrome.MainWindowHandle);
                return true;
            }
        }
        return false;
    }

    static void Main(string[] args)
    {
        FocusChromeWindow();
        Console.ReadLine();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...