以下程序如何编写:
监控注册表,在注册表被修改前提示是否放行修改
如果用户选择不修改,则禁止本次监测到的修改操作
选择修改则放行......

解决方案 »

  1.   

    可以使用API函数
    RegNotifyChangeKeyValue
    来实现VB声明 
    Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" Alias "RegNotifyChangeKeyValue" (ByVal hKey As Long, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronus As Long) As Long 说明 
    注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 返回值 
    Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
      
    参数 类型及说明 
    hKey Long,要监视的一个项的句柄,或者指定一个标准项名 
    bWatchSubtree Long,TRUE(非零)表示监视子项以及指定的项 
    dwNotifyFilter Long,下述常数的一个或多个 
    REG_NOTIFY_CHANGE_NAME 侦测注册表项名称的变化,以及侦测注册表的创建和删除事件 
    REG_NOTIFY_CHANGE_ATTRIBUTES 侦测属性的变化 
    REG_NOTIFY_CHANGE_LAST_SET 侦测上一次修改时间的变化 
    REG_NOTIFY_CHANGE_SECURITY 侦测对安全特性的改动 
    hEvent Long,一个事件的句柄。如fAsynchronus为False,则这里的设置会被忽略 
    fAsynchronus Long,如果为零,那么除非侦测到一个变化,否则函数不会返回。否则这个函数会立即返回,而且在发生变化时触发由hEvent参数指定的一个事件 适用平台 
    Windows NT
      

  2.   

    你还可以参考一下这篇文章中的做法:
    http://www.pconline.com.cn/pcedu/empolder/gj/delphi/0403/329682.html
      

  3.   

    多谢小不点兄,但是还是不太明白
    请用delphi描述一下吧,
      

  4.   

    上面那篇文章是转载下面这个的:
    这个比较全一些
    http://dev.csdn.net/develop/article/25/25219.shtm
      

  5.   

    HOOK API
    不过,修改注册表的程序太多,修改的太频繁,这样效率太低了.
    可以随便找个注册表监视器,看看打开IE,修改了多少次注册表
      

  6.   

    还是我小不点周到呀,强烈建议楼主到下面这个英文站点去看一下。
    http://delphi.about.com/od/kbwinshell/l/aa052003a.htm文章名称:Monitoring Registry Changes 
    共有3页
      

  7.   

    e文?为了解这个问题E文也得去看看
    不过是E文不好啊,有没有中文啊
      

  8.   

    还是只实现了记录的功能。。(没有控制)
    E文没看懂,只看懂了代码
    是不是RegNotifyChangeKeyValue  这个api没有那个控制的功能?
    我想如果可以截获到注册表修改操作,然后有个控制这个操作的API,问题就解决了
      

  9.   

    若大一个CSDN没人懂,,我就不信...
      

  10.   

    那个外国人说的和http://dev.csdn.net/develop/article/25/25219.shtm是一样的,不过是详细点而已RegNotifyChangeKeyValue没有这个能力,放弃吧个人认为只有HOOK API ,拦截RegSetValueEx/RegSetValue,很麻烦,
    或者自己写驱动,更麻烦。没有别的办法
      

  11.   

    “个人认为只有HOOK API ,拦截RegSetValueEx/RegSetValue”
    有没有具体的实现?可不可以做个简单的例子?
      

  12.   

    粗略地看了一下hook api,但是还是弄不明白,
    谁可以发一个控制注册表操作的hook api的例子呢
      

  13.   

    LockDown Millennium 就是这么做的。
    只是不知道它的具体实现部分,
    给你一个地址:
    http://www.hanzify.org/?Go=Show::List&ID=2654
    可以试试看用 监视 API 函数调用的软件(比如 SoftSnoop )看看这个东东到底调用了什么函数。
    ========================SoftSnoop is a single process, multi-thread debugger for executable PE files
    which is able to spy API calls and uses the Debug API's to show the common debug events.
    SoftSnoop is freeware !
    It's full written with VC++6 using ANSI C (about 8700 lines).
      

  14.   

    〉〉谁可以发一个控制注册表操作的hook api的例子呢
    这样的例子还是值不少钱的,基本就是一个商业软件了不是没有高手,而是高手不肯把有商业价值的东西随便公布
    拦截任意API的开发包网上可是要卖800块一份的,呵呵
    想你的问题只能靠自己去摸索(如果你不肯花钱买的话)想当年一个真彩转256色的函数,CSDN就有人要10,000块,那才叫狠
      

  15.   

    隻有用鉤子了!記得好象2CCC上面有個例子。