gpt4 book ai didi

c# - 在 C# 中终止指定任务而不是进程

转载 作者:太空狗 更新时间:2023-10-29 17:56:03 25 4
gpt4 key购买 nike

就像Microsoft Word一样,如果我们打开多个Word窗口,那么我们会发现它们都在一个名为WINWORD的进程下,该进程下有多个任务。

在Window 8.1 Pro的任务管理器中,我们可以右键单击它并通过End Task结束它。

我成功地用进程名称完成了结束进程,但我无法从谷歌搜索中得到任何关于在这种情况下如何在特定进程下终止特定任务的想法。

强调:我不是在问如何终止进程

进程[i].Kill();

更新

我成功杀死了指定的Word窗口

using System;
using System.Runtime.InteropServices;

namespace CloseTask
{
class Program
{
[DllImport("user32.dll")]
public static extern int FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);

public const int WM_SYSCOMMAND = 0x0112;
public const int SC_CLOSE = 0xF060;

static void Main(string[] args)
{
closeWindow();
}

private static void closeWindow()
{
// retrieve the handler of the window of Word
// Class name, Window Name
int iHandle = FindWindow("OpusApp", "Document1 - Microsoft Word");
if (iHandle > 0)
{
//close the window using API
SendMessage(iHandle, WM_SYSCOMMAND, SC_CLOSE, 0);
}
}
}
}

但我想知道在这种情况下如何杀死oldest Word 窗口?如果进程可以对 StartTime 进行排序以杀死最旧的进程......但我认为这应该包含在另一个问题中,谢谢。

最佳答案

好吧,从外观上看,如果您的应用程序有多个顶级窗口,任务管理器会显示多个条目,即使它们都属于同一个进程。

当您单击“结束任务”时,任务管理器会发送一个 WM_CLOSE message到选定的窗口。仅关闭一个窗口而不关闭其他窗口取决于您的应用程序。

关于c# - 在 C# 中终止指定任务而不是进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com