delphi(中心软件编写,记录)

//知道软件名称找句柄

EXEHandle:=FindWindowEx(0,0,nil,'身份证件扫描识别管理系统 - [DSCF0120.jpg]');

 

//知道类找句柄
EXEHandle := FindWindow('Afx:400000:8:10011:0:1d1053d',nil);


ShowMessage(IntToStr(EXEHandle)); //2819030

 

//通过句柄,文件路径找类
 GetClassName(EXEHandle, sfzsmdir, 255); //得到类名,ps是字符类型


ShowMessage(sfzsmdir); //Afx:400000:8:10011:0:1d1053d

 

//通过类找句柄
EXEHandle2:=FindWindowEx(0,0,'Afx:400000:8:10011:0:1d1053d',nil);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Delphi编写的虚拟硬盘文件浏览程序,这段代码只实现了很小的功能,对分区格式有限制,只能读取不能写入,只能读取C盘根目录下的文件.等等.代码里符带一份学习笔记,是Fat分区格式的,不是太详细,到数据恢复网可以找到详细的资料.   使用Virtual PC的时候,刚开始时对于VPC和宿主之间的文件传输却一直没有整明白,所以要从宿主计算机中传输文件到VPC中只能靠WinIso制作成iso文件再用VPC的光驱来读取,这样做很麻烦,而且只是一面传输,所以就看一下VPC的虚拟硬盘,一看之下和记忆中的硬盘格式差不多,我只记得有个"55 AA",不巧的是在这里也找到了这个数据.所以就想做一个读取虚拟磁盘的软件.    于是去网上找了一些看了下:    首先是硬盘的主引导扇区,固定值:0磁面0磁道1扇区.大小512字节,记得前几天看过<>--一本不错的书,它那上面的第一个程序便是写了一个引导程序.它便是写了程序所需要的功能后将其它地方填0以达到512字节.当然最后两个字节一定是"55 AA",只有这个值才是有效的.    但是,上面所提那个引导程序显然是不合理的(书中只是一个软件盘引导可以不涉及到分区信息).因为真正的引导程序只能是占用此扇区的前446个字节,而后面直到最后"55 AA"之前的64个字节,是用来记录分区信息的DPT(Disk PartitionTable).但是作为在虚拟机上或软盘上的演示似乎也无妨(硬盘肯定不行,会破坏整个系统分区).    由于只是为了VPC与宿主计算机交换数据,所以我决定只读取第一分区就可以了.首先准备一个新VPC虚拟硬盘,用VPC建一个最小的3M硬盘(这一点是Virtual PC比VMWare强的),分区(全做为C盘),格式化,由于硬盘很小,所以只能格式化成Fat12,这里只学习了Fat12和Fat16的分区格式,然后用UltraEdit打开:    果然,510字节后便是"55 AA"即行标"0x01f0h"最后两字节,再看一下前面行标"0x1B0h"最后两字节是"80 01"80便是表示此分区为活动分区,即从此开始为第一个分区的信息.前面正好446字节.    每一个分区由十六个字节来描述.第一字节只能为"80"或"00",我们先不关心这些字节,只关心最后四个字节--分区所占扇区数.和最后第八字节开始的四个字节--相对扇区数,即此分区之前还有多少扇区.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值