如何用delphi编程实现锁定文件类型,比如,.doc文件,当用户想打开时,提示“拒绝访问”等信息,最好有实例,请高手指教。
解决方案 »
- 复合文档Root Storage的问题(在线恭候)
- WebUIValidation.js 报错
- 有问题绝对有问题
- 关于使用quickrep会创建无数临时文件,问题!!
- 在线求助100分啊--一个很简单的问题
- 直接在Dbgrideh修改了数据后自动提交如何做,求指教~
- 关于UTF-8编码的存取问题
- SQL语句
- 那位有infoPower3000 Professional 和Standard的Password,请贡献一个,好吗?
- 谁有 ERWIN crack过的,可以拿分换
- 把数据库中的表或查询导出为EXCEL工作表该怎么办?
- 动态库兼容问题---- 为什么 delphi 2006 调用低版(delphi 6.0)的DLL时,会出错!!(急!!给高分!!)
var
f : HFILE;
s : TOfStruct;
begin
s.cBytes := SizeOf(s);
s.fFixedDisk := 0;
strpcopy(s.szPathName,'E:\a.txt');
f := OpenFile('E:\a.txt',s,OF_SHARE_EXCLUSIVE);
end;procedure TForm1.Button2Click(Sender: TObject);
var
f : THandle;
sa : TSecurityAttributes;
begin
FillChar(sa, SizeOf(sa), #0);
sa.nLength := SizeOf(sa);
sa.lpSecurityDescriptor := nil;
sa.bInheritHandle := True;
f := CreateFile('E:\a.txt', GENERIC_READ or GENERIC_WRITE,
0, @sa, OPEN_EXISTING,
FILE_ATTRIBUTE_Normal, 0);
//CloseHandle(f);关闭文件,允许其他程序访问
end;
procedure TForm1.Button1Click(Sender: TObject);
var
f : HFILE;
s : TOfStruct;
begin
s.cBytes := SizeOf(s);
s.fFixedDisk := 0;
strpcopy(s.szPathName,'E:\a.txt');
f := OpenFile('E:\a.txt',s,OF_SHARE_EXCLUSIVE);
//_lclose(f);关闭文件,允许其他程序访问
end;晕,没仔细看
你要所有的一类文件都不能打开啊,
上面例子只能独占打开一个文件
首先得知道打开文件时用的什么API
比如ShellExcute或者Createfile,Openfile什么的
然后用API Hook监视API调用,在Hook里判断是否允许打开
去找找IFS hook、文件系统过滤驱动(File System Filter Drivers)方面的资料功力不够,帮不了你了
只是想:用流或用文件读取(只写方式)文件的数据,无论多少由你定哦!再看一下哦原文件哦!
http://bbs.zndev.com/thread.php?fid-39.html