从这里下载完整程序包和可执行文件:
有个小软件,叫做Windows按钮突破专家,发现很好用,一些软件的按钮或者滑块什么的,被禁用了,没办法使用。如果使用这个突破专家,那么就可以使这些控件变得重新可用了,有时还真能实现原来的功能。例如一些软件没注册时,会限制一些功能,而可以使用突破专家来试试。总之遇到有什么按钮变成灰色的时候,又想要按它时,就可以想到按钮突破专家。
今天去网上搜索了一下,好不容易找到一个Delphi版本的源代码,哈哈~~~看看了,其实蛮简单的,就是调用了几个API函数。由于电脑上次重装过操作系统,还没装Delphi呢,所以就拿到VB里面去试试。结果就可以用拉~~~~~~
注意,直接在VB的调试环境下,是不能实现运行目的,需要用VB文件菜单中的生成.exe来生成.exe文件,然后再执行它,就可以了。这应该是在调试模式下,VB调试器做了某些保护。上次在做ADuC7026的下载线时,用到WinIO并口驱动,也是如此,调试下不能正常加载。
免责声明:本软件仅供学习编程用,擅自用于其它用途者后果自负。
部分源代码:
'模块部分
Option Explicit
'pointapi结构体
Type POINTAPI
x As Long
y As Long
End Type
'获取光标位置API函数
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'从位置获取句柄API函数
Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
'枚举子窗口API函数
Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
'使能窗口API函数
Public Declare Function EnableWindow Lib "user32" (ByVal Hwnd As Long, ByVal fEnable As Long) As Long
Public Sub SetWinEnable(ByVal Hwnd As Long)
'将Hwnd窗口的Enable属性设置为True
EnableWindow Hwnd, 1
End Sub
'窗体部分
'-------------------------------------------------
'Windows 按钮突破专家 VB版
' Creat by Computer-lov Date: 2007.01.16
' Last edit date:2007.01.16
' Copyright(C) 2007-2017 Computer-lov
' All rights reserved
' Welcome to my Blog:
Http://computer00.21ic.org'-------------------------------------------------
Option Explicit
Private Sub Command1_Click()
If (Timer1.Enabled = True) Then '如果是启动状态,则关闭之
Timer1.Enabled = False
Command1.Caption = "启动按钮突破"
Else '否则,启动它
Timer1.Enabled = True
Command1.Caption = "关闭按钮突破"
End If
End Sub
Private Sub Command2_Click()
'将按钮,文本框,复选框,选项框都设置为不可用
Command2.Enabled = False
Text2.Enabled = False
Check1.Enabled = False
Option1.Enabled = False
End Sub
Private Sub Form_Load()
'定时器时间间隔设置为300ms
Timer1.Interval = 300
'定时器初始化为不启动
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer() '定时器1
Dim R As Long
Dim P As POINTAPI
Dim Hwnd As Long
'获取鼠标位置,返回1,表示获取成功
R = GetCursorPos(P)
If R = 1 Then
'获取鼠标位置点的窗口句柄
Hwnd = WindowFromPoint(P.x, P.y)
'显示窗口句柄在文本框1
Text1.Text = Hwnd
If (Hwnd <> 0) Then '如果句柄不为0,则使该窗口可用。
'事实上是将SetWinEnable函数的地址传递给了这个API函数,
'在SetWinEnable这个函数中,将窗口的Enable属性改为了True
EnumChildWindows Hwnd, AddressOf SetWinEnable, 0
End If
End If
End Sub
文章评论(0条评论)
登录后参与讨论