如何通过注册表子键下数据来获得键值?

yifeisunny 2006-11-29 02:15:57
各位高手:
如何通过注册表子键下数据来获得键值?
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yifeisunny 2006-11-29
  • 打赏
  • 举报
回复
能否给个例子看看啊?
yifeisunny 2006-11-29
  • 打赏
  • 举报
回复
RegEnumKey如何遍历,说明白点好吗?
neosu 2006-11-29
  • 打赏
  • 举报
回复
如果你知道了目录, 可以用枚举的方法(RegEnumKey)获得所有的KEY, 再一一比较其值.
yifeisunny 2006-11-29
  • 打赏
  • 举报
回复
比如说在HKEY_CURRENT_USER下子键Software\\Microsoft\\Windows\\ShellNORoam\\MUICache
我要通过数据“我的音乐”来获得其键值。
neosu 2006-11-29
  • 打赏
  • 举报
回复
说清楚点.
易语言辅助模块 .子程序 _等待, , 公开 .参数 毫秒, 整数型, , 单位/毫秒 1000毫秒=1秒 .子程序 _高级处理事件, , 公开, 优化处理事件的效率,先判断是否存在事件 .子程序 _高精度等待, , 公开 .参数 微秒, 整数型, , 单位/微秒 1000微秒=1毫秒;1000毫秒=1秒 .子程序 _高精度延时, , 公开 .参数 微秒, 长整数型, , 单位/微秒 1000微秒=1毫秒;1000毫秒=1秒 .子程序 _高速扫描ARP, 整数型, 公开, 扫描局域网中的所有IP地址和MAC地址。成功返回(扫描到的计算机数量) .参数 欲扫描的IP段, 文本型, , 如:192.168.0.1 将扫描192.168.0.1 - 192.168.0.255 .参数 IP缓冲区, 文本型, 参考 数组 .参数 MAC缓冲区, 文本型, 参考 数组 .子程序 _禁止重复运行, 逻辑型, 公开, 如果程序已运行(直接结束),否则返回(假)。 .参数 标识, 文本型, 可空, 如果有多个程序用到禁止重复运行功能,建意给每个程序定个不同的标识.任意文本 .参数 窗口句柄, 整数型, 可空, 如果参数被省略,不还原最小化的窗口 .子程序 _卸载热键, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 热键的ID, 整数型, , 由“_注册热键”命令获得 .子程序 _卸载所有热键, , 公开, 撤销所有热键 .子程序 _注册热键, 整数型, 公开, 注册成功返回热键ID,失败返回0,支持多热键 .参数 窗口句柄, 整数型 .参数 功能键状态, 整数型, , 1、Alt;2、Ctrl;4、Shitf;8、Win。若要两个或以上的状态键按则把它们的值相加. .参数 键代码, 整数型 .参数 子程序指针, 子程序指针 .数据类型 RGB, 公开 .成员 R, 整数型 .成员 G, 整数型 .成员 B, 整数型 .数据类型 进程数据, 公开, 进程信息数据 .成员 结构大小, 整数型, , , 1024 .成员 进程的引用计数, 整数型 .成员 进程ID, 整数型 .成员 进程默认堆ID, 整数型 .成员 进程模块ID, 整数型 .成员 线程数, 整数型 .成员 父进程ID, 整数型 .成员 线程优先权, 整数型 .成员 保留, 整数型 .成员 进程名称, 字节型, , "256" .数据类型 矩形, 公开 .成员 矩形左边, 整数型 .成员 矩形顶边, 整数型 .成员 矩形宽度, 整数型 .成员 矩形高度, 整数型 .数据类型 矩形区域, 公开 .成员 矩形左边, 整数型 .成员 矩形顶边, 整数型 .成员 矩形右边, 整数型 .成员 矩形底边, 整数型 .数据类型 模块数据, 公开, 模块信息数据 .成员 结构大小, 整数型, , , 1024 .成员 mid, 整数型 .成员 pid, 整数型 .成员 gusage, 整数型 .成员 pusage, 整数型 .成员 起始地址, 整数型 .成员 内存长度, 整数型 .成员 模块句柄, 整数型 .成员 模块文件名, 字节型, , "256" .成员 模块完整路径, 字节型, , "256" .数据类型 内存参数, 公开 .成员 数据结构长度, 整数型 .成员 物理内存使用百分比, 整数型 .成员 物理内存总字节数, 整数型, , , 除1024=单位/K .成员 物理内存可用字节数, 整数型, , , 除1024=单位/K .成员 分页文件总字节数, 整数型, , , 除1024=单位/K .成员 分页文件可用字节数, 整数型, , , 除1024=单位/K .成员 虚拟内存总字节数, 整数型, , , 除1024=单位/K .成员 虚拟内存可用字节数, 整数型, , , 除1024=单位/K .数据类型 内存数据, 公开 .成员 cb, 整数型 .成员 页面错误, 整数型 .成员 内存使用峰值, 整数型, , , 除1024=单位/K .成员 内存使用, 整数型, , , 除1024=单位/K .成员 页面缓冲池峰值, 整数型, , , 除1024=单位/K .成员 页面缓冲池, 整数型, , , 除1024=单位/K .成员 非页面缓冲池峰值, 整数型, , , 除1024=单位/K .成员 非页面缓冲池, 整数型, , , 除1024=单位/K .成员 虚拟内存大小, 整数型, , , 除1024=单位/K .成员 虚拟内存大小峰值, 整数型, , , 除1024=单位/K .数据类型 文件时间, 公开 .成员 创建时间, 日期时间型 .成员 修改时间, 日期时间型 .成员 访问时间, 日期时间型 .数据类型 坐标, 公开 .成员 X, 整数型, , , 横坐标 .成员 Y, 整数型, , , 纵坐标 .程序集 窗口操作, , 公开 .子程序 窗口抖动, 逻辑型, 公开, 仿QQ窗口抖动效果,窗口抖动完毕返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 欲抖动的窗口句柄。 .参数 抖动幅度, 整数型, 可空, 欲抖动的幅度。如果参数被省略,默认为1 .参数 抖动次数, 整数型, 可空, 欲抖动的次数。如果参数被省略,默认为5 .参数 抖动速度, 整数型, 可空, 欲抖动的速度。如果参数被省略,默认为10 .子程序 窗口嵌入, 逻辑型, 公开, 将指定窗口嵌入到另一个顶级窗口中,成功返回(真),失败返回(假) .参数 子窗口句柄, 整数型 .参数 父窗口句柄, 整数型, , 如:桌面→桌面标题=“Program Manager” .子程序 窗口嵌入桌面, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 欲嵌入到桌面的窗口 .子程序 窗口是否存在, 逻辑型, 公开, 如果窗口存在返回(真),否则返回(假) .参数 窗口句柄, 整数型 .子程序 窗口置顶, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 窗口最小化, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 禁止窗口组建, 逻辑型, 公开, 在指定的窗口或窗口组建里允许或禁止所有鼠标及键盘输入,成功返回(真),失败返回(假) .参数 句柄, 整数型, , 窗口句柄或组建句柄 .参数 类型, 整数型, , 0=禁止,1=允许 .子程序 枚举窗口, 整数型, 公开, 成功返回(所有窗口数量) .参数 窗口句柄, 整数型, 参考 数组, 装载窗口句柄的数组变量,请用循环取出 .子程序 清除窗口, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 取窗口标题, 文本型, 公开, 成功返回(窗口标题),失败返回(空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取窗口矩形, 矩形区域, 公开 .参数 窗口句柄, 整数型 .子程序 取窗口句柄, 整数型, 公开, 成功返回(窗口句柄),失败返回(0) .参数 窗口类名, 文本型, 可空, 指定的窗口类名 .参数 窗口标题, 文本型, 可空, 指定的窗口标题 .子程序 取窗口类名, 文本型, 公开, 成功返回(窗口类名),失败返回(空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取窗口位置, 坐标, 公开 .参数 窗口句柄, 整数型 .子程序 取父窗口句柄, 整数型, 公开, 成功返回(父窗口句柄),无父窗口或遇到错误返回(0) .参数 窗口句柄, 整数型, , 窗口句柄 .子程序 取进程窗口句柄, 整数型, 公开, 取指定进程的窗口句柄,成功返回(指定进程的父窗口句柄),失败返回(0) .参数 进程ID, 整数型, , 指定进程的ID .子程序 取前台窗口句柄, 整数型, 公开, 成功返回(窗口句柄),失败返回(0) .子程序 置窗口标题, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 新标题, 文本型 .子程序 置窗口鼠标穿透, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .参数 是否穿透, 逻辑型, , 如果参数为真马上穿透,如果参数为假取消穿透 .子程序 置窗口透明度, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .子程序 置窗口位置, 逻辑型, 公开, 移动窗口到指定位置 .参数 窗口句柄, 整数型 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .参数 窗口宽度, 整数型, 可空, 如果为空(不改变当前窗口宽度) .参数 窗口高度, 整数型, 可空, 如果为空(不改变当前窗口高度) .子程序 置窗口状态, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 指定需要控制的窗口句柄 .参数 状态, 整数型, , 0 隐藏取消激活 1 还原激活 2 最小化激活 3 最大化激活 4 还原 6 最小化取消激活 7 最小化 9 还原激活 .程序集 磁盘操作, , 公开 .子程序 创建目录, 逻辑型, 公开, 成功返回(真) .参数 目录全路径, 文本型, , 如:C:\新目录\新子目录...... .子程序 打开文件, 整数型, 公开, 成功返回(文件号),失败返回(0),使用完毕记得关闭文件 .参数 文件全路径, 文本型, , 如果文件不存在,新建一个文件 .参数 打开方式, 整数型, 可空, 1=读入,2=写出,3=读写,4=重写,5=改写,如果参数被省略默认为3 .参数 共享方式, 整数型, 可空, 0=不共享,1=允许读,2=允许写,3=无限制,如果参数被省略默认为3 .子程序 读配置项, 文本型, 公开, 读取指定配置文件中指定项目的文本内容。 .参数 配置文件名, 文本型, , 全路径配置文件名,指定配置文件的名称,通常以.ini作为文件名后缀。 .参数 小节名, 文本型, , 包含欲读入配置项所处节的名称。 .参数 项目名, 文本型, , 参数值指定欲读入配置项在其节中的名称。 .参数 默认值, 文本型, 可空, 如果指定配置项不存在,将返回此默认文本。如果指定配置项不存在且本参数被省略,将返回空文本。 .子程序 复制文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 源文件全路径, 文本型, , 被复制的文件名 .参数 目标全路径, 文本型, , 目标文件名 .参数 是否覆盖, 整数型, , 非0不覆盖,0覆盖 .子程序 关闭文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 文件号, 整数型, , 由“打开文件”命令获得 .子程序 快速寻找文件, 文本型, 公开, 成功返回(文件全路径),失败返回(空文本) .参数 欲寻找的文件路径, 文本型, , 如:C:\WINDOWS\system32 或 C:\ .参数 欲寻找的文件名, 文本型, , 如:1.exe , 2.dll.....等,暂时不支持*.*操作 .子程序 枚举磁盘, 整数型, 公开, 成功返回(磁盘分区数量) .参数 盘符, 文本型, 参考 数组, 装载磁盘盘符的数组变量,请用循环取出 .子程序 枚举文件, 整数型, 公开, 成功返回(文件数量),错误或无文件返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\WINDOWS\system32 .参数 文件扩展名, 文本型, 可空, 如:*.jpg , *.exe , *.dll......等,如果本参数被省略,默认为搜寻所有文件扩展名 .参数 文件属性, 整数型, 可空, 1、#只读文件; 2、#隐藏文件; 4、#系统文件; 32、#存档文件 通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数,默认为搜寻所有文件属性 .参数 文件数组, 文本型, 参考 数组, 装载文件名的数组变量,请用循环取出 .子程序 枚举子目录, 整数型, 公开, 成功返回(子目录数量),错误或无子目录返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\WINDOWS\system32 .参数 子目录数组, 文本型, 参考 数组, 装载目录名的数组变量,请用循环取出 .子程序 目录是否存在, 逻辑型, 公开, 如果目录存在返回(真),否则返回(假) .参数 目录全路径, 文本型, , 如:C:\WINDOWS .子程序 取磁盘剩余空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取磁盘已用空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取磁盘总空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取路径文件名, 文本型, 公开, 成功返回(文件名) .参数 文件路径, 文本型, , 如:c:\windows\system32\user32.dll .子程序 取文件扩展名, 文本型, 公开, 无扩展名返回空 .参数 文件名或文件全路径, 文本型, , 如:c:\windows\system32\user32.dll或user32.dll .子程序 取文件时间, 文件时间, 公开, 成功返回(“文件时间”数据类型) .参数 文件全路径, 文本型, , 如:C:\Windows\XXX.exe .子程序 取系统特定目录, 文本型, 公开, 成功返回("路径"),失败返回("") .参数 参数, 整数型, 可空, 如果为空=调试模式,将输出调试文本(所有路径),大家自己寻找自己需要的路径 .子程序 删除文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 欲删除的文件全路径, 文本型 .子程序 写配置项, 逻辑型, 公开, 将指定文本内容写入指定配置项中或者删除指定的配置项或节,如果指定配置文件不存在,将会自动创建。成功返回真,失败返回假。 .参数 配置文件名, 文本型, , 全路径配置文件名,指定配置文件的名称,通常以.ini作为文件名后缀。 .参数 节名称, 文本型, , 包含欲写入配置项所处节的名称。 .参数 配置项名称, 文本型, , 参数值指定欲写入配置项在其节中的名称。 .参数 欲写入值, 文本型, , 参数值指定欲写入到指定配置项中的文本。 .子程序 置文件时间, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 文件全路径, 文本型, , 如:C:\Windows\XXX.exe .参数 创建时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .参数 修改时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .参数 访问时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .程序集 多线程类, , 公开 .子程序 恢复线程, , 公开 .参数 线程ID, 整数型 .子程序 启动线程, 整数型, 公开, 成功返回(线程ID) .参数 子程序, 子程序指针, , 提供欲执行的子程序的指针 .参数 参数, 整数型, 可空, 可提供欲执行的子程序的参数,仅支持整数型 .参数 立即执行, 逻辑型, 可空, 默认为真。若此值为假,则建立的线程将被暂停等待恢复线程,反之则立即执行 .子程序 销毁线程, , 公开 .参数 线程ID, 整数型 .子程序 暂停线程, , 公开 .参数 线程ID, 整数型 .程序集 键盘操作, , 公开 .子程序 发送按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 另类模拟按键, , 公开 .参数 按键名, 文本型, , 键盘上的按键名称。如:F1 F2 Q W E R......等 .子程序 模拟按键, , 公开 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 模拟按键动作, , 公开 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 投递按键消息, , 公开, 向指定窗口句柄的窗口中投递按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .程序集 进程操作, , 公开 .子程序 程序是否存在, 逻辑型, 公开, 如果程序存在返回(真),否则返回(假) .参数 进程名称, 文本型, , 欲判断的进程名称,请区分大小写 .子程序 打开进程, 整数型, 公开, 成功返回(进程句柄),失败返回(0),使用完毕记得关闭进程 .参数 进程ID, 整数型, , 欲打开的进程ID .子程序 关闭进程, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 进程句柄, 整数型, , 由“打开进程”命令获得 .子程序 进程ID取进程名, 文本型, 公开, 根据指定的进程ID,获取该进程ID对应的进程名称。成功返回(进程名),失败返回(空文本) .参数 进程ID, 整数型, , 欲取进程名称的进程ID .子程序 进程名取进程ID, 整数型, 公开, 根据指定的进程名称,获取该进程名称对应的进程ID。成功返回(进程ID),失败返回(-1) .参数 进程名称, 文本型, , 欲取进程ID的进程名称,请区分大小写 .子程序 进程是否存在, 逻辑型, 公开, 如果进程存在返回(真),否则返回(假) .参数 进程ID, 整数型, , 欲判断的进程ID .子程序 枚举进程, 整数型, 公开, 成功返回(进程数量),失败返回(0) .参数 进程数据, 进程数据, 参考 数组, 请提供进程数据数组变量 .子程序 枚举进程模块, 整数型, 公开, 成功返回(模块数量),失败返回(0) .参数 进程ID, 整数型 .参数 模块数据, 模块数据, 参考 数组, 请提供模块数据数组变量 .子程序 取窗口进程ID, 整数型, 公开, 成功返回(该窗口的进程ID),失败返回(0) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取进程路径, 文本型, 公开, 成功返回(进程的完整路径),错误或权限不够返回(空文本),请先提升进程权限 .参数 进程ID, 整数型, , 欲取路径的进程ID .子程序 取进程内存数据, 内存数据, 公开, 如需要获得更多进程内存使用信息,请先提高进程权限 .参数 进程ID, 整数型 .子程序 取进程优先级, 整数型, 公开, 失败返回(0) 成功返回(实时=256 高=128 高于标准=32768 标准=32 低于标准=16384 低=64) .参数 进程ID, 整数型, 可空, 如果为空,表示自身进程ID .子程序 取自进程ID, 整数型, 公开, 成功返回(进程ID) .子程序 取自进程句柄, 整数型, 公开, 成功返回(进程句柄),失败返回(0) .子程序 提升进程权限, 逻辑型, 公开, 提升进程到指定权限 .参数 进程ID, 整数型, 可空, 如果参数被省略,表示自身进程 .参数 权限级别, 文本型, 可空, #备份 #启动 #关机 #调试 如果为空:#调试 .子程序 隐藏进程, 逻辑型, 公开, 成功返回(真),失败返回(假) .子程序 置进程优先级, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 进程ID, 整数型, 可空, 如果为空,表示自身进程ID .参数 优先级, 整数型, , 实时=256 高=128 高于标准=32768 标准=32 低于标准=16384 低=64 .子程序 终止进程, 逻辑型, 公开, 如果成功返回(真),否则返回(假) .参数 进程ID, 整数型, , 指定的进程ID .程序集 控件类, , 公开 .子程序 创建时钟, 整数型, 公开, 成功返回(时钟句柄),可以在无窗口的程序中使用,如:DLL .参数 时钟周期, 整数型, , 单位:毫秒 .参数 周期事件, 子程序指针, , &调用的子程序 .子程序 水晶进度条, , 公开, 使用比较暗的颜色,效果会更好 .参数 画板, 画板 .参数 最大位置, 整数型 .参数 当前位置, 整数型 .参数 颜色值, 整数型, 可空, 默认为#紫红 .参数 方向, 整数型, 可空, 1=从左到右 2=从右到左 3=从上到下 4=从下到上 默认为1 .参数 水晶效果, 逻辑型, 可空, 真=水晶效果 假=无效果 默认为真 .参数 显示背景, 逻辑型, 可空, 真=显示背景 假=无背景 默认为真 .参数 显示百分比, 逻辑型, 可空, 真=显示百分比 假=不显示 默认为假 文本颜色=画板.文本颜色 .子程序 销毁时钟, 整数型, 公开, 成功返回(1) .参数 时钟句柄, 整数型 .子程序 卸载OCX控件, , 公开 .参数 全路径, 文本型 .子程序 颜色选择框, 长整数型, 公开, 如果颜色被选择返回(10进制新颜色值),否则返回(初始颜色值) .参数 窗口句柄, 整数型, , 欲创建颜色 .参数 初始颜色值, 整数型, 可空, 如果参数被省略,默认为 #黑色 .子程序 注册OCX控件, , 公开 .参数 全路径, 文本型 .程序集 内存操作, , 公开 .子程序 读文本型内存, 文本型, 公开, 读取文本型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 读取长度, 整数型, , 欲读长度 .子程序 读整数型内存, 整数型, 公开, 读取整数型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .子程序 读字节集内存, 字节集, 公开, 读取字节集数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 读取长度, 整数型, , 欲读长度 .子程序 取系统内存状态, 内存参数, 公开, 获取系统当前内存使用状态,成功返回(内存参数类型数据) .子程序 任意进制转换, 文本型, 公开, 成功返回(转换后的文本)。支持2 8 10 16 32进制互转。例:任意进制转换(“16进制”,16,10) .参数 欲转换文本, 文本型, , 欲转换的文本数据 .参数 欲转换进制, 整数型, , 欲转换的文本数据的进制 .参数 转换的进制, 整数型, , 准备转换成什么进制?支持:2 8 10 16 32进制 .子程序 十六转十, 长整数型, 公开 .参数 十六进制数据, 文本型 .子程序 十转十六, 文本型, 公开 .参数 十进制数据, 长整数型 .子程序 写文本型内存, 逻辑型, 公开, 写入文本型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 文本型数据, 文本型, , 写入数据 .子程序 写整数型内存, 逻辑型, 公开, 写入整数型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 整数型数据, 整数型, , 写入数据 .子程序 写字节集内存, 逻辑型, 公开, 写入字节集数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 字节集数据, 字节集, , 写入数据 .程序集 鼠标操作, , 公开 .子程序 捕获鼠标, , 公开, 将鼠标捕获在指定窗口范围中 .参数 窗口句柄, 整数型 .子程序 发送鼠标消息, , 公开, 向指定窗口句柄的窗口中发送鼠标消息(无返回值) .参数 窗口句柄, 整数型, , 指定窗口的句柄 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .参数 横坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .参数 纵坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .子程序 模拟鼠标动作, , 公开 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .子程序 模拟鼠标移动, , 公开 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .子程序 取鼠标横坐标, 整数型, 公开 .子程序 取鼠标纵坐标, 整数型, 公开 .子程序 取鼠标坐标, 坐标, 公开 .子程序 取坐标距离, 整数型, 公开, 返回两坐标点之间的距离 .参数 坐标1, 坐标 .参数 坐标2, 坐标 .子程序 释放鼠标, , 公开 .子程序 释放鼠标活动范围, 逻辑型, 公开 .子程序 鼠标移动, , 公开 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .子程序 鼠标左右键互换, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 参数, 整数型, , 0=恢复 1=互换 .子程序 投递鼠标消息, , 公开, 向指定窗口句柄的窗口中投递鼠标消息(无返回值) .参数 窗口句柄, 整数型, , 指定窗口的句柄 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .参数 横坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .参数 纵坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .子程序 显示鼠标, , 公开 .子程序 限制鼠标活动范围, 逻辑型, 公开 .参数 矩形区域, 矩形区域 .子程序 隐藏鼠标, , 公开 .程序集 图形图象, , 公开 .子程序 快照后台窗口, 字节集, 公开, 捕获指定后台或前台窗口,返回相应图片数据,成功返回(快照字节集),失败返回(空字节集) .参数 窗口句柄, 整数型, , 欲截图的窗口句柄 .子程序 屏幕写字, 逻辑型, 公开, 向指定窗口中写入文本内容,成功返回(真) .参数 窗口句柄, 整数型, 可空, 欲写入文字的窗口的句柄,参数为空则为(屏幕) .参数 横坐标, 整数型, 可空, 写入文字内容的起始位置x横坐标,参数为空则默认为(0) .参数 纵坐标, 整数型, 可空, 写入文字内容的起始位置y纵坐标,参数为空则默认为(0) .参数 欲写入的内容, 文本型, , 欲写入的文本内容 .参数 字体颜色, 整数型, 可空, 参数为空则默认为(#红色) .参数 字体大小, 整数型, 可空, 参数为空则默认为(15) 单位/像素 .参数 字体类型, 文本型, 可空, 参数为空则默认为(宋体) 更多字体请查看相关资料! .参数 加粗, 逻辑型, 可空, 参数为空则(不加粗) 真=加粗 假=不加粗 .参数 倾斜, 逻辑型, 可空, 参数为空则(不倾斜) 真=倾斜 假=不倾斜 .参数 下划线, 逻辑型, 可空, 参数为空则(无下划线) 真=下划线 假=无下划线 .子程序 取RGB, RGB, 公开, 取指定颜色的RGB值。成功返回(RGB类型数据) .参数 颜色值, 整数型, , 欲取RGB值的十进制颜色 .子程序 取亮度, 整数型, 公开, 取指定颜色的亮度。成功返回(亮度值) .参数 颜色值, 整数型, , 欲取亮度的十进制颜色 .子程序 取指定坐标颜色, 整数型, 公开, 取屏幕中指定坐标的颜色(返回10进制颜色值) .参数 横坐标, 整数型, , 指定屏幕横坐标 .参数 纵坐标, 整数型, , 指定屏幕纵坐标 .子程序 转换图像格式, 字节集, 公开, 直接在内存中转换图象格式,支持*.bmp *.jpg *.gif *.tiff *.png互转。成功返回(转换后的新图象字节集),失败返回(空字节集) .参数 图像数据, 字节集, , 欲转换的图像数据 .参数 转换格式, 整数型, , 欲转换的新图片数据格式。1=bmp 2=jpg 3=gif 4=tiff 5=png .程序集 网络操作, , 公开 .子程序 检测网络地址, 逻辑型, 公开, 成功连接返回(真),否则返回(假) .参数 网络地址, 文本型, , 如:http://www.dywt.com.cn 必须以http://开头 .子程序 取IE地址, 文本型, 公开, 获取IE地址栏文本内容,成功返回(地址栏内容),失败返回(空文本) .参数 窗口句柄, 整数型, , 欲取地址栏内容的IE浏览器的窗口句柄 .子程序 取计算机名, 文本型, 公开, 成功返回本地计算机名称,失败返回空字符串。 .子程序 取用户名, 文本型, 公开, 成功返回本地当前用户名称,失败返回空字符串。 .子程序 取远程网卡物理地址, 文本型, 公开, 取局域网计算机网卡MAC地址。成功返回(欲测试IP的MAC地址),失败返回(空文本) .参数 IP地址, 文本型, , 欲测试的局域网计算机的IP地址。如:192.168.0.1 , 192.168.1.5......等等 .程序集 文本操作, , 公开 .子程序 取空格前文本, 文本型, 公开 .参数 文本数据, 文本型 .子程序 取文本长度, 整数型, 公开, 返回(文本型数据的长度) .参数 文本数据, 文本型, , 参数值指定欲检查其长度的文本数据 .子程序 删首尾空格, 文本型, 公开, 返回一个文本,其中包含被删除了首部及尾部全角或半角空格的指定文本 .参数 欲删除空格的文本, 文本型, , 通过“删首尾空”命令将一段文本中文字前和文字后的空格全部删除 .程序集 系统服务, , 公开 .子程序 枚举系统服务, 逻辑型, 公开 .参数 服务名称, 文本型, 数组, 数组变量,用于返回文本数组数据 .参数 显示名称, 文本型, 可空 数组, 数组变量,用于返回文本数组数据 .子程序 启动, 逻辑型, 公开, 成功返回(真),否则返回(假)。注意服务的依存关系! .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取登入为, 文本型, 公开, 成功返回(LocalSystem=本地系统;NT AUTHORITY\LocalService=本地服务;NT Authority\NetworkService=网络服务) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取服务数量, 整数型, 公开, 成功返回(系统服务的总数量) .子程序 取服务状态, 整数型, 公开, 成功返回(1=已停止:2=准备开始;3=准备停止;4=正在运行;5=准备继续;6=准备暂停;7=已暂停) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取可执行文件的路径, 文本型, 公开, 成功返回(可执行文件的路径) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取描述, 文本型, 公开, 成功反回(服务的描述) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取启动类型, 整数型, 公开, 成功返回(2=自动;3=手动;4=已禁用) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取显示名称, 文本型, 公开, 成功返回(服务的显示名称) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 停止, 逻辑型, 公开, 成功返回(真),否则返回(假)。注意服务的依存关系! .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 置登入为, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 服务类型, 文本型, , #本地系统;#本地服务;#网络服务 .子程序 置可执行文件的路径, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 路径, 文本型, , 自定义的路径 .子程序 置描述, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 描述, 文本型, , 自定义的描述 .子程序 置启动类型, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 启动类型, 整数型, , 2=自动;3=手动;4=已禁用 .子程序 置显示名称, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 显示名称, 文本型, , 自定义的显示名称 .程序集 注册表类, , 公开 .子程序 枚举子键, 整数型, 公开, 成功返回(子键数量),失败或没有子键返回(0) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型 .参数 子键名, 文本型, 参考 数组, 在此处存放自定义子键名储存数组文本型变量,请用循环取出 .参数 子键类型, 整数型, 参考 数组, 1=REG_SZ , 2=REG_EXPAND_SZ , 3=REG_BINARY , 4=REG_DWORD , 7=REG_MULTI_SZ .参数 子键值, 字节集, 参考 数组, 在此处存放自定义子键值储存数组文本型变量,请用循环取出 .子程序 枚举子项, 整数型, 公开, 成功返回(子项数量),失败或没有子项返回(0) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型 .参数 子项名, 文本型, 参考 数组, 在此处存放自定义子键名储存数组文本型变量,请用循环取出 .子程序 取数值注册项, 长整数型, 公开, 读取注册表整数键值,(REG_DWORD)类型键值。成功返回(10进制键值),失败返回(-1) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .子程序 取文本注册项, 文本型, 公开, 读取注册表文本键值,(REG_SZ , REG_MULTI_SZ , REG_EXPAND_SZ)类型键值。成功返回(文本键值),失败或无键值返回(空文本) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .子程序 取字节集注册项, 字节集, 公开, 成功返回(指定的字节集类型注册表项值),失败或无键值返回(空字节集) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .DLL命令 _取窗口标题长度, 整数型, "user32.dll", "GetWindowTextLengthA", 公开 .参数 窗口句柄, 整数型 .常量 HKEY_CLASSES_ROOT, "2147483648", 公开, 注册表根目录&H80000000; .常量 HKEY_CURRENT_CONFIG, "2147483653", 公开, 注册表根目录&H80000005; .常量 HKEY_CURRENT_USER, "2147483649", 公开, 注册表根目录&H80000001; .常量 HKEY_DYN_DATA, "2147483654", 公开, 注册表根目录&H80000006; .常量 HKEY_LOCAL_MACHINE, "2147483650", 公开, 注册表根目录&H80000002; .常量 HKEY_USERS, "2147483651", 公开, 注册表根目录&H80000003; .常量 备份, "“SeBackupPrivilege”", 公开, 提升进程权限 .常量 本地服务, "“NT AUTHORITY\LocalService”", 公开, NT服务 .常量 本地系统, "“LocalSystem”", 公开, NT服务 .常量 调试, "“SeDebugPrivilege”", 公开, 提升进程权限 .常量 关机, "“SeShutdownPrivilege”", 公开, 提升进程权限 .常量 启动, "“SeRestorePrivilege”", 公开, 提升进程权限 .常量 网络服务, "“NT Authority\NetworkService”", 公开, NT服务
仅收录该书籍以供学习和讨论 包含pdf书籍及经过验证的示例 执行demo中的示例方式 在编译环境下进入demo目录,执行nmake命令在bin目录下生成可执行文件 注:demo无注释,对应书本中部分示例。 目录 第1章 Windows应用程序开发入门 1 1.1 第一个实例程序 1 1.1.1 start.exe 1 1.1.2 Windows API 2 1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 安装Microsoft Platform SDK 4 1.2.3 集成Microsoft Platform SDK与Visual C++速成版 5 1.2.4 Vista SDK与Visual Studio 2008 6 1.2.5 Visual Studio专业版或团队系统版 7 1.2.6 使用图形化IDE建立工程、进行编译 7 1.2.7 “解决方案”与“工程” 8 1.2.8 使用命令行工具编译 8 第2章 Windows API概要 10 2.1 Windows数据类型 10 2.1.1 Windows数据类型示例 10 2.1.2 Windows数据类型与标准C数据类型的关系 14 2.1.3 Windows数据类型与Windows API 14 2.1.4 Windows中的数据结构 15 2.2 Windows API的功能分类 15 2.2.1 系统基本服务 15 2.2.2 系统管理 17 2.2.3 用户界面 17 2.2.4 图像和多媒体 20 2.2.5 网络 20 2.2.6 系统安全 20 2.2.7 其他功能 21 2.3 Windows API核心DLL 21 2.3.1 Kernel32.dll 21 2.3.2 User32.dll 21 2.3.3 Gdi32.dll 22 2.3.4 标准C函数 22 2.3.5 其他Dll 22 2.4 Unicode和多字节 22 2.4.1 W版本和A版本的API 24 2.4.2 Unicode与ASCII的转换 24 2.5 对Windows程序设计规范的建议 25 第3章 开发工具配置与使用 26 3.1 使用Visual C/C++编译链接工具 26 3.1.1 编译器cl.exe 27 3.1.2 资源编译器rc.exe 31 3.1.3 链接器link.exe 32 3.1.4 其他工具 38 3.1.5 编译链接工具依赖的环境变量 39 3.1.6 示例:使用/D选项进行条件编译 42 3.2 使用Platform SDK 43 3.2.1 Platform SDK的目录结构与功能 43 3.2.2 为编译链接工具设置环境变量 45 3.2.3 Platform SDK工具集 46 3.2.4 Windows Vista SDK 48 3.3 编写Makefile 48 3.3.1 使用nmake.exe构建工程 48 3.3.2 Makefile实例 50 3.3.3 注释 50 3.3.4 宏 50 3.3.5 描述块:目标、依赖项和命令 53 3.3.6 makefile预处理 55 3.3.7 在Platform SDK的基础上使用nmake 56 3.4 使用WinDbg调试 57 3.4.1 安装WinDbg 57 3.4.2 编译可调试的程序 58 3.4.3 WinDbg命令 59 3.4.4 调试过程演示 59 3.5 集成开发环境 Visual Studio 62 3.5.1 工程类型选择与配置 62 3.5.2 Visual Studio快捷方式 64 3.5.3 生成项目 64 3.5.4 调试 65 3.5.5 选项与设置 65 3.6 开发环境配置总结 66 第4章 文件系统 67 4.1 概述 67 4.1.1 文件系统的基本概念 67 4.1.2 文件系统主要API 68 4.2 磁盘和驱动器管理 70 4.2.1 遍历卷并获取属性 70 4.2.2 操作驱动器挂载点 76 4.2.3 判断光驱中是否有光盘 81 4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 83 4.3 文件和目录管理 86 4.3.1 删除、复制、重命名、移动文件 87 4.3.2 创建、打开、读写文件,获取文件大小 90 4.3.3 创建目录 96 4.3.4 获取程序所在的目录、程序模块路径,获取和设置当前目录 97 4.3.5 查找文件、遍历指定目录下的文件和子目录 100 4.3.6 递归遍历目录树 103 4.3.7 获取、设置文件属性和时间 105 4.4 内存映射文件 110 4.4.1 使用Mapping File提高文件读写的效率 110 4.4.2 通过Mapping File在进程间传递和共享数据 115 4.4.3 通过文件句柄获得文件路径 118 4.5 总结 121 第5章 内存管理 122 5.1 Windows内存管理原理 122 5.1.1 基本概念 122 5.1.2 分页与分段内存管理、内存映射与地址转换 123 5.1.3 进程的内存空间 125 5.1.4 虚拟内存布局、内存的分工、堆与栈 127 5.1.5 内存的保护属性和存取权限 127 5.1.6 本章API列表 127 5.2 堆管理 129 5.2.1 获取堆句柄、分配与再分配堆 129 5.2.2 获取堆中内存块的大小信息 133 5.2.3 释放内存、销毁堆 134 5.3 全局(Global)和局部(Local)内存管理 136 5.3.1 Global函数 136 5.3.2 Local函数 137 5.3.3 使用全局和局部函数分配和释放内存、改变内存块属性 137 5.4 虚拟内存管理 138 5.4.1 虚拟地址空间与内存分页 139 5.4.2 分配和释放可读可写的虚拟内存页面 139 5.4.3 修改内存页面状态和保护属性、将页面锁定在物理内存中 142 5.4.4 管理其他进程的虚拟内存 143 5.5 内存操作与内存信息管理 144 5.5.1 复制、填充、移动、清零内存块、防止缓冲区溢出 144 5.5.2 获得当前系统内存使用情况 146 5.5.3 判断内存指针的可用性 147 5.6 各种内存分配方式的关系与比较 148 5.6.1 标准C内存管理函数与Windows内存管理API的关系 149 5.6.2 功能性区别 149 5.6.3 效率的区别 149 第6章 进程、线程和模块 150 6.1 基本概念 150 6.1.1 应用程序与进程 150 6.1.2 控制台应用程序与图形用户界面应用程序 151 6.1.3 动态链接库、模块 151 6.1.4 线程、纤程与作业 152 6.1.5 权限与优先级 153 6.2 进程管理 153 6.2.1 创建进程、获取进程相关信息、获取启动参数 153 6.2.2 编写控制台程序和图形用户界面应用程序 158 6.2.3 获取和设置环境变量 158 6.3 线程、纤程 162 6.3.1 创建线程、退出线程、获取线程信息 162 6.3.2 挂起、恢复、切换、终止线程 164 6.3.3 创建远程线程、将代码注入其他进程中执行 167 6.3.4 创建纤程、删除纤程、调度纤程 170 6.3.5 纤程与线程的互相转换 171 6.4 进程状态信息 176 6.4.1 PS API与Tool help API 176 6.4.2 遍历系统中的进程 178 6.4.3 列举进程的模块、线程 182 6.4.4 进程的堆使用、内存占用、虚拟内存大小,页面错误情况 184 6.5 动态链接库 185 6.5.1 加载、释放DLL、通过句柄获取DLL相关信息 186 6.5.2 编写动态链接库、导出函数 186 6.5.3 创建动态链接库工程,配置DLL编译链接选项 188 6.5.4 运行时动态获取DLL导出函数地址并调用 189 6.5.5 声明导出函数、创建lib库,为其他模块提供导入表调用接口 190 6.5.6 通过构建导入表调用DLL导出函数 191 第7章 线程同步 192 7.1 基本原理 192 7.1.1 线程同步的过程 193 7.1.2 同步对象 193 7.1.3 等待函数 193 7.2 同步对象示例 194 7.2.1 使用事件对象(Event) 194 7.2.2 使用互斥对象(Mutex) 199 7.2.3 使用信号量控制访问共享数据的线程数量 202 7.2.4 使用可等待计时器(Timer) 206 7.3 等待进程和线程的执行完成 209 第8章 服务 210 8.1 基本概念 210 8.1.1 服务控制器(SCM) 211 8.1.2 服务程序 211 8.1.3 服务控制管理程序 211 8.1.4 系统服务管理工具 211 8.1.5 服务的属性 211 8.2 编写服务程序 212 8.2.1 入口函数 212 8.2.2 服务主函数 212 8.2.3 控制处理函数 213 8.3 实现对服务的控制和管理 216 8.3.1 创建、删除服务 216 8.3.2 启动、停止服务,向服务发送控制请求 219 8.3.3 管理服务状态、配置服务、服务的依赖关系 222 第9章 图形用户界面 229 9.1 字符界面程序 229 9.1.1 基本概念 230 9.1.2 控制台读写 231 9.1.3 控制台字体、颜色等属性,操作屏幕缓存 234 9.1.4 控制台事件 244 9.2 图形用户界面:基本概念 246 9.2.1 窗口 246 9.2.2 窗口类 246 9.2.3 消息和消息处理函数 247 9.2.4 控件 247 9.2.5 资源 248 9.2.6 对话框 248 9.3 图形用户界面:窗口 248 9.3.1 注册窗口类 249 9.3.2 创建窗口 251 9.3.3 窗口消息处理函数 253 9.3.4 窗口属性、位置和大小 256 9.3.5 窗口显示方式 257 9.3.6 线程消息队列和消息循环 258 9.4 图形用户界面:控件 258 9.4.1 Tree View控件 258 9.4.2 为Tree View控件增加节点 260 9.4.3 Tree View右键菜单 262 9.4.4 List View控件 263 9.4.5 为List View控件增加分栏 265 9.4.6 为List View控件增加项 266 9.4.7 文本框控件 267 9.4.8 为文本框控件设置文字 268 9.5 界面资源 269 9.5.1 资源脚本(.rc) 269 9.5.2 资源ID定义和头文件 272 9.5.3 在程序中使用资源 273 9.6 菜单 273 9.6.1 菜单资源和菜单句柄 273 9.6.2 动态增加、删除、设置菜单及菜单项 274 9.6.3 菜单消息处理 274 9.7 对话框 275 9.7.1 创建对话框 275 9.7.2 对话框消息处理函数 276 第10章 系统信息的管理 277 10.1 Windows系统信息 277 10.1.1 获取系统版本 277 10.1.2 获取计算机硬件信息 279 10.1.3 获取系统目录等信息 281 10.1.4 用户名、计算机名、域名 282 10.1.5 处理系统颜色信息、尺度信息等 284 10.1.6 鼠标、键盘等外设信息 285 10.2 时间信息 286 10.2.1 设置、获取系统时间 286 10.2.2 获取开机至现在持续的时间 287 10.2.3 文件时间与系统时间的转换 287 10.3 注册表 288 10.3.1 注册表的作用及组织形式 288 10.3.2 键、子键、键属性及键值的相关操作 289 10.3.3 列举注册表项及键值 292 10.3.4 通过注册表设置一个自启动的程序 293 10.3.5 设置随程序启动而启动的调试器(任何程序) 294 10.3.6 指定程序崩溃实时调试器 294 第11章 进程间通信 295 11.1 邮槽(MailSlot) 295 11.1.1 创建邮槽、从邮槽中读取消息 296 11.1.2 通过邮槽发送消息 299 11.2 管道(Pipe) 300 11.2.1 创建命名管道 300 11.2.2 管道监听 302 11.2.3 使用异步I/O进行读写 303 11.2.4 关闭管道实例 307 11.2.5 客户端 307 11.3 剪贴板 310 11.3.1 获取、设置剪贴板数据 310 11.3.2 监视剪贴板 317 11.3.3 剪贴板数据格式 325 11.4 数据复制消息(WM_COPYDATA) 327 11.4.1 数据发送端 327 11.4.2 数据接收端 330 11.5 其他进程间通信方式 332 11.5.1 动态数据交换(DDE)和网络动态数据交换(NDDE) 332 11.5.2 通过File Mapping在进程间共享数据 333 11.5.3 Windows Socket 333 第12章 Windows Shell程序设计 334 12.1 Windows Shell目录管理 335 12.1.1 Shell对目录和文件的管理形式 335 12.1.2 “我的文档”等特殊目录相关操作 335 12.1.3 绑定、遍历、属性获取 337 12.1.4 浏览文件对话框 339 12.2 文件协助(File Associations) 340 12.2.1 文件类型相关注册表键值 340 12.2.2 为文件指定默认打开程序 341 12.2.3 定制文件类型的图标 342 12.3 Shell扩展 343 12.3.1 对象及概念 343 12.3.2 CLSID,处理例程的GUID 344 12.3.3 注册Shell扩展 345 12.3.4 COM程序开发基础 346 12.3.5 编写Handler程序 346 12.3.6 Shell扩展程序的调试 362 12.3.7 总结 363 12.4 任务栏通知区域(Tray)图标 363 12.4.1 创建图标窗口 364 12.4.2 创建图标和图标菜单 367 12.4.3 最小化主窗口到通知区域 370 12.4.4 弹出气泡通知 372 12.4.5 动态图标 374 12.4.6 其他功能 376 第13章 Windows GDI 379 13.1 GDI编程接口概述 379 13.1.1 Windows GDI的功能 379 13.1.2 链接库与头文件 380 13.2 设备上下文(DC)、输出操作与图形对象 380 13.2.1 设备上下文类型与关联设备 380 13.2.2 图形对象的作用及与DC的关系 380 13.2.3 各类图形对象的具体属性与作用 383 13.2.4 绘制、填充、写入等图形输出操作 384 13.2.5 修剪与坐标变换 385 13.2.6 设备上下文的图形模式 385 13.3 一个最简单的GDI程序 386 13.3.1 示例 386 13.3.2 DC的操作 387 13.3.3 颜色的表示 388 13.3.4 图形对象:画刷和画笔 389 13.3.5 输出操作:绘制图形和线条 390 13.4 文字和字体 391 13.4.1 选择、设置字体 393 13.4.2 选择字体图形对象 394 13.4.3 文字的颜色 394 13.4.4 输出文字 395 13.4.5 DC图形模式设置 395 13.4.6 遍历字体 396 13.4.7 为系统安装、删除字体文件 398 13.5 绘制线条 398 13.5.1 选择画笔对象 399 13.5.2 直线 399 13.5.3 绘制任意曲线 399 13.5.4 跟踪鼠标轨迹 399 13.5.5 弧线 405 13.6 绘制图形 405 13.6.1 填充颜色与边缘勾勒 406 13.6.2 绘制矩形、椭圆、圆角矩形 406 13.6.3 椭圆弓形和椭圆扇形 411 13.6.4 多边形 411 13.6.5 RECT结构及对RECT的操作 412 13.7 位图操作 414 13.7.1 截取屏幕、保存位图文件 414 13.7.2 将位图显示在界面上 419 13.8 区域(Regions)、路径(Paths)与修剪(Clip)操作 422 13.8.1 区域的创建及形状、位置等属性 422 13.8.2 区域边沿、区域填充、反转与勾勒操作 423 13.8.3 组合、比较、移动等操作 426 13.8.4 点击测试(Hit Testing) 427 13.8.5 路径的创建与操作 431 13.8.6 路径转换为区域 432 13.8.7 使用区域和路径进行修剪操作,限制输出 432 13.9 坐标变换 438 13.9.1 缩放 439 13.9.2 旋转 440 13.10 调色板 440 第14章 网络通信与配置 443 14.1 Socket通信 444 14.1.1 客户端 444 14.1.2 服务端 449 14.1.3 处理并发的客户端连接 455 14.1.4 网络通信的异步I/O模式 456 14.2 IP Helper 456 第15章 程序安装与设置 463 15.1 创建cab文件 463 15.1.1 makecab.exe 463 15.1.2 压缩多个文件 464 15.1.3 Cabinet软件开发工具包(CABSDK) 466 15.2 编写INF文件 466 15.2.1 INF文件格式 466 15.2.2 Install节 468 15.2.3 CopyFiles和AddReg等安装过程 468 15.2.4 源路径和目的路径 469 15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 15.4 使用msi文件进行安装 472 15.4.1 Windows Installer Service 472 15.4.2 msi文件的创建与修改工具orca.exe 474 15.4.3 准备工作 475 15.4.4 编辑表组 475 第16章 设备驱动管理与内核通信 476 16.1 设备管理 476 16.1.1 列举设备接口 477 16.1.2 监控设备的加载和卸载 483 16.2 I/O控制、内核通信 488 16.2.1 加载驱动程序 488 16.2.2 控制驱动程序、与驱动程序进行通信 495 16.3 编写设备驱动程序 498 16.3.1 驱动程序开发包:DDK 499 16.3.2 开发驱动程序 499 16.4 I/O模式,同步与异步 504 第17章 用户、认证和对象安全 506 17.1 基本概念 506 17.1.1 访问令牌、权限和用户标识 506 17.1.2 进程的系统操作权限 507 17.1.3 安全对象 508 17.1.4 访问控制列表(ACL) 508 17.2 安全机制程序示例 509 17.2.1 列举进程访问令牌内容和权限 509 17.2.2 修改进程的权限 514 17.2.3 列举安全对象的安全描述符 515 17.2.4 修改安全描述符 521 17.3 用户 522 17.3.1 创建用户 522 17.3.2 用户组 523 17.3.3 删除用户 525 17.3.4 列举用户和用户组、获取用户信息 525 第18章 Windows API的内部原理 532 18.1 关于API的补充说明 532 18.1.1 Windows API的版本演进和Vista新增API 532 18.1.2 64位操作系统的接口 533 18.2 Windows系统中的对象封装 533 18.2.1 什么是对象 534 18.2.2 面向对象的思想 534 18.2.3 Windows系统中的对象:内核对象、GDI对象等 534 18.3 Windows程序设计参考:文档资源与样例代码 534 18.3.1 SDK文档和MSDN 534 18.3.2 SDK示例代码 535 18.4 x86平台程序函数调用原理 535 18.4.1 函数调用的真实过程 535 18.4.2 函数调用约定 539 18.4.3 为什么通过参数返回数据时只能使用指针 540 18.4.4 缓冲区溢出 540 18.4.5 程序运行错误的调试技巧 540 18.5 可执行程序结构与API函数接口内部机理 541 18.5.1 Windows可执行程序结构 541 18.5.2 导入表、导出表、动态链接 543 18.5.3 NTDLL.DLL、NATIVE API和SSDT 544 18.5.4 API HOOK 546 18.6 发布程序 546 18.6.1 合理选择编译链接选项 546 18.6.2 构建到指定路径 546 18.7 模块化,向Windows API学习接口定义 547 18.7.1 lib文件 547 18.7.2 头文件 547 18.7.3 为第三方应用软件提供SDK 547
Wsyscheck是一款手动清理病毒木马的工具,其目的是简化病毒木马的识别与清理工作。 一般来说,对病毒体的判断主要可以采用查看路径,查看文件名,查看文件创建日期,查看文件厂商,微软文件校验,查看启动项等方法,Wsyschck在这些方面均尽量简化操作,提供相关的数据供您分析。 Wsyscheck基本功能简单介绍: 1:软件设置中的模块、服务简洁显示 简洁显示会过滤所微软文件,但在使用了“校验微软文件签名”功能后,通不过的微软文件也会显示出来。 SSDt右键“全部显示”是默认动作,当取消这个选项后,则仅显示SSDT表中已更改的项目。 2:关于Wsyscheck的颜色显示 进程页: 红色表示非微软进程,紫红色表示虽然进程是微软进程,但其模块中有非微软的文件。 服务页: 红色表示该服务不是微软服务,且该服务非.sys驱动。(最常见的是.exe与.dll的服务,木马大多使用这种方式)。 使用“检查键值”后,蓝色显示的是有键值保护的随系统启动的驱动程序。它们有可能是杀软的自我保护,也有可能是木马的键值保护。 在取消了“模块、服务简洁显示”后,查看第三方服务可以点击标题条”文件厂商”排序,结合使用“启动类型”、“修改日期”排序更容易观察到新增的木马服务。 进程页中查看模块与服务页中查看服务描述可以使用键盘的上下键控制。 在使用“软件设置”-“校验微软文件签名”后,紫红色显示未通过微软签名的文件。同时,在各显示栏的"微软文件校验"会显示Pass与no pass。(可以据此参考是否是假冒微软文件,注意的是如果紫红色显示过多,可能是你的系统是网上常见的Ghost精简版,这些版本可能精简掉了微软签名数据库所以结果并不可信) SSDT管理页: 默认显示全部的SSDT表,红色表示内核被HOOK的函数。查看第三方模块,可以点击两次标签“映像路径”排序,则第三方HOOK的模块会排在一起列在最前面。也可以取消“全部显示”,则仅显示入口改变了的函数。 SSDT页的“代码异常”栏如显示“YES”,表明该函数被Inline Hook。如果一个函数同时存在代码HOOK与地址HOOK,则对应的模块路径显示的是Inline Hook的路径,而使用“恢复当前函数代码”功能只恢复Inline Hook,路径将显示为地址HOOK的模块路径,再使用“恢复当前函数地址”功能就恢复到默认的函数了。 使用“恢复所有函数”功能则同时恢复上述两种HOOK。 发现木马修改了SSDT表时请先恢复SSDT,再作注册表删除等操作。 活动文件页: 红色显示的常规启动项的内容。 3:关于Wsyscheck启动后状态栏的提示“警告!程序驱动未加载成功,一些功能无法完成。” 多数情况下是安全软件阻止了Wsyscheck加载所需的驱动,这种情况下Wsyscheck的功能有一定减弱,但它仍能用不需要驱动的方法来完成对系统的修复。 驱动加载成功的情况下,对于木马文件可以直接使用Wsyscheck中各页中的删除文件功能,本功能带有“直接删除”运行中的文件的功能。 4:关于卸载模块 对HOOK了系统关键进程的模块卸载可能导致系统重启,这与该模块的写法有关系,所以卸载不了的模块不要强求卸载,可以先删除该模块的启动项或文件(驱动加载情况下使用删除后重启文件即消失)。 5:关于文件删除 驱动加载的情况下,Wsyscheck的删除功能已经够用了,大多数文件都可以立即删除(进程模块可以直接使用右键下带删除的各项功能),加载的DLL文件删除后虽然文件仍然可见,但事实上已删除,重启后该文件消失。 文件管理页的“删除”操作是删除文件到回收站,支持畸形目录下的文件删除。应注意的是如果文件本身在回收站内,请使用直接删除功能。或者使用剪切功能将它复制到另一个地方。否则你可能看到回收站内的文件删除了这个又添加了那个。 Wsyscheck的或“dos删除功能”需要单独下载Wsyscheck的附加模块文件WDosDel.dat,将此文件与Wsyscheck放在一起会显示出相关页面,添加待删除文件并重启,启动菜单中将出现“删除顽固文件”字样,选择后转入Dos删除文件。在某些机器上,若执行“dos删除”重启后系统报告文件损坏要修复(此时修复会造成文件系统的真正损坏),此时请不要修复而是立即关闭主机电源,重新开机。(这种情况是Dos删除所带的NTFS支持软件本身的BUG造成的,并不需要真正的修复,只需关闭电源重新开机即可。) “重启删除”与“Dos删除”可以同时使用。其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免
Wsyscheck是一款手动清理病毒木马的工具,其目的是简化病毒木马的识别与清理工作。 一般来说,对病毒体的判断主要可以采用查看路径,查看文件名,查看文件创建日期,查看文件厂商,微软文件校验,查看启动项等方法,Wsyschck在这些方面均尽量简化操作,提供相关的数据供您分析。 最终判断并清理木马取决际您个人的分析及对Wsyscheck基本功能的熟悉程度。 Wsyscheck基本功能简单介绍: 1:软件设置中的模块、服务简洁显示 简洁显示会过滤所微软文件,但在使用了“校验微软文件签名”功能后,通不过的微软文件也会显示出来。 SSDt右键“全部显示”是默认动作,当取消这个选项后,则仅显示SSDT表中已更改的项目。 2:关于Wsyscheck的颜色显示 进程页: 红色表示非微软进程,紫红色表示虽然进程是微软进程,但其模块中有非微软的文件。 服务页: 红色表示该服务不是微软服务,且该服务非.sys驱动。(最常见的是.exe与.dll的服务,木马大多使用这种方式)。 使用“检查键值”后,蓝色显示的是有键值保护的随系统启动的驱动程序。它们有可能是杀软的自我保护,也有可能是木马的键值保护。 在取消了“模块、服务简洁显示”后,查看第三方服务可以点击标题条”文件厂商”排序,结合使用“启动类型”、“修改日期”排序更容易观察到新增的木马服务。 进程页中查看模块与服务页中查看服务描述可以使用键盘的上下键控制。 在使用“软件设置”-“校验微软文件签名”后,紫红色显示未通过微软签名的文件。同时,在各显示栏的"微软文件校验"会显示Pass与no pass。(可以据此参考是否是假冒微软文件,注意的是如果紫红色显示过多,可能是你的系统是网上常见的Ghost精简版,这些版本可能精简掉了微软签名数据库所以结果并不可信) SSDT管理页: 默认显示全部的SSDT表,红色表示内核被HOOK的函数。查看第三方模块,可以点击两次标签“映像路径”排序,则第三方HOOK的模块会排在一起列在最前面。也可以取消“全部显示”,则仅显示入口改变了的函数。 SSDT页的“代码异常”栏如显示“YES”,表明该函数被Inline Hook。如果一个函数同时存在代码HOOK与地址HOOK,则对应的模块路径显示的是Inline Hook的路径,而使用“恢复当前函数代码”功能只恢复Inline Hook,路径将显示为地址HOOK的模块路径,再使用“恢复当前函数地址”功能就恢复到默认的函数了。 使用“恢复所有函数”功能则同时恢复上述两种HOOK。 发现木马修改了SSDT表时请先恢复SSDT,再作注册表删除等操作。 活动文件页: 红色显示的常规启动项的内容。 3:关于Wsyscheck启动后状态栏的提示“警告!程序驱动未加载成功,一些功能无法完成。” 多数情况下是安全软件阻止了Wsyscheck加载所需的驱动,这种情况下Wsyscheck的功能有一定减弱,但它仍能用不需要驱动的方法来完成对系统的修复。 驱动加载成功的情况下,对于木马文件可以直接使用Wsyscheck中各页中的删除文件功能,本功能带有“直接删除”运行中的文件的功能。 4:关于卸载模块 对HOOK了系统关键进程的模块卸载可能导致系统重启,这与该模块的写法有关系,所以卸载不了的模块不要强求卸载,可以先删除该模块的启动项或文件(驱动加载情况下使用删除后重启文件即消失)。 5:关于文件删除 驱动加载的情况下,Wsyscheck的删除功能已经够用了,大多数文件都可以立即删除(进程模块可以直接使用右键下带删除的各项功能),加载的DLL文件删除后虽然文件仍然可见,但事实上已删除,重启后该文件消失。 文件管理页的“删除”操作是删除文件到回收站,支持畸形目录下的文件删除。应注意的是如果文件本身在回收站内,请使用直接删除功能。或者使用剪切功能将它复制到另一个地方。否则你可能看到回收站内的文件删除了这个又添加了那个。 Wsyscheck的或“dos删除功能”需要单独下载Wsyscheck的附加模块文件WDosDel.dat,将此文件与Wsyscheck放在一起会显示出相关页面,添加待删除文件并重启,启动菜单中将出现“删除顽固文件”字样,选择后转入Dos删除文件。在某些机器上,若执行“dos删除”重启后系统报告文件损坏要修复(此时修复会造成文件系统的真正损坏),此时请不要修复而是立即关闭主机电源,重新开机。(这种情况是Dos删除所带的NTFS支持软件本身的BUG造成的,并不需要真正的修复,只需关闭电源重新开机即可。) “重启删除”与“Dos删除”可以同时使用。其列表都可以手动编辑,一行一个文件路径即可。关闭程序时如果上述两者之一存在删除列表,会问询是否执行。 注意,为避免病毒程序守护,Wsyscheck可以在删除某些文件时可能会采取0字节文件占位的方式来确保删除。这些0字节文件在Wsyscheck退出后会被自动清理。是否采用此方式依赖于“软件设置”下的“删除文件后锁定”选项是否勾选。 如果需要对删除的文件备份,先启用软件设置下的“删除文件前备份文件”,它将在删除前将文件备份到%SystemDrive%\VirusBackup目录中,且将文件名添加.vir后缀以免误执行。 6:关于进程的结束后的反复创建 如果确系木马文件,可选择结束进程并删除文件,这样的话Wsyscheck会将其结束并删除文件。但有时因为木马有关联进程未同时结束,会重新加载木马文件。这时我们可以选择“软件设置”下的“删除文件后锁定”。这时当结束进程并删除文件后Wsyscheck将创建0字节的锁定文件防止木马再生。 也可以使用进程页的“禁止程序运行”,这个功能就是流行的IFEO劫持功能,我们可以使用它来屏蔽一些结束后又自动重新启动的程序。通过禁用它的执行来清理文件。解除禁用的程序用“安全检查”页的“禁用程序管理”功能,所以在木马使用IFEO劫持后也可以“禁用程序管理”中恢复被劫持的程序。 软件设置下的“禁止进程与文件创建”功能是针对木马的反复启动,反复创建文件,反复写注册表启动项进行监视或阻止,使用本功能后能更清松地删除木马文件及注册表启动项。开启禁止“禁止进程与文件创建”后会自动添加“监控日志”页,取消后该页消失。可以观察一下日志情况以便从所阻止的动作中找到比较隐藏的木马文件。注意的是,如果木马插入系统进程,则反映的日志是阻止系统进程的动作,你需要自我分辨该动作是否有害并分析该进程的模块文件。 要保留日志请在取消前Ctrl+A全选后复制。注意,为防止日志过多,满1000条后自动删除前400条日志。 对于反复写注册表启动项无法修复的情况,可以先用“禁止进程与文件创建”找出覆写该注册表项的进程,针对木马插入的线程进行挂起,再修复注册表。 懒于查看分析,不想太麻烦的话,可以先删除文件(直接删除、重启删除),待重启之后再修复注册表。 8:关于批量处理 各页中可尝试用Ctrl,Shift多选再执行相关的功能。 文件搜索中的“保存文件列表”导出搜索结果列表1,在PE启动后再执行一次得到结果2,将结果1与结果2相比较,可以用来对付某些Wsyscheck检测不出深度隐藏的RootKit。 9:关于如何清理木马的简单方法: 1: 勾选“软件设置”下的“删除文件后锁定”以阻止文件再生。 2: 批量选择病毒进程,使用“结束进程并删除文件”。 3: 插入到进程中的模块多不可怕,全局钩子在各进程中通常都是相同的,处理进程的模块即可。建议采用“直接删除模块文件”,本功能执行后看不到变化,但文件其实已经删除。不建议使用“卸载模块”功能(为保险也可以与“重启删除”联用),原因是卸载系统进程中的模块时有可能造成系统重启而前功尽弃。 4: 执行“清理临时文件”、“清除Autorun.inf” 5:在安全检查中可以修复的修复一下。不强求,重启后再执行二次清理。 6: 重启机器,大部份的病毒应该可以搞定了。此时再次检查,发现还有少量的顽固病毒才使用“禁用”“线程”“卸载”“重启删除”“Dos删除”等方法。 7: 清理完后切换到文件搜索页,限制文件大小为50K左右,去除“排除微软文件的勾”搜索最近一周的新增的文件,从中选出病毒尸体文件删除。 10:Wsyscheck可以使用的参数说明: Wsyscheck可以带参数运行以提高自身的优先级 Wsyscheck 1 高于标准 Wsyscheck 2 高 Wsyscheck 3 实时 例如需要实时启动Wsyscheck,可以编辑一个批处理 RunWs.bat ,内容为 Wsyscheck 3 将RunWs.bat与Wsyscheck放在一起,双击RunWs.bat即可让Wsyscheck以实时优先级启动。 Wsyscheck -f wsyscheck将恢复部份查询类的SSdt表中的函数,然后退出。 Wsyscheck -s 在-f的基础上执行创建安全环境后退出。 如将Wsyscheck.exe更名,则Wsyscheck启动后先恢复执行部份查询类的SSdt表中的函数,其恢复结果可以在SSdt显示页下面的Auto Restore中看到。不更名则不带此功能。另外,更名后Wsyscheck将使用随机驱动名来释放驱动。 11:随手工具说明(指菜单工具下的子菜单功能) 一般看其意即识其意,仅对部份子项说明: 清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全模式:某些木马会破坏安全模式的键值导致无法进入安全模式,本功能先备份当前安全模式键值再恢复默认的安全模式键值。 如果Wsyscheck的窗口本身已采取随机字符,如果仍然被木马禁用,请将Wsyscheck改名后运行。 联系作者:Wang6071#sina.com.cn

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧