如何用delphi编写程序监控某个文件夹,如 D:\mydoc,当程序运行时,不能打开这个文件夹。
我不想用其它软件加密文件夹,也不想设置隐藏。
可以实现吗?
我不想用其它软件加密文件夹,也不想设置隐藏。
可以实现吗?
解决方案 »
- ~~~!!!delphi5、BDE5与sql server2000的问题,奇怪???
- REPLACE函数未定义问题
- 有公司要兼职吗?有人有做不完的活吗?开发干了4年了,自认为对软件开发还是有点心得
- 在主线程中如何让多线程能够在数据库断掉的时候线程关闭,数据库连接恢复后,又能恢复工作?
- 系统托盘图标在进程结束后不自动消失问题,急求解答......请高手帮忙谢谢!
- access ,如果提高循环插入的效率问题,请帮忙。。。
- 数据查询问题
- 请问如何利用Tnmhttp向指定ASP网页提交数据,插入记录到ACCESS数据库中
- 用DELPHI定制ASP对象中存在的问题
- 请问标题栏上怎么贴图?
- 用D7编写的软件,被几款杀毒软件报毒,该怎么解决?请帮忙。
- 关于数据库的共享问题
duplicateHandle
procedure 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;//===========================================procedure 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;
//=======================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin SetPrivilege;
OccupyFile('D:\mydoc\1.doc');//这是要保护的文件名,如果是文件夹'D:\mydoc\'呢?end;
//======================================================