1. 首页
  2. 编程语言
  3. C
  4. 对象查找-恶意代码分析实战英文原版pdf

对象查找-恶意代码分析实战英文原版pdf

上传者: 2024-07-20 01:31:26上传 PDF文件 26.13MB 热度 7次

第九章图形句柄程序员可以用附加属性把任意类型的数据添加到GUI对象中。任意数量的数据可以被存储,并应用于各种目的。自定义数据可以用近似标准属性的形式存储。每一个数据条目都有一个名字和值。数据变量可以用函数setappdate存储在一个对象,并用函数getappdata接收。 setappdate函数的基本形式如下:


setappdata(Hndl, 'DataName', DataValue);

其中Hndl是数据存入的对象的句柄,"DateName"是这个数据的名字,而DateValue是赋予这个名字的值。注意数据值可以是数字,也可以是字符串。假设我们要定义两个特殊的数据值,其中一个用于存储在指定图像中的错误数,另一个是用于描述最后发现的错误的字符串。这两个数据值的名字是"ErrorCount"和"LastError"。我们假设H1为这个图像的句柄,创建这些数据条目和初始化的命令为:


setappdata(H1, 'ErrorCount', 0);

setappdata(H1, 'LastError', 'No error');

我们可以用getappdata函数随时调用这些数据。getappdata的两种形式如下:


value = getappdata(Hndl, 'DataName');

struct = getappdata(Hndl);

Hndl是包含有这个数据的对象句柄,"DateName"是要调用的数据的名字,如果一个"DateName"被指定,那么与"DateName"相关的值就会被返回。如果没有被指定,那么所有与这个对象相关的自定义值就会以结构的形式被返回。数据条目名就是结构元素名。对上面的例子来说,getappdata将会产生下面的结果:


>> value = getappdata(H1, 'ErrorCount');

value = 0

>> struct = getappdata(H1);

struct = 

    ErrorCount: 0

    LastError: 'No error'

与自定义数据相关的函数被总结在表9.1中。

表9.1与自定义数据相关的函数

| 函数描述 | 说明 |

| --- | --- |

| setappdata(Hndl, 'DataName', DataValue) | 把DataValue存储在对象中的'DataName',这个对象以Hndl为句柄。 |

| value = getappdata(Hndl, 'DataName') struct = getappdata(Hndl) | 从以Hndl句柄的对象重新调用程序,第一种形式只读取'DataName'中的数据,第二种形式重新所有的自定义数据。 |

| isappdata(Hndl, 'DataName') | 如果'DataName'在以Hndl为句柄的对象中有定义,那就会返回1,否则返回0。 |

| isappdata(Hndl, 'DataName') | 删除'DataName','DataName'是在以Hndl为句柄的对象中的自定义数据。 |

每一个新的图像从创建开始时就有它们自己的句柄,句柄可以由创建函数返回。好的编程习惯是如果你打算修改你创建的对象的属性,那么请保存对象的句柄,为以后调用函数get和set做准备。

下载地址
用户评论