问题描述
我正在尝试关闭与流程关联的特定单例句柄。 Windows应用程序“ Process Explorer”允许您执行此操作,但是您需要选择进程,然后右键单击手柄并选择“关闭”。我正在寻找一种解决方案,该解决方案使我可以在应用程序运行时自动关闭特定的句柄。
我知道我可以通过以下操作获得所有进程,甚至杀死一个进程:
foreach (var p in Process.GetProcessesByName("your.exe"))
{
p.Kill();
}
但是我将如何关闭与流程相关联的句柄,而不是与流程本身相关?
解决方法
我最终使用了Michael在评论中建议的NtDuplicateObject。实施起来有点痛苦,但是一切都按预期进行-谢谢迈克尔!