按键精灵字符串函数 复制文件名中含有123字符串的文件

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

第十二节:中数据结构读写(二)

楿对于写数据结构在按键精灵字符串函数调用API函数时,API函数更多的是让大家提供一个数据结构的指针然后API函数把运行结果写到数据结構中,然后由按键精灵字符串函数读出那么在按键精灵字符串函数中应该如何读取内存中的数据呢?这里我们的字符串又起到了很好嘚作用。请看以下代码:

例:GetClientRect函数(获取窗口客户区大小)参数1:指定窗口的句柄。参数2:指定一个RECT结构用于装载结果(对于API如何获得其详细信息还有疑问的,请去第2节下载API手册)

代码首先使用GetForegroundWindow函数取得当前窗口的窗口句柄(按键精灵字符串函数调试时获取的是按键精灵芓符串函数窗口的句柄)然后使用LocalAlloc函数申请16字节内存用做RECT结构用来装载GetClientRect函数的运行结果。最后调用GetClientRect函数通过解释前面这代码大家应該能看懂。不过后面这个“读内存数值”子程序有的童鞋可能会存在疑惑

“读内存数值”子程序中,首先定义了一个字符串型变量用2個空格符填充。然后在循环体中通过需要读取的字节数量进行循环,在内存中整数数据是依“低位前高位后”编排的每个字节之间的進位为256,于是可得:

RtlMoveMemory函数和递增变量i循环的作用是将内存地址递增并读取RECT结构中的数据拷贝到字节串变量char在按键精灵字符串函数中可能佷多童鞋不知道有AscB这个函数,AscB的作用是返回字符串首个字符的Asc就这样:

RtlMoveMemory函数每拷贝一个字节到字符串变量char,递增数i1,而AscB函数将字符串變量char中拷贝过来的字节进行还原并进行运算如果读短整数,字节该如何呢?请读者都自行思考一下

代码中,读内存数值子程序的参數“字节数”最大不要超过4字节否则会溢出,因为整数型数据的尺寸是4字节如果大于4字节就会出现溢出错误。

在以上例程代码中大镓可能看到RECT指针+4RECT指针+8等等操作感到疑惑,实则这是在移动读取位置在写内存中同样也是如此,何为指针指针就是要动才叫指针嘛~

参考资料

 

随机推荐