message制作工具
- #Region ;**** 参数创建于 ACNWrapper_GUI ****
- #PRE_Icon=LOGO\message.ico
- #PRE_Outfile=message.exe
- #PRE_UseUpx=n
- #PRE_Res_Description=message制作工具1.2
- #PRE_Res_Fileversion=1.2.0.0
- #PRE_Res_LegalCopyright=@copyright 2010
- #PRE_Res_requestedExecutionLevel=None
- #PRE_Res_Field=CompanyName|www.60808.net
- #EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
- #include <ButtonConstants.au3>
- #include <ComboConstants.au3>
- #include <GUIConstantsEx.au3>
- #include <Process.au3>
- #include <ButtonConstants.au3>
- #include <GUIConstants.au3>
- #include <ProgressConstants.au3>
- #include <GDIPlus.au3>
- #include <StaticConstants.au3>
- #include <GuiComboBoxEx.au3>
- #include <GuiImageList.au3>
- #include <GuiConstantsEx.au3>
- #include <WindowsConstants.au3>
- #include <Misc.au3>
- #include <WinApiEx.au3>
- #include <File.au3>
- Opt("SendCapslockMode", 0)
- $Form1 = GUICreate("GfxMenu Message by_年老痴呆", 640, 640, -1, -1)
- DirCreate (@TempDir & "\tmp")
- $tmp = @TempDir & "\tmp"
- FILEINSTALL ( "LOGO\back.jpg" , $tmp & "\back.jpg", 1 )
- $Pic = GUICtrlCreatePic($tmp & "\back.jpg", 0, 0, 640, 480)
- FILEINSTALL ( "LOGO\gfxboot.cfg",$tmp & "\gfxboot.cfg", 1 )
- Local $start_x,$start_y,$entries,$width,$normal,$select,$color,$width,$height,$Label,$bar,$s,$Labe0
- $Button1 = GUICtrlCreateButton("更改背景", 430, 565, 75, 22, 0)
- $Button2 = GUICtrlCreateButton("更改字体", 535, 565, 75, 22, 0)
- $Button3 = GUICtrlCreateButton("开始制作", 430, 595, 75, 22, 0)
- $Button4 = GUICtrlCreateButton("效果测试", 535, 595, 75, 22, 0)
- $C1= GUICtrlCreateLabel("设置菜单文本颜色",25, 534, 98, 22)
- $C2= GUICtrlCreateLabel("菜单文本选中颜色",223, 534, 98, 22)
- $C3= GUICtrlCreateLabel("菜单选中背景颜色",421, 534, 98, 22)
- $Combo1 = GUICtrlCreateCombo("", 123, 565,75, 20, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
- GUICtrlSetData(-1, "100|120|150|180|200|220|250|280|300|320|350|380|", "180")
- $Combo2 = GUICtrlCreateCombo("", 320, 565,75, 20, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
- GUICtrlSetData(-1, "50|100|120|150|180|200|220|250|280|300|320|", "120")
- $Labe2= GUICtrlCreateLabel("菜单条左起始位置",25, 568, 98, 22)
- $Labe3= GUICtrlCreateLabel("菜单条上起始位置",223, 568, 98, 22)
- $Labe4= GUICtrlCreateLabel("增加菜单容纳行数",25, 598, 98, 22)
- $Labe5= GUICtrlCreateLabel("设置菜单最小宽度",223, 598, 98, 22)
- $Combo3 = GUICtrlCreateCombo("", 123, 595,75, 20, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
- GUICtrlSetData(-1, "18|20|22|25|28|30|", "18")
- $Combo4 = GUICtrlCreateCombo("", 320, 595,75, 20, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
- GUICtrlSetData(-1, "200|220|250|280|300|320|350|380|420|", "420")
- Global $hGUI, $hImage, $hCombo1, $msg, $iMemo
- Global $Color[10] = ['0xFF9933', '0xFF00FF', '0xFF0000', '0xFFFF00', '0xFFFFFF', '0x00FFFF', '0x00FF66', '0x009900', '0x0000FF', '0x000000']
- $hCombo1 = _GUICtrlComboBoxEx_Create($Form1, "", 123, 530, 95, -1, $CBS_DROPDOWNLIST, $CBES_EX_NOSIZELIMIT)
- GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
- $hImage1 = _GUIImageList_Create(12, 12, 5, 3)
- For $i = 0 To UBound($Color) - 1
- _GUIImageList_Add($hImage1, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo1, $Color[$i], 12, 12))
- Next
- _GUICtrlComboBoxEx_SetImageList($hCombo1, $hImage1)
- For $x = 0 To UBound($Color) - 1
- _GUICtrlComboBoxEx_AddString($hCombo1, $Color[$x], $x, $x)
- Next
- _GUICtrlComboBoxEx_SetCurSel($hCombo1, 0)
- $hCombo2 = _GUICtrlComboBoxEx_Create($Form1, "", 320, 530, 95, -1, $CBS_DROPDOWNLIST, $CBES_EX_NOSIZELIMIT)
- GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
- $hImage2 = _GUIImageList_Create(12, 12, 5, 3)
- For $i = 0 To UBound($Color) - 1
- _GUIImageList_Add($hImage2, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo2, $Color[$i], 12, 12))
- Next
- _GUICtrlComboBoxEx_SetImageList($hCombo2, $hImage2)
- For $x = 0 To UBound($Color) - 1
- _GUICtrlComboBoxEx_AddString($hCombo2, $Color[$x], $x, $x)
- Next
- _GUICtrlComboBoxEx_SetCurSel($hCombo2, 0)
- $hCombo3 = _GUICtrlComboBoxEx_Create($Form1, "", 519, 530, 95, -1, $CBS_DROPDOWNLIST, $CBES_EX_NOSIZELIMIT)
- GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
- $hImage3 = _GUIImageList_Create(12, 12, 5, 3)
- For $i = 0 To UBound($Color) - 1
- _GUIImageList_Add($hImage3, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo3, $Color[$i], 12, 12))
- Next
- _GUICtrlComboBoxEx_SetImageList($hCombo3, $hImage3)
- For $x = 0 To UBound($Color) - 1
- _GUICtrlComboBoxEx_AddString($hCombo3, $Color[$x], $x, $x)
- Next
- _GUICtrlComboBoxEx_SetCurSel($hCombo3, 0)
- GUISetState(@SW_SHOW)
- _cfg()
- AdlibRegister('_HoverEffect',50)
- While 1
- $nMsg = GUIGetMsg()
- Select
- Case $nMsg = $GUI_EVENT_CLOSE
- AdlibUnRegister('_HoverEffect')
- DirRemove($tmp, 1)
- Exit
- Case $nMsg = $Button1
- $Search = FileOpenDialog("请选择程序名","","图像文件 (*.jpg;*.bmp)", 1 + 4)
- $Imag = $Search
- _GDIPlus_Startup()
- $hImage = _GDIPlus_ImageLoadFromFile($Imag)
- $Imagew = _GDIPlus_ImageGetWidth($hImage)
- $Imageh = _GDIPlus_ImageGetHeight($hImage)
- _GDIPlus_ImageDispose($hImage)
- _GDIPlus_Shutdown()
-
- IF $Imagew&" "&$Imageh == "800 600" OR $Imagew &" "&$Imageh = "1024 768" THEN
- _Pic2jpg($Imag, $tmp & "\back.jpg", 90) ;质量90
- IniWrite($tmp & "\gfxboot.cfg", "Config", "custom_width", $Imagew)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "custom_height" ,$Imageh)
- _cfg()
- ELSE
- MSGBOX (0 , "非标准图片" ,"请选择1024x768或800x600图片 |*.jpg|*.bmp|")
- ENDIF
- Case $nMsg = $Button2
- Local $a_font
- $a_font = _ChooseFont("Arial", 8)
-
- If (@error) Then
- Else
- $entries = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" ,"menu_max_entries" , "" ) ;菜单条数
- $height = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "custom_height" , "" ) ;高
- $start_y = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_start_y" , "" ) ;纵向起始
- If INT(($a_font[3]+4)*$entries)>INT($height-$start_y-50) then
- $ent =INT(($height-$start_y-100)/($a_font[3]+6))
- MSGBOX (0 , "字体设置过大","目前可以容纳"& $ent&"条菜单,"&@LF& _
- "如果你确定你的菜单少于"& $ent &"条"&@LF& _
- "你可以使用这个设置,"&@LF& _
- "否则请重新设置," )
- EndIf
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_font", $a_font[2])
- IniWrite($tmp & "\gfxboot.cfg", "Config", "font_size" ,$a_font[3])
- GUICtrlSetData($Label, "")
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- _cfg()
- EndIf
-
- Case $nMsg = $Button3
- DirCreate (@TempDir & "\tmp\Msgtmp")
- DIM $DIYMSG = @TempDir & "\tmp\Msgtmp"
- _msg()
- MSGBOX (0 , "制作完成!" ,"“message”文件已拷贝在当前目录。" & @LF& _
- "你可以进行模拟效果测试了!")
- Case $nMsg = $Button4
- _Amvm()
- Case $nMsg = $Combo1
- $b1 = GUICtrlRead($Combo1)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_start_x", $b1)
- GUICtrlSetData($Label, "")
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- _cfg()
- Case $nMsg = $Combo2
- $b2 = GUICtrlRead($Combo2)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_start_y", $b2)
- GUICtrlSetData($Label, "")
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- _cfg()
- Case $nMsg = $Combo3
- $b3 = GUICtrlRead($Combo3)
- $height = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "custom_height" , "" ) ;高
- $start_y = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_start_y" , "" ) ;纵向起始
- $MFSIZE = INIREAD ($tmp & "\gfxboot.cfg", "Config", "font_size" ,"")
- if INT(($MFSIZE+4)*$b3)<INT($height-$start_y-100) then
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_max_entries", $b3)
- GUICtrlSetData($Label, "")
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- _cfg()
- else
- MSGBOX (0 , "提示!" ,"目前已经容纳不下"& $b3&"条菜单,"&@LF& _
- "解决办法:"&@LF& _
- "1 、把菜单条起始位置向上移动,"&@LF& _
- "2 、把菜单条字体减小。")
- endif
- Case $nMsg = $Combo4
- $b4 = GUICtrlRead($Combo4)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_bar_min_width", $b4)
- GUICtrlSetData($Label, "")
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- _cfg()
- EndSelect
- WEnd
- Func _msg()
- DIM $DIYMSG = @TempDir & "\tmp\Msgtmp"
- FILEINSTALL ( "LOGO\cpio.exe" , $DIYMSG & "\cpio.exe" )
- FILEINSTALL ( "LOGO\msg", $DIYMSG & "\msg", 1 )
- FILEINSTALL ( "LOGO\mkblfont.exe" , $DIYMSG & "\mkblfont.exe", 1 )
- FILEINSTALL ( "LOGO\chs.txt" , $DIYMSG & "\chs.txt", 1 )
- FILEINSTALL ( "LOGO\libintl3.dll" , $DIYMSG & "\libintl3.dll", 1 )
- FILEINSTALL ( "LOGO\libiconv2.dll" , $DIYMSG & "\libiconv2.dll", 1 )
- RUNWAIT ( @COMSPEC & " /c cpio.exe -t <msg>list.txt&&cpio.exe -i <msg" , $DIYMSG , 0 )
- FileCopy($tmp & "\gfxboot.cfg",$DIYMSG &'\gfxboot.cfg',1)
- FileCopy($tmp & "\back.jpg",$DIYMSG &'\back.jpg',1)
- $mfont = INIREAD ( $DIYMSG & "\gfxboot.cfg" , "Config" ,"menu_font","")
- $MFSIZE = INIREAD ($DIYMSG & "\gfxboot.cfg", "Config", "font_size" ,"")
- If $mfont <> "Arial" or $MFSIZE <> "16" Then
- $csidl_fonts = "20"
- local $fontslist = _filelisttoarray ( _winapi_shellgetspecialfolderpath ( $csidl_fonts ) , "*.*" , 1 )
- if not @error then
- for $i = 1 to $fontslist [ 0 ]
- local $fontsname = _winapi_getfontresourceinfo ( $fontslist [ $i ] , 1 ) , $fname
- local $extension = stringright ( $fontslist [ $i ] , 4 )
- if $extension = ".ttc" then
- local $array = stringsplit ( $fontsname , " & " , 1 )
- for $j = 1 to $array [ 0 ]
- if $array [ $j ] = $mfont then
- $fname = $fontslist [ $i ]
- exitloop
- endif
- next
- elseif $extension = ".ttf" or $extension = ".fon" then
- if $fontsname = $mfont then $fname = $fontslist [ $i ]
- endif
- next
- endif
- LOCAL $OPT1 = "-a 0x20-0x7e,0xa0-0xbf,0xc1-0xcb,0xcd-0xce,0xd0-0xd1,0xd3-0xd8,0xda-0xff "
- LOCAL $OPT2 = ":prop=2:space_width=4:size=" & INT ( $MFSIZE) & ":bold=1:nobitmap=1:autohint=1 "
- RUNWAIT ( @COMSPEC & " /c mkblfont.exe -v -l 18 " & $OPT1 & "-t chs.txt -f " & $fname & $OPT2 & "16x16.fnt>nul" , $DIYMSG, 0 )
- EndIf
- RUNWAIT ( @COMSPEC & " /c cpio.exe -o <list.txt>..\msg.back", $DIYMSG , 0 )
- FileCopy($tmp & "\msg.back",@ScriptDir &'\message')
- DirRemove($DIYMSG, 1)
- EndFunc
- Func _cfg()
- $start_x = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_start_x" , "" ) ;横向起始
- $start_y = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_start_y" , "" ) ;纵向起始
- $entries = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" ,"menu_max_entries" , "" ) ;菜单条数
- $mwidth = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" ,"menu_bar_min_width" , "" ) ;菜单宽度
- $normal = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_text_normal" , "" ) ;菜单色
- $select = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_text_select" , "" ) ;选中色
- $bar = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "menu_bar_color" , "" ) ;选中背景色
- $width = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "custom_width" , "" ) ;宽
- $height = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" , "custom_height" , "" ) ;高
- $font = INIREAD ( $tmp & "\gfxboot.cfg" , "Config" ,"menu_font","")
- $MFSIZE = INIREAD ($tmp & "\gfxboot.cfg", "Config", "font_size" ,"")
- GUICtrlSetImage($Pic,$tmp & "\back.jpg")
- if $width = "1024" then
- $wh = "0.6"
- $z = "6"
- else
- $wh = "0.78"
- $z = "6"
- endif
- $X = INT($start_x*$wh)
- $Y = INT($start_y*$wh)
- $w = INT($mwidth*$wh)
- $F = INT($MFSIZE*$wh)
- $M =$F+$z
- $Label = GUICtrlCreateLabel("测试菜单起始位置及颜色效果",$x, $y, $w, $M)
- GUICtrlSetColor($Label,$normal)
- GUICtrlSetFont($Label, $F, 400, 0, $font)
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- GUICtrlSetData($Labe0, "")
- $Labe0 = GUICtrlCreateLabel("现在你看到的是"&$width&"x"&$height&"缩小到640x480时的效果",35, 490, 550, 40)
- GUICtrlSetFont($Labe0, 18, 800, 0, "Arial")
- EndFunc
- Func _HoverEffect()
- $aInfo = GUIGetCursorInfo($Form1)
- Switch $aInfo[4]
- Case $Label
- If $S = True Then
- GUICtrlSetColor($Label, $select)
- GUICtrlSetBkColor($Label,$bar)
- $S = False
- EndIf
- Case Else
- If $S = False Then
- GUICtrlSetColor($Label, $normal)
- GUICtrlSetBkColor($Label, $GUI_BKCOLOR_TRANSPARENT)
- $S = True
- EndIf
- EndSwitch
- EndFunc
- Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
- #forceref $hWnd, $iMsg
- Local $hWndFrom, $iCode, $Count, $sText
- $hWndFrom = $ilParam
- $iCode = BitShift($iwParam, 16)
- Switch $hWndFrom
- Case $hCombo1
- Switch $iCode
- Case $CBN_SELCHANGE
- $Count = _GUICtrlComboBoxEx_GetCurSel($hCombo1)
- _GUICtrlComboBoxEx_GetItemText ($hCombo1, $Count, $sText)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_text_normal", $sText)
- _cfg()
- EndSwitch
- Case $hCombo2
- Switch $iCode
- Case $CBN_SELCHANGE
- $Count = _GUICtrlComboBoxEx_GetCurSel($hCombo2)
- _GUICtrlComboBoxEx_GetItemText ($hCombo2, $Count, $sText)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_text_select", $sText)
- _cfg()
- EndSwitch
- Case $hCombo3
- Switch $iCode
- Case $CBN_SELCHANGE
- $Count = _GUICtrlComboBoxEx_GetCurSel($hCombo3)
- _GUICtrlComboBoxEx_GetItemText ($hCombo3, $Count, $sText)
- IniWrite($tmp & "\gfxboot.cfg", "Config", "menu_bar_color", $sText)
- _cfg()
- EndSwitch
- EndSwitch
- Return $GUI_RUNDEFMSG
- EndFunc ;==>WM_COMMAND
- FUNC _PIC2JPG ( $SFILENAME , $OFILENAME , $IQUALITY = 100 )
- _GDIPLUS_STARTUP ( )
- LOCAL $HIMAGE = _GDIPLUS_IMAGELOADFROMFILE ( $SFILENAME )
- LOCAL $GIQUALITY = $IQUALITY , $PPARAMS
- LOCAL $TPARAMS = _GDIPLUS_PARAMINIT ( 1 )
- LOCAL $TDATA = DLLSTRUCTCREATE ( "int Quality" )
- DLLSTRUCTSETDATA ( $TDATA , "Quality" , $GIQUALITY )
- _GDIPLUS_PARAMADD ( $TPARAMS , $GDIP_EPGQUALITY , 1 , $GDIP_EPTLONG , DLLSTRUCTGETPTR ( $TDATA ) )
- IF ISDLLSTRUCT ( $TPARAMS ) THEN $PPARAMS = DLLSTRUCTGETPTR ( $TPARAMS )
- LOCAL $CLSID = _GDIPLUS_ENCODERSGETCLSID ( "JPG" )
- LOCAL $SAVE = _GDIPLUS_IMAGESAVETOFILEEX ( $HIMAGE , $OFILENAME , $CLSID , $PPARAMS )
- _GDIPLUS_BITMAPDISPOSE ( $HIMAGE )
- _GDIPLUS_SHUTDOWN ( )
- IF $SAVE = FALSE THEN RETURN SETERROR ( 1 , 0 , FALSE )
- RETURN TRUE
- ENDFUNC
- FUNC _Amvm()
- if FileExists($tmp & "\msg.back") Then
- DirCreate ($tmp& "\boot")
- $boot = $tmp& "\boot"
- FileCopy($tmp & "\msg.back",@ScriptDir &'\message')
- FILEINSTALL ( "boot\qemu.dll" , $tmp & "", 1 )
- FILEINSTALL ( "boot\mkisofs.dll" , $tmp & "", 1 )
- FILEINSTALL ( "boot\grldr" , $boot & "", 1 )
- FileCopy($tmp & "\msg.back",$boot &'\message', 1 )
- RUN ( @COMSPEC & " /c mkisofs.dll -R -b grldr -no-emul-boot -boot-load-size 4 -o MsgPrvw.ISO boot ",$tmp,"")
- RUN ( @COMSPEC & " /c qemu.dll -L . -m 16 -localtime -boot d -cdrom MsgPrvw.ISO ",$tmp,"")
- Else
- MSGBOX (0 , "测试失败!" ,"你还没有制作个性message背景")
- EndIf
- ENDFUNC
复制代码
成品:
message.part1.rar
(1.9 MB, 下载次数: 2118)
|