您的位置:程序门 -> vb ->



如何锁住正在使用的文件


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何锁住正在使用的文件[已结贴,结贴人:iamxiang]
发表于:2007-04-26 18:59:15 楼主
有一个文件,在我的程序不用的时候我想把它加密,用的时候再解密,同时在使用时要求其它所有文件都不能对它进行操作,比如:复制、删除、剪切等。
请高手指点!
发表于:2007-04-26 19:41:441楼 得分:40
在windows中,文件可用共享模式打开——在这种情况下,多个进程可同时访问该文件。利用这个函数,要对文件进行读写的一个应用程序可将文件的某一部分锁定起来,使其不能由其他应用程序访问。这样便避免了同时读写时发生的冲突
long,非零表示成功,零表示失败。会设置getlasterrorhfile   ----------     long,欲锁定文件的句柄

    dwfileoffsetlow   -     long,指定欲锁定区域起始处的低32位地址

    dwfileoffsethigh   -     long,指定欲锁定区域起始处的高32位地址

    nnumberofbytestolocklow   -     long,锁定区域包含字符数量的低32位值

    nnumberofbytestolockhigh   -     long,锁定区域包含字符数量的高32位值锁定的区域不能进行重叠操作。由不同的操作系统决定,可能要求先运行share.exe才能保证该函数正常工作
发表于:2007-04-26 19:42:262楼 得分:40
open   语句
           

能够对文件输入/输出   (i/o)。

语法

open   pathname   for   mode   [access   access]   [lock]   as   [#]filenumber   [len=reclength]

open   语句的语法具有以下几个部分:

部分   描述  
pathname   必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。  
mode   必要。关键字,指定文件方式,有   append、binary、input、output、或   random   方式。如果未指定方式,则以   random   访问方式打开文件。  
access   可选。关键字,说明打开的文件可以进行的操作,有   read、write、或   read   write   操作。  
lock   可选。关键字,说明限定于其它进程打开的文件的操作,有   shared、lock   read、lock   write、和   lock   read   write   操作。  
filenumber   必要。一个有效的文件号,范围在   1   到   511   之间。使用   freefile   函数可得到下一个可用的文件号。  
reclength   可选。小于或等于   32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。  


下列代码以只允许读的二进制方式打开文件;其他过程不可以读该文件。

open   "testfile "   for   binary   access   read   lock   read   as   #1

发表于:2007-04-26 21:01:483楼 得分:0
可以hook   文件操作函数,可以结合绿豆的vb代码也可以自己做全局的dll钩子
发表于:2007-04-27 10:20:264楼 得分:0
//有一个文件,在我的程序不用的时候我想把它加密,用的时候再解密,同时在使用时要求其它所有文件都不能对它进行操作,比如:复制、删除、剪切等。
请高手指点!

以独占方式打开文件即可实现后者,至于加密你随便找个加密算法即可
发表于:2007-04-27 10:45:285楼 得分:0
这个恐怕比较难做到,除非你自己的程序有监视clipboard的行为。。
发表于:2007-04-28 22:35:486楼 得分:0
监视clipboard可以实现的!
以独占方式打开文件的时候能不能拷贝此文件了?
发表于:2007-04-28 22:38:127楼 得分:0
.........................................
发表于:2007-04-28 22:42:068楼 得分:0
还是要监视剪贴板,如果用抓图的呢,一样可以看到内容的   。。。
发表于:2007-04-28 23:13:429楼 得分:0
.................换个思路吧..................................lz要做什么,,不妨我们重新考虑思路
发表于:2007-05-04 13:39:5710楼 得分:0
以独占方式打开文件即可实现后者,至于加密你随便找个加密算法即可

-----------------


怎么以独占方式打开了?
发表于:2007-05-04 15:05:4111楼 得分:10
先用vb做一个工具,将这个文件锁住。你应该知道密码。所以当你打开时他会提示要密码。一般情况下,无论你在哪个计算机上都打不开。
然后你在你的程序里边使用时,你把密码传给他就可以了。我以前做过。
发表于:2007-05-09 21:27:4612楼 得分:0
可是这个文件你正在使用的时候就会恢复它原来的格式,这时候用户复制这个文件了怎么办?
发表于:2007-05-10 03:41:5913楼 得分:0
如果只是不允许其它进程删除文件,那就用open语句打开该文件即可,如果想要禁其它进程复制的话那很麻烦的
发表于:2007-05-10 03:43:1314楼 得分:0
要加密的话到网上找个加密的函数
发表于:2007-05-12 15:35:1015楼 得分:0
就是要不允许复制、删除、重命名等一切操作都不行啊!

加密的函数已经有了~
发表于:2007-05-12 16:13:0216楼 得分:0
我早说了这样你得拦截api
发表于:2007-05-13 13:03:1917楼 得分:0
该回复于2007-12-28 17:48:51被管理员或版主删除
发表于:2007-05-13 13:09:2518楼 得分:10
二楼就给出答案了     怎么没人去试?


快速检索

最新资讯
热门点击