Minimalkan semua kejadian notepad yang tidak berfungsi di windows 11 | kode C#

pemrograman


Saya sedang mengerjakan kode C# yang meminimalkan semua instance Notepad yang terbuka. Kode ini berfungsi dengan baik di Windows 10, tetapi ketika saya menjalankan exe yang sama dengan hak istimewa administrator, kode ini hanya meminimalkan satu instance Notepad (keluar dari 3..).

Kode saya untuk ini adalah sebagai berikut. bantuan apa pun sangat dihargai. Terima kasih

Apa yang saya coba:

C#
class Program
{
    private const int SW_SHOWNORMAL = 1;
    private const int SW_SHOWMINIMIZED = 2;
    private const int SW_SHOWMAXIMIZED = 3;

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

    [DllImport("user32.dll")]
    private static extern bool MinimizeWindow(System.IntPtr hwnd);

    static void Main(string[] args)
    {
        System.Diagnostics.Process thisProcess =
        System.Diagnostics.Process.GetCurrentProcess();
        System.Diagnostics.Process[] processes =
        System.Diagnostics.Process.GetProcessesByName("notepad");

        foreach (System.Diagnostics.Process process in processes)
        {
            if (process == thisProcess) 
                continue;

            System.IntPtr handle = process.MainWindowHandle;

            if (handle == System.IntPtr.Zero) 
                continue;

            IntPtr s1 = process.MainWindowHandle;
            ShowWindowAsync(s1, SW_SHOWMINIMIZED);
        }
    }
}

Solusi 2

Lihat di Task Manager, pada tab Details, dan Anda akan menemukan bahwa tidak peduli berapa banyak Notepad WINDOWS yang Anda buka, hanya ada satu instance Notepad.exe, dan hanya satu “MainWindowHandle.”

Pada Windows 10, akan ada satu contoh Notepad.exe UNTUK SETIAP JENDELA CATATANPAD, masing-masing dengan “MainWindowHandle” sendiri.

Pada dasarnya, Anda harus melakukan beberapa pekerjaan untuk menemukan semua jendela anak Notepad dan meminimalkannya. Tidak, tidak ada apa pun secara langsung di .NET BCL yang dapat melakukan hal itu untuk Anda.

コメント

タイトルとURLをコピーしました