删除被锁定的文件

解除文件的独占锁定 解除文件的独占锁定,通过ZwQuerySystemInformation查询当前系统的所有句柄信息, 然后调用OpenProcess获取目标进程句柄,遍历当前所有进程, 根据进程ID, 得到此进程打开的所有句柄信息, 接下来用DuplicateHandle复制Handle到本地进程,然后通过文件句柄获取对应的文件对象的完整名字.确定文件名后, 如果要删除文件, 则调用OpenProcess与DuplicateHandle关闭句柄, 然后ZwDeleteFile删除文件。 阅读详情
Deleting Locked Files
   Zoltan Csizmadia


For more information, check out the CodeGuru article entitled, Examine Information on Windows NT System Level Primitives.

Start a remote thread (CreateRemoteThread) to close the given handle in every found process (#1)
Code
The following code closes a handle in a remote process. The handle must be remote process specific.

/*
Note: 1. SE_DEBUG privilege must be enabled.
     2. The function works with every kind of HANDLE
     3. It will bother the remote process :)
     4. The handles will be invalid after you closed
        them remotely
*/

//Close a handle in a remote process
DWORD CloseRemoteHandle( DWORD processID, HANDLE handle )
{
HANDLE ht = 0;
DWORD rc = 0;

_tprintf( _T("Closing handle in process #%d ... "),
         processID );

// open the process
HANDLE hProcess = OpenProcess( PROCESS_CREATE_THREAD
                               | PROCESS_VM_OPERATION
                               | PROCESS_VM_WRITE
                               | PROCESS_VM_READ,
                               FALSE, processID );

if ( hProcess == NULL )
{
  rc = GetLastError();
  _tprintf( _T("OpenProcess() failed/n") );
  return rc;
}

// load kernel32.dll
HMODULE hKernel32 = LoadLibrary( _T("kernel32.dll") );

// CreateRemoteThread()
ht = CreateRemoteThread(
  hProcess,
  0,
  0,
  (DWORD(__stdcall *)(void*))GetProcAddress(hKernel32,"CloseHandle"),
  handle,
  0,
  &rc );

if ( ht == NULL )
{
  //Something is wrong with the privileges,
  //or the process doesn't like us
  rc = GetLastError();
  _tprintf( _T("CreateRemoteThread() failed/n") );
  goto cleanup;
}

switch ( WaitForSingleObject( ht, 2000 ) )
{
  case WAIT_OBJECT_0:
  //Well done
  rc = 0;
  _tprintf( _T("Ok/n"), rc );
  break;

  default:
  //Oooops, shouldn't be here
  rc = GetLastError();
  _tprintf( _T("WaitForSingleObject() failed/n") );
  goto cleanup;
  break;
}

cleanup:
//Closes the remote thread handle
CloseHandle( ht );

//Free up the kernel32.dll
if ( hKernel32 != NULL)
  FreeLibrary( hKernel32 );

//Close the process handle
CloseHandle( hProcess );

return rc 
ABB机器人发送实时位置给PLC 本文使用中断方式实现,多任务要订购ABB功能包 Profinet总线组变量配置 注:映射为16位和32位均可用 声明数据 VAR num CurrentExAxisPos;!外轴位置 VAR robtarget pCurrentPos;!实时位置 var intnum TrapNum;!中断号 初始化开中断 IDelete TrapNum;!中断号 CONNECT TrapNum WITH iTrapCurPos;!连接中... 阅读详情

相关推荐

Maven

是一款自动化构建工具,专注于Java项目的构建、依赖的管理。

weixin_58738870的博客 2163

pnpm报错信息 The lockfile is broken! A full installation will be performed in an attempt to fix it.

将缓存地址的v3文件夹重命名,重新下载缓存。

weixin_44860226的博客 3407

GR00TN1.7国内本地下载+模型下在+hugingface无法连接,本地模型下载

GR00TN1.7

alsj123456的博客 97

windows下删除lock文件、删除文件夹下的svn文件

windows下经常用的svn删除命令 删除lock文件 1、切换到相应路径下; 2、执行命令:del lock /q/s 删除文件夹下的svn文件 for /r . %a in (.) do @if exist "%a\.svn" rd /s /q "%a\.svn"

梦想的翅膀 2734

别再死磕公式了!用Python+NumPy手把手实现机器人逆运动学数值求解(附避坑指南)

本文详细介绍了如何使用Python和NumPy实现机器人逆运动学(Inverse Kinematics, IK)的数值求解方法,包括牛顿-拉弗森法、雅可比矩阵计算及奇异位形处理。通过实战代码和避坑指南,帮助开发者快速掌握现代机器人学中的核心算法,提升工程实践能力。

weixin_30687051的博客 127

Unreal浅做一个MetaBall

Raymaching其实就是实时场景的一种渲染方法。主要原理网上有很多详细介绍。简单来说就是,以摄像机为原点,发射很多条射线,而每一条射线以步长为单位向前采样,同时以采样点和最近的物体像素的距离为半径进行一个球形检测。检测到摄像机和场景像素在当前射线方向的距离差小于某个值,就表示射线到达物体表面,然后画这个像素。

xzljj的博客 335

Linux锁定文件失败启动失败

如果Linux中文件启动失败出现下列情况: 2.解决方法也比较简单可以这样在我的电脑中搜索*.lck: 然后删除文件这3个文件或者多个文件后就可以打开Linux了。 ...

lihuilin521的博客 585

【智能车Code review】—曲率计算、最小二乘法拟合

【1】曲率计算函数 选三个点计算曲率 float process_curvity(byte x1, byte y1, byte x2, byte y2, byte x3, byte y3) { float K; int S_of_ABC = ((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2; //面积的符号表示方向 byte q1 = (byte)((x2 - x1) * (x2 - x1) + (y2 - y1) *

hanhan的博客 1万+

【PHP】nextcloud 删除文件出错,修改覆盖提示 ****file is locked,文件被锁定了

nextcloud 删除文件出错,修改覆盖操作提示 ****file is locked,则文件被锁定了。 方法一 首先打开项目配件文件/config/config.php,开启维护模式 'maintenance' => true, 清空sqlite数据库的oc_file_locks表 无法进入sqlite表,可以使用PHP连接数据库操作查看和清空 $db = 'data/owncloud.db'; //项目SQLITE文件 $conn = new sqlite3($db); $s

大白菜啊 4674

CAPL概述与环境搭建

CANoe和CANalyzer是Vector公司开发的两款用于汽车电子系统开发和测试的工具。CANoe主要用于网络开发、仿真和测试,而CANalyzer则主要用于网络分析和诊断。两者都支持CAPL脚本语言,可以用于编写复杂的测试脚本和仿真模型。CAPL Browser是CANoe/CANalyzer中用于编写、编辑和调试CAPL脚本的工具。它提供了一个集成的开发环境,支持语法高亮、代码自动补全、调试等功能。菜单栏:包含文件操作、编辑、编译、调试等功能。工具栏。

闲人编程的博客 1664

材料仿真软件:LAMMPS_(8).温度和压力控制

在 LAMMPS 中,温度和压力的控制是通过多种恒温器和恒压器实现的。Nose-Hoover 恒温器和恒压器因其准确性和广泛适用性而被经常使用,而 Berendsen 恒温器和恒压器则因其计算效率高而适用于初步仿真或粗粒化模型。温度重标和压力重标方法虽然简单,但在某些情况下可以快速调整系统的温度和压力。通过选择合适的控制方法,可以根据具体的需求和系统特性来设计和运行分子动力学仿真,从而获得准确和可靠的结果。在实际应用中,建议先进行初步的仿真以确定合适的控制参数,然后再进行细致的仿真以验证结果的稳定性。

kkchenjj的博客 1692

MATLAB操作文件后文件被锁定导致无法删除的解决方案

MATLAB操作文件后文件被锁定导致无法删除的解决方案

罗伯特祥的博客 2587

2026.1.11:WSL2中Ubuntu发行版的完全卸载干净指南

摘要:本文详细介绍在WSL2中彻底卸载Ubuntu发行版的步骤。首先通过wsl -l -v确认安装的发行版,使用wsl --terminate终止运行后,推荐使用wsl --unregister命令完全删除发行版(包括所有数据)。还可手动检查残留文件位置(如%LOCALAPPDATA%目录),并提供了备份建议(使用wsl --export)。最后说明验证卸载的方法和可选的高级重置操作。整个过程确保彻底清理相关数据并释放磁盘空间。(

拥抱具身智能,昇腾Ascend C 2391

windows锁定文件夹_如何在Windows中锁定文件以阻止删除或覆盖?

windows锁定文件夹While there are plenty of third-party programs to accomplish a task, sometimes you just want to use a built-in method to do the same thing. Today’s SuperUser Q&A post helps a reader fi...

culintai3473的博客 2287

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

文件在计算机被锁定怎么打开方式,4种删除锁定文件的方法

锁定的文件是受系统保护的文件,当某些用户或进程在访问锁定文件时,计算机会拒绝其他用户访问该文件。简而言之,锁定文件用于在文件使用时限制其他用户的访问。此外,某些应用程序使用锁定文件来阻止用户编写,删除,读取或篡改现有内容。当一个用户想删除共享文件而另一个用户正在使用它时,前者可能会收到一条消息,通知说该文件已被锁定,无法进行删除文件操作。如何检查文件是否被锁定某些文件仅在某访问时被锁定。要想知道文...

weixin_28785069的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

电脑文件锁定软件防删除保护重要文件

比如暑假来临,家里的"神兽"乱删东西,可能把一些重要的文件、照片删除掉,这时候我们就可以用这款软件来防止文件被删除。值得注意的是,这款软件锁定了文件夹以后,FileLock软件退出了,文件夹依然是锁定,并不会因为软件退出了文件和文件夹就会解除锁定。软件是绿色版,使用很简单。把需要锁定的文件、文件夹拖入到软件中即可锁定,锁定后你再去删除会提示文件正在使用,无法删除。这款工具还有许多功能,我就不一一介绍啦。

weixin_62784879的博客 257

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

FilExile:强制删除被进程锁定的文件及文件夹

如果你一直使用windows,可能常常会遇到文件不能被删除的情况。造成这种情况的原因有很多,但大部分是由于正在运行的某些进程正在使用这个文件造成的,但即便如此,每次跳出的错误界面都可能不同,上面难懂的文字也会让你找不到正确的解决方法,而FileExile可以快速解决这个问题,甚至无需你排查问题所在。 FilExile的体积为650Kb,并且不像有些其他同类软件一样,会在右键菜单中添加

软件No1的博客 919

修复‘文件被占用‘错误:使用LockHunter在Windows中删除被锁定的文件

摘要:遇到文件删除报错"文件被其他程序占用"时,常规方法无法找到锁定进程。经分析可能是系统进程或安全软件在后台锁定文件。推荐使用免费工具LockHunter解决:下载安装后扫描目标文件,可一键解锁或加入重启删除列表,还能管理删除队列。该工具操作简单,支持文件和文件夹处理,能有效解决顽固文件删除问题。(147字)

qq_73419097的博客 873

mac服务器文件无法删除不了,Mac删除文件时一些文件被锁定不能删除的解决方法...

一些MAC用户在删除文件的时候,发现一些文件被锁定不能删除。该如何解决这个问题呢?现在就让小编来教你一个解决的方法。被锁定的文件夹本身不能直接移动,其子目录内的内容不能更改,但其上层文件夹并不受锁定的影响。因此,倘若你需要移动被锁定的文件,只需通过移动上层文件夹将内含锁定的文件或文件夹转移至垃圾箱或目标文件夹。而Mac OS X下,锁定文件(夹)以及解锁的过程很简单。只要选择要锁定或解锁的文件(夹...

weixin_39526238的博客 1813

删除SVN被锁定文件

svn的working copylocked这种情况大多是因为上次svn命令执行失败且被锁定了。 如果cleanup没有效果的话只好手动删除锁定文件。 cd 到svn项目目录下,然后执行命令:del lock/q/s 就把锁删掉了。 操作图解如下: 1.开始--运行--cmd --回车 进入cmd 2.输入D: 回车 进入D盘 (即项目所在盘) 3.进入D盘...

dalong3333的博客 800

文件被system进程锁定,不能删除

文件被system进程锁定,不能删除,没有明显用户进程操作此文件。 软件UNLOCKER,WHOLOCKME,LOCK HUNTER之类的,可能需要重启才能解决问题,这在生产环境 中是不可接受的。 能作的还是慢慢搜索可用解决方案。。 然后,找到此个文档,显示了被SYSTEM占用文件的解决办法,并将此归为WIN2008的一个小BUG,但不知道实际效果如何。...

weixin_34055787的博客 1711

如何删除被锁定的文件(一)他山工具篇 WhoLockMe?

在删除Windows文件时,大家经常会遇到如图1这样的对话框,而且Windows也并未提示到底是哪个进程占用了该文件,所以每每到这个时候大家都会感到束手无策。最近,笔者找到了一个解决这个问题的非常好的一个小工具WhoLockMe。这个小工具在文件的右键菜单中添加了一个名为“谁锁住了我”的菜单项(图2),通过这个菜单项可查看到文件正被哪些进程占用,并且该工具并且还提供了关闭...

weixin_30245867的博客 282

删除被进程访问而锁定的文件

当一个文件正在被某个进程访问时,该文件就被锁定。删除这样被锁定的文件,磁盘空间不会释放。 删除步骤: 确定文件被哪个进程占用而处于锁定状态 lsof | grep delete 清空大文件(日志文件) echo "" > /tmp/access_log ...

beeworkshop的博客 576

SystemInformer文件锁定检测:轻松解决文件无法删除问题

你是否曾经遇到过这样的情况:想要删除一个文件,却被告知"文件正在被另一个程序使用",无法删除?这种文件锁定问题不仅令人沮丧,还可能导致系统清理、软件更新等操作受阻。传统的任务管理器往往无法提供足够详细的文件锁定信息,使得解决这类问题变得困难。 SystemInformer作为一款功能强大的系统监控工具,提供了全面的文件锁定检测和处理能力。本文将详细介绍如何使用SystemInformer轻松解决...

gitblog_01034的博客 926

VMware Workstation提示:另一个程序已锁定文件的一部分,进程无法访问,删除.lck文件夹和文件

一、现象 VMware Workstation提示:另一个程序已锁定文件的一部分,进程无法访问,截图如下: 二、原因 因为虚拟机在运行的时候,会锁定文件,防止被修改,而如果系统突然崩溃,虚拟机就来不急把已锁定的文件解锁。当你再次启动虚拟机的时候,会提示这类错误信息。 三、解决 进入虚拟机文件夹,删除有关以“.lck”为后缀的文件和文件夹,即可正常启动虚拟机~~~ ...

ctrigger的专栏 1万+
上一篇: 被占用文件操作三法
下一篇: Hackers hijack Windows Update's downloader
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值