天天看點

開機運作小軟體

主程式

#include <GuiConstants.au3>

#include <file.au3>

#include <Constants.au3>

Opt("TrayMenuMode", 1)

TrayTip("歡迎使用", "開機運作點點通", 0)

Sleep(500)

Opt("TrayIconHide", 1)

Opt("TrayIconHide", 0)

TraySetTooltip("開機運作點點通")

Dim $back=0, $first=51

Global $num, $name[500], $val[100], $monitor=0

Dim $time=0, $1radio1="OK", $var="", $varislong=0

FileInstall("start.exe", @TempDir & "/start.exe")

FileInstall("pic.jpg", @TempDir & "/pic.jpg")

GuiCreate("開機運作點點通", 392, 316,(@DesktopWidth-392)/2,(@DesktopHeight-316)/2)

$toolsmenu = GUICtrlCreateMenu("基本功能(&T)")

$extramenu = GUICtrlCreateMenu("附加軟體(&E)")

$sysinfomenu = GUICtrlCreateMenu("系統資訊(&S)")

$aboutmenu = GUICtrlCreateMenu("關于(&A)")

$toolsitem1 = GUICtrlCreateMenuitem("添加開機運作程式", $toolsmenu)

$toolsitem2 = GUICtrlCreateMenuitem("删減開機運作程式", $toolsmenu)

$extraitem = GUICtrlCreateMenuitem("簡易音樂播放器", $extramenu)

$sysinfoitem = GUICtrlCreateMenuitem("檢視系統資訊", $sysinfomenu)

$aboutitem = GUICtrlCreateMenuitem("關于本軟體", $aboutmenu)

$pic_1=GUICtrlCreatePic(@TempDir & "/pic.jpg", 0, 0, 395, 220)

$Label_2 = GuiCtrlCreateLabel("<<<< 就緒...", 30, 225, 170, 20)

$Progress_3 = GuiCtrlCreateProgress(25, 242, 340, 10)

$Button_4 = GuiCtrlCreateButton("添加開機運作程式", 100, 260, 110, 30)

$Button_5 = GuiCtrlCreateButton("删減開機運作程式", 240, 260, 110, 30)

$Group_6 = GUICtrlCreateGroup("設定", 25, 10, 340, 240)

$Button_7 = GUICtrlCreateButton("浏 覽", 295, 48, 50)

$label_8 = GUICtrlCreateLabel("需要開機自動運作的程式:", 45, 30, 185, 20)

$label_9 = GUICtrlCreateLabel("你還沒有選擇程式,是以無法設定其運作方式!", 45, 135, 260, 50)

$Group_10 = GUICtrlCreateGroup("運作方式選擇", 45, 155, 160, 80)

$radio_11 = GUICtrlCreateRadio("開機自動運作", 55, 180, 120, 20)

GUICtrlSetState($radio_11, $GUI_CHECKED)

$radio_12 = GUICtrlCreateRadio("開機自動運作一次", 55, 205, 120, 20)

$Button_13 = GUICtrlCreateButton("确定(&O)", 250, 180)

$Button_14 = GUICtrlCreateButton("傳回", 300, 260, 60, 30)

$input_15 = GUICtrlCreateInput("", 45, 50, 245, 20)

$Button_16 = GUICtrlCreateButton("編輯參數", 286, 73, 60, 24)

$label_17 = GUICtrlCreateLabel("  如果需要添加特定的參數,請點選 ==>" & @CR & "當然,你也可以在上面的輸入欄中直接追加。" & @CR & "此外對長路徑名屬背景處理,請勿人工幹預,"& @CR & "即:遇到長路徑名請不要在其兩端加雙引号!", 45, 80, 240, 50)

$start=TrayCreateItem("啟動資訊管理器(&S)")

TrayCreateItem("")

$Exit=TrayCreateItem("退出(&X)")

GUICtrlSetState($Button_13, $GUI_FOCUS)

;------------------- Hide Items -------------------

GuiCtrlSetState($Group_6, $GUI_HIDE)

GuiCtrlSetState($Button_7, $GUI_HIDE)

GuiCtrlSetState($label_8, $GUI_HIDE)

GuiCtrlSetState($label_9, $GUI_HIDE)

GuiCtrlSetState($group_10, $GUI_HIDE)

GuiCtrlSetState($radio_11, $GUI_HIDE)

GuiCtrlSetState($radio_12, $GUI_HIDE)

GuiCtrlSetState($Button_13, $GUI_HIDE)

GuiCtrlSetState($Button_14, $GUI_HIDE)

GuiCtrlSetState($input_15, $GUI_HIDE)

GuiCtrlSetState($Button_16, $GUI_HIDE)

GuiCtrlSetState($label_17, $GUI_HIDE)

;--------------------------------------------------

GuiSetState(@SW_SHOW)

While 1

    $msg = GuiGetMsg()

    $msg2 = TrayGetMsg()

    Select

        Case $msg=$GUI_EVENT_CLOSE Or $msg2=$Exit

            ProcessClose("start.exe")

            ProcessClose("ezMusicPlayer.exe")

            FileDelete(@TempDir & "/start.exe")

            FileDelete(@TempDir & "/ezMusicPlayer.exe")

            FileDelete(@TempDir & "/pic.jpg")

            ExitLoop

        Case $msg=$button_5 Or $msg=$toolsitem2 Or $msg2=$start

            call("search")

            call("ini")

            run(@TempDir & "/start.exe")

        Case $msg=$Button_4 Or $msg=$toolsitem1

            ;------------------- Hide Items -------------------

            GuiCtrlSetState($Pic_1, $GUI_HIDE)

            GuiCtrlSetState($Label_2, $GUI_HIDE)

            GuiCtrlSetState($Progress_3, $GUI_HIDE)

            GuiCtrlSetState($Button_4, $GUI_HIDE)

            GuiCtrlSetState($Button_5, $GUI_HIDE)

            ;------------------- Show Items -------------------

            GuiCtrlSetState($Group_6, $GUI_SHOW)

            GuiCtrlSetState($Button_7, $GUI_SHOW+$GUI_DEFBUTTON)

            GuiCtrlSetState($label_8, $GUI_SHOW)

            GuiCtrlSetState($label_9, $GUI_SHOW)

            GuiCtrlSetState($group_10, $GUI_SHOW)

            GuiCtrlSetState($radio_11, $GUI_SHOW)

            GuiCtrlSetState($radio_12, $GUI_SHOW)

            GuiCtrlSetState($Button_13, $GUI_SHOW)

            GuiCtrlSetState($Button_14, $GUI_SHOW)

            GuiCtrlSetState($input_15, $GUI_SHOW+$GUI_FOCUS+$GUI_ACCEPTFILES)

            If $var="" Or $monitor=0 Then

                ControlDisable("開機運作點點通", "确定(&O)", $radio_11)

                ControlDisable("開機運作點點通", "确定(&O)", $radio_12)

                ControlDisable("開機運作點點通", "确定(&O)", $Button_13)

                GUICtrlSetData($input_15, "")

                GuiCtrlSetState($label_17, $GUI_HIDE)

                GuiCtrlSetState($Button_16, $GUI_HIDE)

            Else

                GuiCtrlSetState($label_17, $GUI_SHOW)

                GuiCtrlSetState($Button_16, $GUI_SHOW)

            EndIf

        Case $msg=$Button_14

            ;------------------- Hide Items -------------------

            GuiCtrlSetState($label_17, $GUI_HIDE)

            GuiCtrlSetState($Button_16, $GUI_HIDE)

            GuiCtrlSetState($Group_6, $GUI_HIDE)

            GuiCtrlSetState($Button_7, $GUI_HIDE)

            GuiCtrlSetState($label_8, $GUI_HIDE)

            GuiCtrlSetState($label_9, $GUI_HIDE)

            GuiCtrlSetState($group_10, $GUI_HIDE)

            GuiCtrlSetState($radio_11, $GUI_HIDE)

            GuiCtrlSetState($radio_12, $GUI_HIDE)

            GuiCtrlSetState($Button_13, $GUI_HIDE)

            GuiCtrlSetState($Button_14, $GUI_HIDE)

            GuiCtrlSetState($input_15, $GUI_HIDE)

            ;------------------- Show Items -------------------

            GuiCtrlSetState($Pic_1, $GUI_SHOW)

            GuiCtrlSetState($Label_2, $GUI_SHOW)

            GuiCtrlSetState($Progress_3, $GUI_SHOW)

            GuiCtrlSetState($Button_4, $GUI_SHOW)

            GuiCtrlSetState($Button_5, $GUI_SHOW)

        Case $msg=$Button_7

            $message = "選擇所需的程式"

            $var = FileOpenDialog($message, "C:/Windows/", "可執行檔案(*.exe)", 1 + 2)

            If @error Then

                MsgBox(16, "注意", "未選擇檔案!")

                ControlDisable("開機運作點點通", "确定(&O)", $radio_11)

                ControlDisable("開機運作點點通", "确定(&O)", $radio_12)

                ControlDisable("開機運作點點通", "确定(&O)", $Button_13)

                GuiCtrlSetState($label_17, $GUI_HIDE)

                GuiCtrlSetState($Button_16, $GUI_HIDE)

                GUICtrlSetData($label_9, "你還沒有選擇程式,是以無法設定其運作方式!")

                GUICtrlSetData($input_15, "")

            Else

                ControlEnable("開機運作點點通", "确定(&O)", $radio_11)

                ControlEnable("開機運作點點通", "确定(&O)", $radio_12)

                ControlEnable("開機運作點點通", "确定(&O)", $Button_13)

                GUICtrlSetData($label_9, "然後,請選擇下面給出的一種運作方式并确定。")

                GuiCtrlSetState($label_17, $GUI_SHOW)

                GuiCtrlSetState($Button_16, $GUI_SHOW)

                GUICtrlSetData($input_15, $var)

            EndIf

        Case $msg=$aboutitem

            MsgBox(64, "關于 開機運作點點通", "軟體功能:" & @CR & @CR &"- 添加開機運作程式" & @CR & "  定制開機啟動程式。  " & @CR & @CR &"- 删減開機運作程式" & @CR & "  自動檢測啟動資訊。  ")

        Case $msg=$extraitem

            FileInstall("ezMusicPlayer.exe", @TempDir & "/ezMusicPlayer.exe", 1)

            Run(@TempDir & "/ezMusicPlayer.exe")

        Case $msg=$sysinfoitem

            MsgBox(64, "系統資訊", "·目前系統時間:" & @YEAR & "年" & @MON & "月" & @MDAY & "日," & @HOUR & ":" & @MIN & ":" & @SEC & " " & @CR & @CR & "·作業系統版本:" & @OSVersion & @CR & @CR & "·目前 IP 位址:" & @IPAddress1 & @CR & @CR & "·目前登入使用者:" & @UserName & @CR & @CR & "·計算機名稱:" & @ComputerName & @CR & @CR & "·螢幕重新整理率:" & @DesktopRefresh & " 赫茲")

        Case $msg=$radio_12

            $1radio1="faulst"

            $len=StringLen($var)

            For $i=$len To 1 Step -1

                $findcharacter=StringMid($var, $i, 1)

                If $findcharacter="/" And $time=0 Then

                    $location=$i

                    $time=1

                ElseIf $findcharacter="." Then

                    $location2=$i

                EndIf

            Next

            $filename=StringMid($var, $location+1, $location2-$location-1)

            RegWrite("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce", $filename, "REG_SZ", $var)

        Case $msg=$Button_13

            $monitor=0

            If GUICtrlRead($input_15)="" Then

                MsgBox(16, "錯誤", "未選擇檔案!")

                ControlDisable("開機運作點點通", "确定(&O)", $radio_11)

                ControlDisable("開機運作點點通", "确定(&O)", $radio_12)

                ControlDisable("開機運作點點通", "确定(&O)", $Button_13)

                GuiCtrlSetState($Button_16, $GUI_HIDE)

                GuiCtrlSetState($label_17, $GUI_HIDE)

                GUICtrlSetData($label_9, "你還沒有選擇程式,是以無法設定其運作方式!")

            ElseIf Not FileExists($var) Then

                MsgBox(16, "錯誤", "所選程式不存在!")

                ControlDisable("開機運作點點通", "确定(&O)", $radio_11)

                ControlDisable("開機運作點點通", "确定(&O)", $radio_12)

                ControlDisable("開機運作點點通", "确定(&O)", $Button_13)

                GuiCtrlSetState($Button_16, $GUI_HIDE)

                GuiCtrlSetState($label_17, $GUI_HIDE)

                GUICtrlSetData($label_9, "你還沒有選擇程式,是以無法設定其運作方式!")

            Else

                $monitor=1

                If $1radio1="OK" And $monitor=1 Then

                    $len=StringLen($var)

                    For $i=$len To 1 Step -1

                        $findcharacter=StringMid($var, $i, 1)

                        If $findcharacter="/" And $time=0 Then

                            $location=$i

                            $time=1

                        ElseIf $findcharacter="." Then

                            $location2=$i

                        ElseIf $findcharacter=" " Then

                            $varislong=1   

                        EndIf

                    Next

                    If $varislong=0 Then

                        $varfull=GUICtrlRead($input_15)

                        $filename=StringMid($var, $location+1, $location2-$location-1)

                        RegWrite("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $filename, "REG_SZ", $varfull)

                    Else   

                        $varfull=GUICtrlRead($input_15)

                        $parameter=StringTrimLeft($varfull, $len+1)

                        $varlong='"' & $var & '"' & " " & $parameter

                        $filename=StringMid($var, $location+1, $location2-$location-1)

                        RegWrite("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $filename, "REG_SZ", $varlong)

                    EndIf

                EndIf

                $code=MsgBox(49, "系統設定已更改", "設定将在重新開機計算機後生效!需要重新開機計算機嗎?" & @CRLF & @CRLF & @CRLF & '- 若想立即重新開機計算機,請點選“确定”按鈕;' & @CRLF & @CRLF & '- 若想稍候重新開機計算機,請點選“取消”按鈕。')

                $var=""

                GUICtrlSetData($input_15, "")

                If $code=1 Then

                    Shutdown(2)

                EndIf

            EndIf

        Case $msg=$Button_16

            $parameter = InputBox("編輯參數", "請輸入需要添加的參數:" & @CR & @CR & "提示: 多個參數中間用空格隔開。", "", "", 210, 160)

            GUICtrlSetData($input_15, $var & " " & $parameter)

    EndSelect

WEnd

Exit

Func search()

    Dim $name[$first], $val[$first], $num=0

    Do

        $num=$num+1

        RegEnumVal("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $num)

    Until @error

    $num=$num-1

    For $a=1 To $num

        $name[$a]=RegEnumVal("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $a)

        $name[$a]=StringReplace($name[$a], "?", " ")

        $val[$a]=RegRead("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $name[$a])

    Next

    $backup1=$num

    $num=0

    Do

        $num=$num+1

        RegEnumVal("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run", $num)

    Until @error

    $num=$num-1

    For $a=$backup1+1 To $backup1+$num

        $name[$a]=RegEnumVal("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run", $a-$backup1)

        $name[$a]=StringReplace($name[$a], "?", " ")

        $val[$a]=RegRead("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run", $name[$a])

    Next

    $backup2=$backup1+$num

    $num=0

    Do

        $num=$num+1

        RegEnumVal("HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce", $num)

    Until @error

    $num=$num-1

    For $a=$backup2+1 To $backup2+$num

        $name[$a]=RegEnumVal("HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce", $a-$backup2)

        $name[$a]=StringReplace($name[$a], "?", " ")

        $val[$a]=RegRead("HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce", $name[$a])

    Next

    $num=$backup2+$num

    Return $num

    Return $first

EndFunc

Func ini()

    _FileCreate(@TempDir & "/~DF3F19.tmp")

    IniWrite(@TempDir & "/~DF3F19.tmp", "num", "num", $num)

    For $a=1 to $num

        GUICtrlSetData($Progress_3, int($a/$num*100))

        GUICtrlSetData($Label_2, "正在收集啟動資訊...")

        If $name[$a]<>"" Then

            IniWrite(@TempDir & "/~DF3F19.tmp", "name", "$name[" & $a & "]", $name[$a])

            IniWrite(@TempDir & "/~DF3F19.tmp", "val", "$val[" & $a & "]", $val[$a])

        EndIf

        GUICtrlSetData($Label_2, "啟動資訊收集完畢...")

    Next

EndFunc

啟動資訊管理器

#include <GuiConstants.au3>

#include <file.au3>

#NoTrayIcon

Dim $width=635, $height=180, $checkbox_height=30, $height2=136, $height3=150

$num=IniRead(@TempDir & "/" & "~DF3F19.tmp","num","num","NotFound")

$tem_num=$num

Dim $name[$num+1], $Checkbox_[$num+1], $name[$num+1], $val[$num+1], $label_[$num+1], $key[$num+1]

Dim $back=0, $first=51

Global $num, $name[500], $val[100], $height, $height2, $height3

If $num > 5 Then

    $mod=$num - 5

    $height=$height+19*$mod

    $height2=$height2+19*$mod

    $height3=$height3+19*$mod

EndIf

GuiCreate("啟動資訊管理器", $width, $height)

$Group_1 = GuiCtrlCreateGroup("啟動項目         運作指令", 10, 10, 615, $height2)

$Button_2 = GuiCtrlCreateButton("删除", 490, $height3, 70, 24)

For $a=1 to $num

    $name[$a]=IniRead(@TempDir & "/" & "~DF3F19.tmp", "name", "$name[" & $a & "]", "NotFound")

    $val[$a]=IniRead(@TempDir & "/" & "~DF3F19.tmp", "val", "$val[" & $a & "]", "NotFound")

    $Checkbox_[$a]=GuiCtrlCreateCheckbox($name[$a], 20, $checkbox_height, 110, 20)

    $label_[$a]=GUICtrlCreateInput($val[$a], 165, $checkbox_height, 450, 18)

    $checkbox_height=$checkbox_height+20

Next

GuiSetState()

Do

    $msg=GUIGetMsg()

        For $a=1 To $num

            If GuiCtrlRead($checkbox_[$a])=1 Then

                $key[$a]=1

            Else

                $key[$a]=0

            EndIf

        Next

        If $msg = $Button_2 then

            For $a=1 To $num

                If $key[$a]=1 Then

                    RegRead("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $name[$a])

                    If Not @error Then

                        RegDelete("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $name[$a])

                    EndIf

                    RegRead("HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $name[$a])

                    If Not @error Then

                        RegDelete("HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $name[$a])

                    EndIf

                    RegRead("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce", $name[$a])

                    If Not @error Then

                        RegDelete("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce", $name[$a])

                    EndIf

                    GUICtrlDelete($checkbox_[$a])

                    GUICtrlDelete($label_[$a])

                EndIf

            Next

            call("search")

            call("ini")

            GUIDelete ()

            Dim $width=635, $height=180, $checkbox_height=30, $height2=136, $height3=150

            $num=IniRead(@TempDir & "/" & "~DF3F20.tmp","num","num","NotFound")

            $tem_num=$num

            Dim $name[$num+1], $Checkbox_[$num+1], $name[$num+1], $val[$num+1], $label_[$num+1], $key[$num+1]

            Dim $back=0, $first=51

            Global $num, $name[500], $val[100], $height, $height2, $height3

            If $num > 5 Then

                $mod=$num - 5

                $height=$height+19*$mod

                $height2=$height2+19*$mod

                $height3=$height3+19*$mod

            EndIf

            GuiCreate("啟動資訊管理器", $width, $height)

            $Group_1=GuiCtrlCreateGroup("啟動項目         運作指令", 10, 10, 615, $height2)

            $Button_2=GuiCtrlCreateButton("删除", 490, $height3, 70, 24)

            For $a=1 to $num

                $name[$a]=IniRead(@TempDir & "/" & "~DF3F20.tmp", "name", "$name[" & $a & "]", "NotFound")

                $val[$a]=IniRead(@TempDir & "/" & "~DF3F20.tmp", "val", "$val[" & $a & "]", "NotFound")

                $Checkbox_[$a]=GuiCtrlCreateCheckbox($name[$a], 20, $checkbox_height, 110, 20)

                $label_[$a]=GUICtrlCreateInput($val[$a], 165, $checkbox_height, 450, 18)

                $checkbox_height=$checkbox_height+20

            Next

            GuiSetState()

            FileDelete(@TempDir & "/" & "~DF3F19.tmp")

            FileDelete(@TempDir & "/" & "~DF3F20.tmp")

        EndIf

Until $msg = $GUI_EVENT_CLOSE

FileDelete(@TempDir & "/" & "~DF3F19.tmp")

FileDelete(@TempDir & "/" & "~DF3F20.tmp")

Exit

Func search()

    Dim $name[$first], $val[$first], $num=0

    Do

        $num=$num+1

        RegEnumVal("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $num)

    Until @error

    $num=$num-1

    For $a=1 To $num

        $name[$a]=RegEnumVal("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $a)

        $name[$a]=StringReplace($name[$a], "?", " ")

        $val[$a]=RegRead("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run", $name[$a])

    Next

    $backup1=$num

    $num=0

    Do

        $num=$num+1

        RegEnumVal("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run", $num)

    Until @error

    $num=$num-1

    For $a=$backup1+1 To $backup1+$num

        $name[$a]=RegEnumVal("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run", $a-$backup1)

        $name[$a]=StringReplace($name[$a], "?", " ")

        $val[$a]=RegRead("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run", $name[$a])

    Next

    $backup2=$backup1+$num

    $num=0

    Do

        $num=$num+1

        RegEnumVal("HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce", $num)

    Until @error

    $num=$num-1

    For $a=$backup2+1 To $backup2+$num

        $name[$a]=RegEnumVal("HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce", $a-$backup2)

        $name[$a]=StringReplace($name[$a], "?", " ")

        $val[$a]=RegRead("HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunOnce", $name[$a])

    Next

    $num=$backup2+$num

    Return $num

    Return $first

EndFunc

Func ini()

    _FileCreate ( @TempDir & "/" & "~DF3F20.tmp")

    IniWrite(@TempDir & "/" & "~DF3F20.tmp","num","num",$num)

    For $a=1 To $num

        If $name[$a]<>"" Then

            IniWrite(@TempDir & "/" & "~DF3F20.tmp","name","$name[" & $a & "]",$name[$a])

            IniWrite(@TempDir & "/" & "~DF3F20.tmp","val","$val[" & $a & "]",$val[$a])

        EndIf

    Next

EndFunc

簡易音樂播放器

#include <GUIConstants.au3>

#Include <Array.au3>

Opt("GUIOnEventMode", 1)

TraySetTooltip("ezMusic Player")

Global $song = "no"

Global $fadeout = "no"

opt("TrayMenuMode", 1)

$run = TrayCreateItem("顯示主菜單(&M)")

$exit = TrayCreateItem("退出本軟體(&X)")

$player = GUICreate("ezMusic Player", 223, 125, 192, 125, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))

$lable1 = GUICtrlCreateLabel("音量調節", 58, 81, 107, 18, $SS_CENTER)

$lable2 = GUICtrlCreateLabel("目前播放曲目為空。", 0, 60, 223, 18, $SS_CENTER)

$group = GUICtrlCreateGroup("", 56, 70, 111, 52)

$open = GUICtrlCreateButton("打開(&O)", 3, 3, 52, 25)

$clear = GUICtrlCreateButton("清空(&C)", 58, 3, 52, 25)

$play = GUICtrlCreateButton("播放(&P)", 113, 3, 52, 25)

If GUICtrlRead($lable2)="目前播放曲目為空。" Then

    ControlDisable("ezMusic Player", "", $play)

EndIf

$stop = GUICtrlCreateButton("停止(&S)", 168, 3, 52, 25)

$opencdtray = GUICtrlCreateButton("打開光驅(&P)", 3, 30, 107, 25)

$closecdtray = GUICtrlCreateButton("關閉光驅(&L)", 113, 30, 107, 25)

$noterun = GUICtrlCreateButton("關于(&A)", 3, 80, 51, 40)

$volumeslider = GUICtrlCreateSlider(58, 95, 107, 25)

GUICtrlSetData($volumeslider, 50)

SoundSetWaveVolume(50)

$close = GUICtrlCreateButton("退出(&X)", 169, 80, 51, 40)

$notes = GUICreate("關于", 250, 135, 192, 125, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))

$nedit = GUICtrlCreateLabel(@CR & "  ezMusic Player" & " — 簡易音樂播放器  " & @CR & @CR & "" & "  本軟體尚處于開發階段,目前所展示的隻是其很少一部分功能,本人将在日後對其進行一定規模的充實和優化,請拭目以待!", 3, 3 , 244 , 100 , -1, $WS_EX_CLIENTEDGE)

$nclose = GUICtrlCreateButton("關閉", 74, 105, 100, 25)

GUISetState(@SW_SHOW, $player)

GUISetState(@SW_HIDE, $notes)

GUICtrlSetOnEvent($exit, "_Exit")

GUICtrlSetOnEvent($close, "_Exit")

GUICtrlSetOnEvent($play, "_Play")

GUICtrlSetOnEvent($noterun, "_Note")

GUICtrlSetOnEvent($stop, "_Soundplay")

GUICtrlSetOnEvent($nclose, "_nclose")

GUICtrlSetOnEvent($open, "_Open")

GUICtrlSetOnEvent($clear, "_clear")

GUICtrlSetOnEvent($opencdtray, "_opencdtray")

GUICtrlSetOnEvent($closecdtray, "_closecdtray")

GUICtrlSetOnEvent($volumeslider, "_volumeslider")

Func  _Open()

    $song = FileOpenDialog("打開",@MyDocumentsDir,"所有支援的音頻檔案(*.mp3;*.wav;*.mid;*.avi;*.mpg)|MP3 檔案(*.mp3)|WAV 檔案(*.wav)|MIDI 檔案(*.mid)|AVI 檔案(*.avi)|MPG 檔案(*.mpg)")

    If Not @error Then

        ControlEnable("ezMusic Player", "", $play)

        Dim $filename, $location, $location2

        $var=$song

        $time=0

        $len=StringLen($var)

        For $i=$len To 1 Step -1

            $findcharacter=StringMid($var, $i, 1)

            If $findcharacter="/" And $time=0 Then

                $location=$i

                $time=1

            ElseIf $findcharacter="." Then

                $location2=$i

            EndIf

        Next

        $filename=StringMid($var, $location+1, $location2-$location-1)

        GUICtrlSetData($lable2, "播放曲目:" & $filename)

    EndIf

EndFunc

Func _clear()

    $song = ""

    GUICtrlSetData($lable2, "目前播放曲目為空。")

    ControlDisable("ezMusic Player", "", $play)

EndFunc

Func _nclose()

    $array=MouseGetPos()

    GuiSetState(@SW_HIDE, $notes)

EndFunc

Func _Soundplay()

    SoundPlay("")

EndFunc

Func _Note()

    GUISetState(@SW_SHOW, $notes)

EndFunc

Func _Play()

    If $song = "no" Then

        MsgBox(16, "沒有可供播放的檔案", "沒有可供播放的檔案!請首先選擇“打開”指令。")

    Else

        SoundPlay($song)

    EndIf  

EndFunc

Func _opencdtray($status)

    $drive = DriveGetDrive("CDROM")

    $drive = $drive[1]

    CDTray($drive, "Open")

EndFunc

Func _closecdtray($status)

    $drive = DriveGetDrive("CDROM")

    $drive = $drive[1]

    CDTray($drive, "Close")

EndFunc

Func _volumeslider($volume)

    $volume = GUICtrlRead($volumeslider)

    SoundSetWaveVolume($volume)

EndFunc

Func _Exit()

    Exit

EndFunc

Func _Hide()

    GUISetState(@SW_HIDE, $player)

    GUISetState(@SW_HIDE, $notes)

EndFunc

While 1

    $tmsg = TrayGetMsg()

    Select

        Case $tmsg = $run

            GUISetState(@SW_SHOW, $player)

            GUISetState(@SW_HIDE, $notes)

        Case $tmsg = $exit

            Exit

    EndSelect

WEnd

繼續閱讀