目前有个程序在运行完后会在最小化,在任务管理器中会留下一个进程。
如何实现其在最小化后,关掉任务管理器中的进程。
有几个思路,一个是将软件核心的部分写成windows服务(C#的话,vs提供了编写服务的模板),那么会使用svchost加载,看不到进程
将软件核心代码写成原生dll,然后用createremotethread注入到explorer执行,那么同样不会有进程出现,这个办法,需要用vc++写dll,C#写不了,而且一些杀软会阻止
或者你可以用rundll32去加载你的dll,这还是需要编写原生dll,执行的时候,进程列表里有rundll32,没有进程名
最后,你可以用detour去对任务管理器调用的CreateToolHelp32Snapshot拦截,遇到自己的进程,就不返回,欺骗任务管理器,实现隐藏的目的。
如果是本进程最小化后需要关掉,这本身就是矛盾的。
如果是本进程最小化后,关闭其他进程,System.Diagnostics.Process.GetProcesses()获得进程根据名称判断杀掉就可以了。
是不是关掉某人进程啊。最小化没理由关掉整个进程的吧。关某些进程,可以用事件啊。