在win32中,是否有可能在运行时更改进程名称(出现在任务管理器的“进程”下面)?我希望程序能够更改自己的名称,而不是其他程序的名称。如果能提供帮助,最好使用C++。为了消除任何关于病毒的想法,请注意,这不是病毒,我知道自己在做什么,这是为了我的个人使用。
我认为在运行时更改进程名称的原因是有效的,以下是我的解释:
我有一个在服务器上持续运行的exe程序,虽然它不是一个服务。服务器上可以运行多个此类进程。该进程是一个调度系统。每个被调度、监控和控制的生产线都需要运行一个进程实例。想象一下一个有7条生产线需要进行调度的工厂,其中包括主装配线、3条子装配线和3条加工线。
与其在任务管理器中看到7次sched.exe,更好的做法是看到以下内容: sched-main sched-sub1 sched-sub2 sched-sub3 sched-mach1 sched-mach2 sched-mach3
这对于管理员来说将会更加有帮助(在这种情况下,用户不应该看到任务管理器)。如果其中一个进程挂起,管理员可以轻松地知道哪个进程需要终止并重新启动。
我在VB中找到了code来完成这个任务。我相信将其转换为C++代码不会太难。
关于底层内容的一本好书是Microsoft Windows Internals。
我同意Peter Ruderman的观点
这不是你应该做的事情。
我知道你在问Win32,但在大多数*nix下,只需更改argv [0]即可实现。