在WIN7中激活VS2008的升级框(有图有源码)

前言

最近刚开始接触学习AutoIT,该软件纯天然绿色、免费、轻量级、易上手,弱类型的BASIC语言风格,连CTRL+SHIFT+SPACE的用法都一样,不用安装身材硕大的开发环境,自带编译器,适合除98之外的WIN平台,解压后即可使用,我都是放在U盘里,随便插一台机器就能用了(这段算广告吧)。尽管说的那么容易,但还是要学习,尤其是各种函数以及辅助工具的配合使用。

言归正传

此次的学习实例是,解决在WIN7中安装VS2008后,无法在维护模式输入序列号的问题。分析一下,在WIN7以前的系统中可以显示,安装程序并没有更新,可以肯定只是在WIN7中对输入控件和升级按钮做了隐藏处理,我们要做的就是让这些控件显示出来即可,废话不多说,直接分享完整源代码。

完整源码

001#cs
002Author:J.Wang
003Company:www.chinavalue.net
004CreateTime:2010.08.07
005Function:Show VS2008 Serial Number Controls For WIN7
006#ce
007 
008#include <GUIConstantsEx.au3>
009#include <ButtonConstants.au3>
010 
011;不显示任务栏图标
012#NoTrayIcon
013 
014If @OSVersion <> "WIN_7" Then
015    ShowMessage("该程序只能运行在Windows7系统中")
016    Exit
017EndIf
018 
019;窗口标题,可根据本机安装的VS版本自行设置
020Dim $windowTitle = "Microsoft Visual Studio 2008 安装程序 - 维护页"
021 
022;序列号,可根据本机安装的VS版本自行设置
023Dim $snArray[7]
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"
031 
032;创建窗体
033GUICreate("WIN7安装VS2008的激活升级程序", 336, 195)
034GUISetIcon("VS2008.ico")
035GUISetBkColor(0xE4F4FF)
036 
037;打包文件
038FileInstall("banner.jpg", @TempDir & "\banner.jpg")
039FileInstall("blog.bmp", @TempDir & "\blog.bmp")
040FileInstall("button.bmp", @TempDir & "\button.bmp")
041 
042;创建内容
043GuiCtrlCreatePic(@TempDir & "\banner.jpg", 1, 1, 334, 157)
044 
045;创建博客地址按钮
046$btnBlog = GUICtrlCreateButton("博客地址", 5, 165, 114, 23, $BS_BITMAP)
047GUICtrlSetImage($btnBlog, @TempDir & "\blog.bmp")
048GUICtrlSetCursor($btnBlog, 0)
049 
050;创建激活按钮
051$btnActive = GUICtrlCreateButton("激活输入框", 201, 165, 126, 23, $BS_BITMAP)
052GUICtrlSetImage($btnActive, @TempDir & "\button.bmp")
053GUICtrlSetCursor($btnActive, 0)
054 
055GUISetState(@SW_SHOW)
056 
057While 1
058  $msg = GUIGetMsg()
059 
060  Select
061    Case $msg = $btnActive
062        ;激活窗口
063        WinActivate($windowTitle)
064 
065        ;获取窗口是否激活
066        Dim $isActive = WinActive($windowTitle)
067 
068        ;等于零时表示未找到窗口或者未激活
069        If $isActive = 0 Then
070            ShowMessage("请先进入VS2008维护模式再运行本程序")
071        EndIf
072       
073        ;不等于零时表示窗口已激活
074        If $isActive <> 0 Then
075           
076            ;显示序列号文本框
077            Dim $controlID = 2
078           
079            While $controlID < 7
080                ControlShow($windowTitle, "", "[CLASS:Edit; INSTANCE:" & $controlID & "]")
081                ControlEnable($windowTitle, "", "[CLASS:Edit; INSTANCE:" & $controlID & "]")
082                ControlSetText($windowTitle, "", "[CLASS:Edit; INSTANCE:" & $controlID & "]", $snArray[$controlID])
083 
084                $controlID = $controlID + 1
085            WEnd
086           
087            ;显示升级按钮
088            ControlShow($windowTitle, "", "[CLASS:Button; INSTANCE:43]")
089            ControlEnable($windowTitle, "", "[CLASS:Button; INSTANCE:43]")
090           
091        EndIf
092       
093    Case $msg = $btnBlog
094        ShellExecute("http://0417.cnblogs.com")
095 
096    Case $msg = $GUI_EVENT_CLOSE
097        ExitLoop
098  EndSelect
099WEnd
100 
101;显示提示对话框
102Func ShowMessage($msg)
103    MsgBox(64, "系统提示", $msg)
104EndFunc


注释已经很清楚了,我就不多说什么了。

截图预览

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值