我试过了,编译错误:
常数、固定长度字符串、数组、用户定义类型以及Declare语句不允许作为对象模块的Public成员。
是怎么回事哟。
我是想做一个程序记录下我开机后的一切操作。
打开过哪些程序和窗口

解决方案 »

  1.   

    试试WindowFromPoint函数,演示程序如下:Option ExplicitPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As LongPrivate Type POINTAPI
        x As Long
        y As Long
    End TypePrivate Sub Timer1_Timer()   '加了一个timer控件,别忘了设置interval
        Dim p As POINTAPI, l As Long, h As Long, a$
        l = GetCursorPos(p)             '得到鼠标位置
        h = WindowFromPoint(p.x, p.y)   '得到鼠标所在位置的窗口句柄
        a$ = Space(128)
        l = GetClassName(h, a$, 128)    '得到鼠标所在位置的类名
        a$ = Left$(a$, l)
        TxtHandle.Text = h              '两个textbox显示结果
        TxtClassName.Text = a$
    End Sub