Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 另一个应用程序的True最小化_C#_Minimize - Fatal编程技术网

C# 另一个应用程序的True最小化

C# 另一个应用程序的True最小化,c#,minimize,C#,Minimize,我只想做真正的最小化,所有的公共代码都没有以正确的方式最小化!它只是将其最小化,如图所示,但不会像我单击最小化按钮那样最小化。我怎么知道的?或者我会从中得到什么好处?当我按下最小化按钮时,它减少了CPU的使用!(无论如何,这是一场游戏。) 我的代码是: [DllImport("User32.Dll", EntryPoint = "PostMessageA", SetLastError = true)] public static extern bool PostMessage(I

我只想做真正的最小化,所有的公共代码都没有以正确的方式最小化!它只是将其最小化,如图所示,但不会像我单击最小化按钮那样最小化。我怎么知道的?或者我会从中得到什么好处?当我按下最小化按钮时,它减少了CPU的使用!(无论如何,这是一场游戏。)

我的代码是:

    [DllImport("User32.Dll", EntryPoint = "PostMessageA", SetLastError = true)]
    public static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);

    List<int> ProcIDs = new List<int>();
    private void timer1_Tick(object sender, EventArgs e)
    {
        foreach (Process process in Process.GetProcesses())
        {
            if (process.ProcessName == "League of Legends")
            {
               // MinimizeWindow((IntPtr)hProcess);
                if (!ProcIDs.Contains(process.Id))
                {
                    IntPtr hProcess = GetProcessWindow(process.Id);
                    ProcIDs.Add(process.Id);
                    PostMessage(hProcess, WM_SYSCOMMAND, (IntPtr)SC_MINIMIZE, IntPtr.Zero);
                }
            }
        }
}
    const int WM_SYSCOMMAND = 274;
    const int SC_MINIMIZE = 0xF020;
[DllImport(“User32.Dll”,EntryPoint=“PostMessageA”,SetLastError=true)]
公共静态外部bool PostMessage(IntPtr hWnd、uint msg、IntPtr wParam、IntPtr lParam);
List ProcIDs=new List();
私有无效计时器1_刻度(对象发送方,事件参数e)
{
foreach(Process.getprocesss()中的进程)
{
if(process.ProcessName==“传奇联盟”)
{
//最小化内存((IntPtr)hProcess);
如果(!ProcIDs.Contains(process.Id))
{
IntPtr hProcess=GetProcessWindow(process.Id);
ProcIDs.Add(process.Id);
PostMessage(hProcess,WM_SYSCOMMAND,(IntPtr)SC_MINIMIZE,IntPtr.Zero);
}
}
}
}
const int WM_SYSCOMMAND=274;
const int SC_MINIMIZE=0xF020;
我还尝试了其他方法,它也这么做,只是最小化显示,但不是真正的最小化!:)

你可以试试这个

[DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, WindowShowStyle nCmdShow);
窗口样式为ShowMinimized=2时


你所说的真正最小化是什么意思?你可以全屏运行LoL,ALT-TABbing会将其最小化到任务栏(至少在我的笔记本上是这样)。另外,请检查是否有一个选项可以在后台保持声音播放(我不记得了),它可能会降低屏幕上的负载system@SriramSakthivel,当我最小化以获得减少CPU的操作时(取消激活它)!:)@Alex,我说的是同一台电脑上的10-30客户端“窗口”D所以我无法使用ULT+Tab:)谢谢分享你的意见。嗯。。。也许需要对代码的上下文有更多的了解,因为要最小化许多窗口,只需按WIN+D(实际上,这会最小化所有可以最小化的内容…然后是一些)就可以了。。相同的!在共享的链接中,WindowShowStyle的其他值很少,例如Minimize=6,您也尝试过其他值吗?不,只是ShowMinimized!:),给我时间试试,因为我现在正在扫描我的电脑,所以它太慢了,什么都做不了!我都试过了,没有一个有效。。所有这些都是一样的,它确实使它不处于活动状态,但仍然没有因为应用程序被最小化而更改CPU4,这并不意味着它的线程停止运行@如前所述,ChilakaUmesh已为您的问题提供了正确答案。这正是单击最小化按钮时发生的情况。