当前位置: 首页 > 知识库问答 >
问题:

从C#中最小化Microsoft Edge浏览器不工作

濮俭
2023-03-14

我正试图通过C#最小化Microsoft Edge浏览器。除了微软Edge之外,其他浏览器如Chrome、Firefox、Internet Explorer都运行良好。

有人能帮帮我吗。

   [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    static void Main(string[] args)
    {

        var processes = Process.GetProcessesByName("MicrosoftEdge");
        //var processes = Process.GetProcessesByName("chrome");

         foreach (var process in processes)
            ShowWindow(process.MainWindowHandle, 2);
    }

共有1个答案

红弘盛
2023-03-14

这应该能做到这一点(非常不言自明,我提供了评论以防万一):

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace EdgeApp
{
    class Program
    {
        [DllImport("user32.dll")]
        private static extern bool EnumWindows(EnumWindowsProc enumProc, IntPtr lParam);

        [DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
        private static extern int GetWindowTextLength(IntPtr hWnd);

        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);

        [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
        private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);

        public const int SW_HIDE = 0;
        public const int SW_SHOWNORMAL = 1;
        public const int SW_SHOWMINIMIZED = 2;
        public const int SW_SHOWMAXIMIZED = 3;

        public static void Main(string[] args)
        {
            // Enumerate over windows.
            EnumWindows((handle, param) =>
            {
                // Get the class name. We are looking for ApplicationFrameWindow.
                var className = new StringBuilder(256);
                GetClassName(handle, className, className.Capacity);

                // Get the window text. We're looking for Microsoft Edge.
                int windowTextSize = GetWindowTextLength(handle);
                var windowText = new StringBuilder(windowTextSize + 1);
                GetWindowText(handle, windowText, windowText.Capacity);

                // Check if we have a match. If we do, minimize that window.
                if (className.ToString().Contains("ApplicationFrameWindow") && 
                    windowText.ToString().Contains("Microsoft Edge"))
                {
                    ShowWindow(handle, SW_SHOWMINIMIZED);
                }

                // Return true so that we continue enumerating,
                // in case there are multiple instances.
                return true;
            }, IntPtr.Zero);
        }
    }
}
 类似资料:
  • 问题内容: 有没有办法在所有浏览器中手动设置浏览器窗口的最小大小? 问题答案: 你可以试试 一旦视口小于600像素,您将获得一个水平滚动条。这仅适用于支持最小宽度CSS属性的现代浏览器。 我认为不可能限制用户的大小调整,也不应该!

  • 后端:Express服务器,带npx create-Express-api后端 Frontend: Next.js,带npx create-react-app前端 我已经在我的根文件夹中实现了这些命令,并尝试运行npm start xxx来检查它们是否还在工作。但是它们在我的http://localhost:3000中不起作用,尽管它们在此链接中起作用http://172.27.178.192:3

  • 好吧,我知道有很多关于这个的问题和答案,但我真的没有任何运气。我有一个多类、多包程序,它也使用一些外部库(作为jar文件)。我也将我的项目导出为jar文件,下面是我的“index.html”,它引用了必要的库和我的jar文件。所有这些文件都放在同一个目录中,我可以在我的网页上看到小程序:http://easlnx01.eas.muohio.edu/~whitetc2/Twitter挖掘2/ 我的主

  • 深度链接在android中不起作用。我已经把清单代码贴在这里了。当我测试时,它会进入网站,而不会在我的应用程序中打开我的活动。谁能帮我修一下吗? 更新: adb shell am start-W-aandroid.intent.action.VIEW-d"http://www.clinicloud.com/xyz"com.clinicloud.app 使用adb进行测试会打开应用程序,但仅使用浏览

  • 我曾尝试压缩视频使用FFMPEG命令,它是正确的压缩,但我不能看到像原来的浏览器视频。 我用过以下所有命令,但没有成功。 ffmpeg-i/var/www/html/test.mp4-c:v copy-bsf:v h264_mp4toannexb-an/var/www/html/test123.mp4 ffmpeg-i/var/www/html/test.mp4-s 640x480-c:v cop

  • 我有一个Selenium套件,它有150个测试用例。测试必须在Chrome浏览器中以隐姓埋名模式运行。 出于这个原因,我想在最大化模式下运行。在最大化模式下,我没有得到这个错误。请帮忙。 谢谢