C# Проверить, работает ли программа в полноэкранном режиме - PullRequest
0 голосов
/ 26 мая 2020

Я хотел бы знать, как проверить, находится ли процесс в полноэкранном режиме

Спасибо

1 Ответ

1 голос
/ 26 мая 2020

Вам нужно будет использовать P / Invoke, чтобы получить доступ к такой информации о другом процессе. Этот код должен направить вас на верный путь:

using System;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApp13
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private static WINDOWPLACEMENT GetPlacement(IntPtr hwnd)
        {
            WINDOWPLACEMENT placement = new WINDOWPLACEMENT();
            placement.length = Marshal.SizeOf(placement);
            GetWindowPlacement(hwnd, ref placement);
            return placement;
        }

        [DllImport("user32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        internal static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);

        private void button1_Click(object sender, EventArgs e)
        {
            var procs = Process.GetProcesses();
            foreach(Process p in procs)
            {
                if(p.ProcessName == "notepad")
                {
                    var state = GetPlacement(p.MainWindowHandle);
                    MessageBox.Show(state.showCmd.ToString());
                }
            }
        }
    }

    [Serializable]
    [StructLayout(LayoutKind.Sequential)]
    internal struct WINDOWPLACEMENT
    {
        public int length;
        public int flags;
        public ShowWindowCommands showCmd;
        public Point ptMinPosition;
        public Point ptMaxPosition;
        public Rectangle rcNormalPosition;
    }

    internal enum ShowWindowCommands : int
    {
        Hide = 0,
        Normal = 1,
        Minimized = 2,
        Maximized = 3,
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...