您的位置:首页 >> 编程开发 >> Visual Basic >> 系统 >> 正文
RSS
 

Windows未公开函数揭密——之三

http://www.rdxx.com 06年12月19日 04:23 互联网 我要投稿

关键词: Windows , 函数

Windows未公开函数揭密——之三

http://www.applevb.com
 这次介绍的是如何利用Windows未公开函数实现系统文件操作监视功能。利用该功能可以对Windows下的任何文件操作,包括建立文件、文件夹;删除文件;改变文件大小等操作都可以纪录在案。
 首先来介绍实现上面操作的两个未公开函数:SHChangeNotifyRegister和SHChangeNotifyDeregister,SHChangeNotifyRegister函数的定义如下:
Declare Function SHChangeNotifyRegister Lib "shell32" Alias "#2" _
                              (ByVal hWnd As Long, _
                              ByVal uFlags As SHCN_ItemFlags, _
                              ByVal dwEventID As SHCN_EventIDs, _
                              ByVal uMsg As Long, _
                              ByVal cItems As Long, _
lpps As PIDLSTRUCT) As Long
 其中参数hWnd指定接受系统通告的窗口句柄,参数uMsg指定消息值,如果函数调用成功,系统就会将hWnd指定的窗口加入到系统通告链中,并且返回系统通告句柄。当有建立文件等系统操作发生时,系统会向hWnd指定的窗口发送uMsg消息,关于其它参数,会在下面的程序中说明。函数SHChangeNotifyDeregister的定义如下:
Declare Function SHChangeNotifyDeregister Lib "shell32" Alias "#4" _
        (ByVal hNotify As Long) As Boolean
 其中参数hNotify指定系统通告的句柄。
下面是操作的具体的VB范例:
首先建立一个新的工程,在Form1中加入一个TextBox控件。在Form1的代码窗口之中加入以下代码:
Option Explicit

Private Sub Form_Load()
    If SubClass(hWnd) Then  '改变Form1的消息处理函数
        If IsIDE Then
        Text1.Text = vbCrLf & _
                   "一个 Windows的文件目录操作即时监视程序," & vbCrLf & "可以监视在Explore中的重命名、新建、删除文" & _
                   vbCrLf & "件或目录;改变文件关联;插入、取出CD和添加" & vbCrLf & "删除网络共享都可以被该程序记录下来。"
        End If
        Call SHNotify_Register(hWnd)
    Else
        Text1 = "系统不支持操作监视程序 :-)"
    End If
    Move Screen.Width - Width, Screen.Height - Height

9 7 3 1 2 3 4 5 6 7 8 9 4 8 :

 
 
标签: Windows , 函数 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站