社区
VCL组件使用和开发
帖子详情
文件夹的加密
meimeizsq
2007-02-03 09:51:22
兄弟们谁知道怎么给一个文件夹进行加密的算法?
...全文
245
2
打赏
收藏
文件夹的加密
兄弟们谁知道怎么给一个文件夹进行加密的算法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
h98458
2007-02-06
打赏
举报
回复
以下文章或可作一提示:
监视程序的编制
(哈尔滨 赵晓辉)
监视程序,这个名字听起来似乎很陌生。它的用途主要是在后台监视系统中关键信息的改变,比如注册表的改变及硬盘上由于文件操作引起的改变等等。
也许有人会问了,编制这样的程序有什么价值呢?硬盘上文件改变了,我只要在资源管理器里点一点不就全都清楚了吗?问题当然不会这样简单,如今大家的硬盘都已经用G来做单位了,一块4.3G的硬盘中,大大小小的文件全都加起来也会有若干万(相信新购机的朋友会考虑IBM10.1G的大硬盘,那文件数量将更加不可想象),更何况那些看不见的系统文件和隐藏文件了。再加上注册表,那其中的条条款款,数量也丝毫不逊于硬盘上的文件。要想随时知道自己机器是否有所变动,绝对不是一件很轻松的事。而监视程序就可以随时检测到这些变化,帮助我们了解这些情况。
当然这只是监视程序的一部分作用,它最大的作用就是可以记录下某个软件安装前后系统的改变,从而为卸载这个软件提供重要的依据。虽然Windows自带了一个Uninstall Shield,但是它似乎并不能很干净地把原来的软件卸掉,每次卸载总会留下一些讨厌的残渣,致使系统中的垃圾信息不断增长,我们的硬盘空间也总是莫名其妙地越用越少。因此,一些号称能够完全卸载软件的专用卸载工具应运而生。在这其中,有一些就运用了监视系统的技术,比如Uninstaller Manager和RegMonitor。
下面我们开始讨论如何编程实现这一监视功能。首先介绍几个重要的api函数:
FindFirstChangeNotification( );
FindNextChangeNotification( );
WaitForSingleObject( );
其中FindFirstChangeNotification(lpzpath,fwatchsubtree,fdwfilter)中的lpzpath表示要监视的路径名,fwatchsubtree判断是否查看子目录,fdwfilter为要监视的事件,函数执行成功后返回一个句柄。
参数fdwfilter取值及其含义如下:
FILE_NOTIFY_CHANGE_FILE_NAME
查看指定目录下任何文件名的改变
FILE_NOTIFY_CHANGE_DIR_NAME
查看指定目录下任何目录名的改变
FILE_NOTIFY_CHANGE_SIZE
查看指定目录下文件大小的改变
FILE_NOTIFY_CHANGE_ATTRIBUTES
查看指定目录下文件属性的改变
FindNextChangeNotification(hchange),hchan
ge为FindFirstChangenNotification返回的句柄,其作用是请求系统在下次检测到相应改变时发出改变通知消息句柄。当函数成功返回后,应用程序可通过WaitForMultipleObjects或WaitfForSingleObject来等待发生改变的通知。WaitForSingleObject(hchange,dwmilliseconds)中hchange为FindFirstChangeNotification 返回的句柄,dwmilliseconds为等待时间值,指定等待完成需要的时间,单位为毫秒。该值为-1时表示时间无限长。最好在结束监视程序之前先用FindCloseChangeNotification(hchange)来关闭句柄。
下面给出一个简单的实例,其功能就是监视c:\pwin98目录下是否有文件发生变化。一旦有重命名、创建或删除情况发生时,通过Edit控件给出提示。
//
----------------
#include
#pragma hdrstop
#include “Unit1.h”
//----------------
#pragma package(smart_init)
#pragma resource “*.dfm”
TForm1 *Form1;
//-----------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//-------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DWORD dwWaitStatus;
HANDLE dwChangeHandle; //返回通知的句柄
dwChangeHandle=FindFirstChangeNotification(
“C:\\PWIN98”,false,FILE_NOTIFY_CHANGE_FILE_NAME); //设置返回通知的句柄
if(dwChangeHandle==INVALID_HANDLE_VALUE)
//判断是否设置成功
ExitProcess(GetLastError( ));
while(true){ //设置循环,监视是否有
dwWaitStatus=WaitForSingleObject(dwChangeHandle,-1); //通知返回
switch(dwWaitStatus){
case 0:
Edit1->Text=“Something Changed”; //给出提示
FindCloseChangeNotification(dwcChangeHandle); //关闭句柄
exit(EXIT_SUCCESS); //退出程序
default:
ExitProcess(GetLastError( ));
}
}
}
程序在C++Builder4/PWin98下通过,由于C++Builder语言很标准,所以很容易扩展到其他编程语言环境中去。
此例说明如何监视硬盘中文件变化,对于注册表,则有函数
RegNotifyChangeKeyValue( )可以实现类似功能,这里暂省略之。
meimeizsq
2007-02-06
打赏
举报
回复
大家说一下思路!
共享
文件夹
加密
专家破解注册版
共享
文件夹
加密
专家破解注册版,解决企业共享
文件夹
防删除,防复制等安全权限设置。
共享
文件夹
加密
专家 破解版
共享
文件夹
加密
专家 破解版. 专门用来
加密
共享的文件的. 辛苦破解的版本. 同时如果觉得好用的,还是请支持国产正版吧.
文件夹
加密
小软件
我一直使用这个
文件夹
加密
软件,无需安装,无需注册,绿色小软件。
加密
效果好,操作简单快速,只要把此软件复制到要
加密
的
文件夹
里,双击运行即可设置密码,点击“
加密
”后,此
文件夹
里要
加密
的文件全部隐藏。...
便携式
文件夹
加密
器 V5.31/免安装
加密
文件夹
便携式
文件夹
加密
器 V5.31/免安装
加密
文件夹
可以整个
文件夹
加密
,绿色软件,欢迎使用
共享
文件夹
加密
专家 v4.5.0 破解版
安全
文件夹
:
加密
的文件数据只能浏览,无法复制,删除,移动及大小查看,有效防止非法入侵, 真正意义上的安全
文件夹
。 支持网络环境:支持在局域网进行加解密操作。支持多用户同时浏览文件。只需在一台机上安装即可全网...
VCL组件使用和开发
604
社区成员
13,456
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章