以下可以: Form Code: Option ExplicitPrivate Sub Timer1_Timer() Dim hWnd As Long hWnd = GetForegroundWindow If Left(GetText(hWnd), 5) = "确认文件删" Then EnumChildWindows hWnd, AddressOf WndChildProc, 0& End If End Sub -------------------------------------------------------- Module Code: Option ExplicitPublic Declare Function GetForegroundWindow Lib "user32" () As Long Public Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, ByVal fEnable As Long) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As String) As Long Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As LongPublic Const WM_GETTEXT = &HD Public Const WM_GETTEXTLENGTH = &HEPublic Function WndChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long Dim GC As String * 80 GetClassName hWnd, GC, 80 If Left(GC, 6) = "Button" Then If Left(GetText(hWnd), 1) = "是" Then EnableWindow hWnd, False WndChildProc = 0 Exit Function End If End If WndChildProc = 1 End FunctionPublic Function GetText(iHwnd As Long) As String Dim Textlen As Long Dim Text As String Textlen = SendMessage(iHwnd, WM_GETTEXTLENGTH, 0, 0) Textlen = Textlen + 1 Text = Space(Textlen) Textlen = SendMessage(iHwnd, WM_GETTEXT, Textlen, ByVal Text) GetText = Left(Text, Textlen) End Function
加上个防换的 Option ExplicitPrivate Sub Timer1_Timer() Dim hWnd As Long hWnd = GetForegroundWindow If Left(GetText(hWnd), 5) = "确认文件删" Or Left(GetText(hWnd), 5) = "确认文件替" Then EnumChildWindows hWnd, AddressOf WndChildProc, 0& End If End Sub
Form Code:
Option ExplicitPrivate Sub Timer1_Timer()
Dim hWnd As Long
hWnd = GetForegroundWindow
If Left(GetText(hWnd), 5) = "确认文件删" Then
EnumChildWindows hWnd, AddressOf WndChildProc, 0&
End If
End Sub
--------------------------------------------------------
Module Code:
Option ExplicitPublic Declare Function GetForegroundWindow Lib "user32" () As Long
Public Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, ByVal fEnable As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As String) As Long
Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As LongPublic Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HEPublic Function WndChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
Dim GC As String * 80
GetClassName hWnd, GC, 80
If Left(GC, 6) = "Button" Then
If Left(GetText(hWnd), 1) = "是" Then
EnableWindow hWnd, False
WndChildProc = 0
Exit Function
End If
End If
WndChildProc = 1
End FunctionPublic Function GetText(iHwnd As Long) As String
Dim Textlen As Long
Dim Text As String Textlen = SendMessage(iHwnd, WM_GETTEXTLENGTH, 0, 0)
Textlen = Textlen + 1
Text = Space(Textlen)
Textlen = SendMessage(iHwnd, WM_GETTEXT, Textlen, ByVal Text)
GetText = Left(Text, Textlen)
End Function
Option ExplicitPrivate Sub Timer1_Timer()
Dim hWnd As Long
hWnd = GetForegroundWindow
If Left(GetText(hWnd), 5) = "确认文件删" Or Left(GetText(hWnd), 5) = "确认文件替" Then
EnumChildWindows hWnd, AddressOf WndChildProc, 0&
End If
End Sub
1.如果用winrar压缩那个文件,然后选择压缩后删除。接着删除压缩包中的文件……
2.或者在dos下删除。
不过可以用来防住一部分人。
防删可以,你一个一个的运行,3K RAM也挂呀。
人家用的是VXD,大概关于INT 21的操做全监视,也许是吧。