问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用delphi如何禁止打开某个文件夹

发布网友 发布时间:2022-05-15 21:52

我来回答

1个回答

热心网友 时间:2023-12-26 04:55

用你的程序独占打开文件夹
下面的代码可以独占一个文件的打开

//=========================================================
procere SetPrivilege;
var
TPPrev, TP: TTokenPrivileges;
TokenHandle: THandle;
dwRetLen: DWORD;
lpLuid: TLargeInteger;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ALL_ACCESS, TokenHandle);
if (LookupPrivilegeValue(nil, 'SeDebugPrivilege', lpLuid)) then
begin
TP.PrivilegeCount := 1;
TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
TP.Privileges[0].Luid := lpLuid;
AdjustTokenPrivileges(TokenHandle, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen);
end;
CloseHandle(TokenHandle);
end;

//===========================================

procere OccupyFile(lpFileName: string);
var
hProcess, hFile, hTargetHandle: thandle;
begin
//打开一个pid为4的进程,只要是存在的进程,都可以
hProcess:=OpenProcess(PROCESS_DUP_HANDLE, FALSE,4);
if (hProcess = 0) then exit;
//以独占模式打开目标文件
hFile := CreateFileA(PChar(lpFileName), GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hFile = INVALID_HANDLE_VALUE) then
begin
CloseHandle(hProcess);
exit;
end;
//把文件句柄复制到pid=4的进程中去,这样,只要pid=4的进程不退出,谁也动不了目标文件
DuplicateHandle(GetCurrentProcess(), hFile, hProcess, @hTargetHandle, 0, FALSE, DUPLICATE_SAME_ACCESS or DUPLICATE_CLOSE_SOURCE);
CloseHandle(hProcess);
end;
//=======================================================================
procere TForm1.Button1Click(Sender: TObject);
begin

SetPrivilege;
OccupyFile('D:\mydoc\1.doc');//这是要保护的文件名,如果是文件夹'D:\mydoc\'呢?

end;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
行车工退休是否有工龄年限限制?男士、女士的的退休年龄。 北京中新惠尔健康科技有限公司解决方案 北京中新惠尔健康科技有限公司公司文化 北京中新惠尔健康科技有限公司服务产品 北京中新惠尔健康科技有限公司历史沿革 北京中新惠尔健康科技有限公司惠尔简介 速腾能放多久? 昆山汽车搭电多少钱? 比亚迪救急估计电瓶没电了 盒马员工超过1小时算不算大吧 深圳市龙岗区去宝安区有多远 广东省肇庆市四会市大旺开发区将军岗区五队邮编是什么? 龙岗区和宝安区相比哪个比较繁华 All是什么公链 OpenProcessToken,LookupPrivilegeValue,AdjustTokenPrivileges 寻仙湖北黄石岗区 番禺有去广州累岗区的地铁怎么走? Token的例句 我没有绑定手机号,QQ号,邮箱,密码忘记了怎么找回 为什么手机新申请的QQ号绑定不了?绑定时总提示账号或密码错误 中科院沈阳自动化研究所和大连理工大学相比考研哪个比较好 大连理工大学研究生院研教楼104教室在哪 大连理工大学研究生院的力学、结构工程和防灾减灾与防护工程专业各自特色区别?可否详细介绍下? 大连理工大学考研如果考上了可以第二年再去读么 物质的颜色 大连理工大学研究生成绩什么时候 大连理工大学研究生成绩出来了吗 磷酸二氢钾是什么颜色的? 大连理工研究生院 在哪个校区? 大连理工大学研究生院的院系设置 如何限制inputtoken只能输入得到一个标签 token验证失败 跟空间有关系吗 足球都是由32块黑白相间的(黑)正5边形和(白)正6边形组成.请问正5边形和正6边形各有多少块? 有一种足球是由32块黑白相间的牛皮缝制而成的。黑皮为正五边形,白皮为正六边形,且边长都相等。 足球有32块黑白相间,黑色五边形,白色六边形,黑白比3:5,黑白各有多少个?( 写5 足球是由32块黑白相间的牛皮缝制而成的,黑皮可看作正五边形,白皮可看作正六边形,求白皮,黑皮各多少 足球由32块黑白相间的牛皮缝制而成,12块黑皮,20块白皮 有一种足球由32块黑白相间的牛皮缝制而成,黑皮可看成正五边形,白皮可看成正六边形。 悬赏分:20 | 解决 一个足球上共有32块黑白,若白色和黑色各有多少块 如图所示,足球是由32块黑白相间牛皮缝制而成的,黑皮可看作正五边形,白皮可看作正六边形,则白皮( 有种足球是由32块黑白相间的皮缝制而成的,黑皮可以看作五边形白皮可以看作六边形,求白皮,黑皮的块数 有一种足球是由32块黑白相间的牛皮缝制的,黑皮可以看作正五边形,白皮可以看作正6边形,设白皮有X块 有种足球是由32块黑白相的........求白黑块数例方程 怎样用一元一次方程计算32块黑白相间的足球的黑皮和白皮的块数 足球是由32块黑白相间的牛皮,为什么白皮的边数是黑皮的2倍 有一种足球是有32块黑白相间的牛皮缝制而成,用方程(组)求出足球有黑皮、白皮各多少块? 有一种足球是由32块黑白相间的牛皮缝制而成的。黑皮可看作正五边形,白皮可看作正六边形, 如图 足球由32块黑白相间的牛皮缝制成 黑皮是正五边形 白皮是正六边形 求黑白各多少块 足球32块黑白各多少块 vivox30的锁屏提示音开了但是为什么没有声音?