当前位置:  开发笔记 > 编程语言 > 正文

如何更改任务管理器中显示的控制台应用程序的名称?

如何解决《如何更改任务管理器中显示的控制台应用程序的名称?》经验,为你挑选了1个好方法。

我是以编程方式启动控制台应用程序.它们都显示conhost.exe在任务管理器中.

如何设置进程名称,使其在任务管理器中显示为?

我如何设置进程的示例:

public static Process CreateMultiCoreExeProcess(int coreIndex, int coresToUse, string executableFilepath)
{
    //* Create your Process
    Process process = new Process
    {
        StartInfo =
        {
            FileName = executableFilepath,
            Arguments = coreIndex + " " + coresToUse,
            UseShellExecute = false,
            CreateNoWindow = true,
            RedirectStandardOutput = true,
            RedirectStandardError = true
        },
        EnableRaisingEvents = true
    };

    return process;
}

...正如您所看到的,没有一个属性可以设置进程名称(我知道).我希望能够在创建过程时设置进程的名称.

重复问题备注:这不是尝试的重复.作为副本呈现的解决方案是针对流程的STATIC名称,在项目属性中设置.我正在运行我的进程DYNAMICALLY(在运行时),并希望在那时设置进程名称.

更新:我确信这是不可能的.至少不是以现实(即永久)的方式.我相当肯定我们"被卡在"程序集信息中提供的名称,并且无法在任务管理器中以编程方式更改它.这对我的应用程序来说是不幸的,因为它会产生10多个相同的进程可执行文件.有时我只想杀死其中一个,但我无法确定任务管理器中的哪个是因为它们都具有相同的名称.



1> Cyral..:

您可以在创建后使用P/Invoke更改进程名称.(因为在创建它时无法指定它.默认名称是程序中指定的名称.)

[DllImport("user32.dll")]
static extern int SetWindowText(IntPtr hWnd, string text);
...
SetWindowText(process.MainWindowHandle, "Process Name/Title");

编辑:在网上四处看看,看起来您可能需要等待100ms左右才能设置名称(通过Thread.Sleepprocess.WaitForInputIdle在GUI应用程序的情况下).

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有