前言
最近刚开始接触学习AutoIT,该软件纯天然绿色、免费、轻量级、易上手,弱类型的BASIC语言风格,连CTRL+SHIFT+SPACE的用法都一样,不用安装身材硕大的开发环境,自带编译器,适合除98之外的WIN平台,解压后即可使用,我都是放在U盘里,随便插一台机器就能用了(这段算广告吧)。尽管说的那么容易,但还是要学习,尤其是各种函数以及辅助工具的配合使用。
言归正传
此次的学习实例是,解决在WIN7中安装VS2008后,无法在维护模式输入序列号的问题。分析一下,在WIN7以前的系统中可以显示,安装程序并没有更新,可以肯定只是在WIN7中对输入控件和升级按钮做了隐藏处理,我们要做的就是让这些控件显示出来即可,废话不多说,直接分享完整源代码。
完整源码
003 |
Company:www.chinavalue.net |
004 |
CreateTime:2010.08.07 |
005 |
Function :Show VS2008 Serial Number Controls
For WIN7
|
008 |
#include <GUIConstantsEx.au3> |
009 |
#include <ButtonConstants.au3> |
014 |
If @OSVersion <>
"WIN_7" Then
|
015 |
ShowMessage( "该程序只能运行在Windows7系统中" )
|
019 |
;窗口标题,可根据本机安装的VS版本自行设置 |
020 |
Dim $windowTitle =
"Microsoft Visual Studio 2008 安装程序 - 维护页"
|
022 |
;序列号,可根据本机安装的VS版本自行设置 |
024 |
$snArray[0] = "VS2008"
|
025 |
$snArray[1] = "SerialNumber"
|
026 |
$snArray[2] = "PYHYP"
|
027 |
$snArray[3] = "WXB3B"
|
028 |
$snArray[4] = "B2CCM"
|
029 |
$snArray[5] = "V9DX9"
|
030 |
$snArray[6] = "VDY8T"
|
033 |
GUICreate( "WIN7安装VS2008的激活升级程序" , 336, 195)
|
034 |
GUISetIcon( "VS2008.ico" )
|
035 |
GUISetBkColor(0xE4F4FF) |
038 |
FileInstall( "banner.jpg" , @TempDir &
"\banner.jpg" )
|
039 |
FileInstall( "blog.bmp" , @TempDir &
"\blog.bmp" )
|
040 |
FileInstall( "button.bmp" , @TempDir &
"\button.bmp" )
|
043 |
GuiCtrlCreatePic(@TempDir & "\banner.jpg" , 1, 1, 334, 157)
|
046 |
$btnBlog = GUICtrlCreateButton( "博客地址" , 5, 165, 114, 23, $BS_BITMAP)
|
047 |
GUICtrlSetImage($btnBlog, @TempDir &
"\blog.bmp" )
|
048 |
GUICtrlSetCursor($btnBlog, 0) |
051 |
$btnActive = GUICtrlCreateButton( "激活输入框" , 201, 165, 126, 23, $BS_BITMAP)
|
052 |
GUICtrlSetImage($btnActive, @TempDir &
"\button.bmp" )
|
053 |
GUICtrlSetCursor($btnActive, 0) |
055 |
GUISetState(@SW_SHOW) |
061 |
Case
$msg = $btnActive
|
063 |
WinActivate($windowTitle)
|
066 |
Dim
$isActive = WinActive($windowTitle)
|
069 |
If
$isActive = 0 Then
|
070 |
ShowMessage( "请先进入VS2008维护模式再运行本程序" )
|
074 |
If
$isActive <> 0 Then
|
080 |
ControlShow($windowTitle,
"" , "[CLASS:Edit; INSTANCE:"
& $controlID & "]" )
|
081 |
ControlEnable($windowTitle,
"" , "[CLASS:Edit; INSTANCE:"
& $controlID & "]" )
|
082 |
ControlSetText($windowTitle,
"" , "[CLASS:Edit; INSTANCE:"
& $controlID & "]" , $snArray[$controlID])
|
084 |
$controlID = $controlID + 1
|
088 |
ControlShow($windowTitle,
"" , "[CLASS:Button; INSTANCE:43]" )
|
089 |
ControlEnable($windowTitle,
"" , "[CLASS:Button; INSTANCE:43]" )
|
096 |
Case
$msg = $GUI_EVENT_CLOSE
|
102 |
Func ShowMessage($msg) |
103 |
MsgBox(64,
"系统提示" , $msg)
|
注释已经很清楚了,我就不多说什么了。
截图预览

程序下载(已激活的也可以试用)