我有一个问题,我认为这很复杂。我有一个应用程序,我在我的Windows下执行,它需要很长时间才能完成。我想让它继续运行(通常),但是我想要杀死磁盘上的文件 - 但显然它不可能因为它被锁定/正在使用。我需要一种方法来解除它与正在运行的进程的关联以杀死它,同时保持文件运行。任何代码或工具的例子都非常受欢迎。
嗯,欢迎变通方法,例如,如果有一种方法可以从进程中生成它,键入主服务器并迁移子进程以杀死应用程序,或任何其他有效的想法也是受欢迎的 - 即使是丑陋的。 :)
感谢。
答案 0 :(得分:1)
来自this questions答案的一些建议(完全被盗):
您可以使用MoveFileEx api function在下次重新启动时将文件标记为删除。
您可以注入一个dll来自行关闭手柄:
典型方法如下。你说你想用C#做这个,所以这里......
有用的链接:
http://www.codeproject.com/KB/threads/winspy.aspx
http://damianblog.com/2008/07/02/net-code-injection/
答案 1 :(得分:0)
这是你要杀死的应用程序必须处理的问题。它不应该在长时间运行的过程中保持文件打开。如果应用程序未关闭该文件,则终止该文件将导致该应用程序中出现异常。
答案 2 :(得分:0)
不确定这是否适用于每个Windows版本,但现在是:
更新:oops,看起来你不想放新图片,只需删除旧图片。然后MoveFileEx只是“合法”选项。