前一篇文章,和大家说了我这段时间在搞GhostXP是吧,GhostXP的Windows下的光盘启动菜单,我找来找去都不满意,后来决定自己写一个玩玩,因为VB、VC我都不会,我就勉强看几篇自由天空的教程,查着AU3简体中文手册,写成了这个Autorun,当然,我承认,这里很多东西网上都有成品源码可抄,所以我左吸收一点,右搬空一点,勉勉强强弄成这样子的程序。
放出图片预览:
不错吧,好了,放出源码:
#Region ;**** 参数创建于 ACNWrapper_GUI **** #AutoIt3Wrapper_icon=Autorun.ico #AutoIt3Wrapper_outfile=Autorun.exe #AutoIt3Wrapper_UseUpx=n #EndRegion ;**** 参数创建于 ACNWrapper_GUI **** #NoAutoIt3Execute #NoTrayIcon #RequireAdmin #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $Form = GUICreate("Nikbobo GXP SP3 菜单", 640, 480, -1, -1) GUISetBkColor(0xABCDEF) $Background = GUICtrlCreatePic(@ScriptDir & "\Autorun.jpg", 0, 0, 640, 480) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetDefBkColor($GUI_BKCOLOR_TRANSPARENT) GUICtrlSetDefColor($GUI_BKCOLOR_TRANSPARENT) _API_SetLayeredWindowAttributes($Form, 0xABCDEF) GUISetFont(14) $Label1 = GUICtrlCreateLabel("安装系统到硬盘第一分区", 220, 230, 205, 20) $Label2 = GUICtrlCreateLabel("运行 Ghost32 备份/还原", 220, 260, 205, 20) $Label3 = GUICtrlCreateLabel("运行 Ghost 镜像浏览器", 220, 290, 200, 20) $Label4 = GUICtrlCreateLabel("备份当前计算机驱动程序", 220, 320, 205, 20) $Label5 = GUICtrlCreateLabel("备份当前计算机资料", 220, 350, 170, 20) $Label6 = GUICtrlCreateLabel("查看光盘说明", 220, 380, 110, 20) $Label7 = GUICtrlCreateLabel("浏览光盘", 350, 380, 80, 20) GUICtrlSetCursor($Label1, 0) GUICtrlSetCursor($Label2, 0) GUICtrlSetCursor($Label3, 0) GUICtrlSetCursor($Label4, 0) GUICtrlSetCursor($Label5, 0) GUICtrlSetCursor($Label6, 0) GUICtrlSetCursor($Label7, 0) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Label1 Run("OneKey.exe") Case $Label2 Run("Ghost32.exe") Case $Label3 Run("GhostExp.exe") Case $Label4 Run("Driver.exe") Case $Label5 Run("Backup.exe") Case $Label6 ShellExecute("Readme.txt") Case $Label7 ShellExecute(@ScriptDir) EndSwitch WEnd Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $isColorRef = False) Local Const $AC_SRC_ALPHA = 1 Local Const $ULW_ALPHA = 2 Local Const $LWA_ALPHA = 0x2 Local Const $LWA_COLORKEY = 0x1 If Not $isColorRef Then $i_transcolor = Hex(String($i_transcolor), 6) $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2)) EndIf Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA) Select Case @error Return SetError(@error, 0, 0) Case $Ret[0] = 0 Return SetError(4, 0, 0) Case Else Return 1 EndSelect EndFunc ;==>_API_SetLayeredWindowAttributes
源码、所需材料和成品文件打包下载:Autorun.Zip
放置于你所制作的光盘根目录。
仿制指南:
1、修改AutoRun.jpg,换成你喜欢的背景图片。
2、修改AutoRun.au3,根据你的需要,更换文字,及文字坐标、文字点击框块宽高,运行程序名称等。
3、换成你喜欢的Autorun.ico。
呵呵,只是初学AU3,若其中有些代码,可能在高手眼中还有更好办法,让大家见笑了。
纯粹是前来支持的,期待实现鼠标变色,不只是变手型。
谢谢!