admin管理员组文章数量:1530339
2024年6月17日发(作者:)
维普资讯
实用第
智慧密
)
}
CView::OnR ButtonDown(nFlags,point)
}
} .
CView::OnMouseMove(nFlags,point)
}
void CDrawBezView::OnRButtonUp(UINT nFlags,CPoint
void CDrawBezView::OnMouseMove(UINT nFlags,CPoint
point)
(
if(Index>=0&&Index<=3)
(
BezierPoint【Index】,X point.x:
BezierPoint【Index】.y=point.y:
Invalidate():
}
CView::OnMouseMove(nFlags,point)
} .
void CDrawBezView::OnMouseMove(UINT nFlags.CPoint
point)
(
jf(Index>=0&&lndex<=3)
(
BezierPoint【Index】.X=point.X
BezierPoint【Index】.y=point.y
lnvalidate():
霞冀骥 簸爨 魈燃嚣要黧蔓 鏊整 霆嚣羹鎏美羹羔 墨羹
甜 澄鳓雀蠹 麓 龋酵誊翰 鬻誊誊‘尊舞0_螬篓蔓囊嚣 鹭疆 蓼》攀霪。《誊甓霉≈ 。
^
t
/ 、
/
一
^
/
■■簪t 魂 。I |… 0 i一| ■ 一筝一’’葛醺 尊 ,
墨 隧翅 夔 曼 三童爰鬟要妻 蔓 - 童二量! |l_Il
裆渔蝴冀魏 潦 毒鹱蘸 鬃0 i √ 0蛰霉0戆尊 誊ll_0
,
l
}
l
I
l
:
、
●
一
/
辑 -- -蠢 一一皤 一 博≯ 。。
运行效果
86 _毫二: 技12圬与簟 j
point)
(
1ndex=一1:
CView::OnRButtonUp(nFlags point):
}
运行效果见左图所示:
(作者:苏百兖)
怎样用Delphi7实现文件粉碎
。 当用户删除文件时,其实操作系统并未将该文件从
存储介质上真正删除,而仅仅是在文件分配表中将该文件的相
关信息删除,并将该文件的存储空间标记为可写,所以被删除
的文件通常可以用一些文件恢复:I:具进行恢复。因此,涉密的
文件必须彻底删除,否则很容易泄密。能够将用户指定的文件
不可恢复地彻底删除的工具已经出现,比如“瑞星”开发的文
件粉碎机和“金山”反间谍20o7——文件粉碎器。但是,从
安全保密的角度来说,信别人不如信自己。基1二这种想法,笔
者分析了彻底删除文件的基本原理,在此基础上用Delphi7实
现了文件粉碎。下面阐述其设计思路、关键程序技巧。
1 设计思路
设计文件粉碎软件至少要考虑两个必须的功能,一是粉碎
文件、真正删除文件的功能;二是实现用户能够很方便地操作
调用“文件粉碎”程序的功能。因此,文件粉碎软件包括两个
程序:一一个是实现文件粉碎的文件粉碎程序,一个是方便操作
调用文件粉碎程序的对应注册程序。
文件粉碎程序首先应实现文件的内容擦除,即用无意义的
字符填充并且改写整个文件;然后删除该文件,即使用
EasyReeovery等软件恢复,也只能恢复到最新的状态,实际 【:
恢复的文件无任何意义,从而达到r彻底删除文件的目的。
在Windows XP操作系统中,习惯按鼠标右键米操作文
件。因此,在彻底删除文件的文件粉碎程序实现后,考虑到使
用的便捷还需要将它注册到系统的有键中,用户 需在文件 :
单击右键,就可以选择“文件粉碎”来彻底删除重要文件了。
2.程序实现
文件粉碎程序技巧包括:技巧一,,fj无意义的字符(比如
本文采用的单个的字符‘Y’)填充并改写整个文件,使得要
删除的文件在删除之前已被无意义的字符填满(比如 为
‘Y’)。然后再删除该文件,就nr以达到彻底删除文什的目
的。技巧二,计j Reset(UnTypedFile,1)将记录大小指定为・个
字: , 会出现读 文件的术尾处趟}{l文件范 的情况技巧
维普资讯
QUESTION&ANSW硼
三,用ParamStr(1)返回第2个命令行参数,使得本程序的调
用支持命令行参数,方便了操作。实现的核心代码如下:
program Project1://编译后生成Project1.exe
uses
F0rms,SysUtils:
{SR ,res)
Var
{iFileHandle:Integer;
iFileLength:Integer;
Buffer:PChar;
UnTypedFile:File;
buffer:array【0..1 28】of byte
NumRecWritten:integer;
begin
Application.Initialize;
Try//没有窗体的项目,所以主要代码放在项目文件这里
AssignFile{UnTypedFile.ParamStr{1)):
//Pa ramStr{1)返回第2个命令行参数
Reset{UnTypedFile,1)://将记录大小指定为~个字节,
//不会出现读至文件的末尾处超出文件范围的情况
while noteof{UnTypedFile)do
begin
FillChar{Buffer,Sizeof{Buffer),’Y ):
//用’Y 填充整个文件.当然换成其他字符也可
BlockWrite{UnTypedFile,Buffer,1,NumRecWritten):
end;
finally
CloseFile{UnTypedFile)
end;
Application Run;
Deletefile{ParamStr{1)): //删除磁盘文件!
end
3.注册到右键荣
将文件粉碎主程序注册到右键菜单的程序主要技巧是:用
writestring将上E确的设置值写入打开的主键,command子键的
内容是 右键后选择相应项后要运行的程序,%l是在单击
右键时选tIJl的文什名,还要切记在interface的USES叶l加入
registry ,否则编译时无法识别TRegistry。具休程序及关键
注释如F:
unit Unit1 //注册程序窗体的对应单元文件
interface
useS
Windows,Messages,SysUtils,Variants.Classes,Graphics.
Controls,FOrms,
Dialogs,StdCtrls,Grids,registry;//TRegistry
type
TForm1=class{TForm)
Button2:TButton;
procedure Button2Click{Sender:TObject):
private
{Private declarations)
public
f Public declarations}
end:
Var
F0rm1:TF0rm1:
implementation
{SR .dfm}
procedure TF0rm 1 Butt0n2Click{Sender:TObject):
Va r
a:TRegistry;
begin
a:=TRegistry.create;
a.rootkey:=HKEY一!=LASSES ROOT;
//用openkey打开一个主键,如果此主键不存在则自动创建
ifa openkey{ \shell\cutbig ,true)then
begin
a.writestring{~, 文件粉碎{&k) ):
//用writestring将设置值写入打开的主键
a.closekey;
end;
ifa openkey{ \shell\cutbig\command .true)then
begin
//command子键的内容是点击右键后选择相应项后要
//运行的程序
//%1是在单击右键时选中的文件名
a.writestring{~, ...\Project1.exe + %1 ):
//...处为主程序P rOject1.exe所在目录
a.closekey;
end;
a.free;
end;
end
注册程序运行界面如下图所示,单击安装注册后即完成文
件粉碎主程序的注册。在资源管理器中对文件操作,按鼠标右
键,菜单项增加了一项“文件粉碎”,用户就可以用来彻底删
除重要文件了。
曩‘— 难 置 量 誓西口■:I■■■_■ c疆■■ __
爱装 I
i
注册程序实现将文件粉碎主程序注册到右键菜单
(作者:张浩廖国富)
嘲囊 美87
版权声明:本文标题:怎样用Delphi7实现文件粉碎 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1718595473a699857.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论