看板 EZsoft
作者 標題 [轉寄]Re: [請問] 有甚麼撥放器可以用快捷鍵撥放不同音效擋?
時間 2011年03月31日 Thu. AM 08:08:01
※ 本文轉寄自 tingyun60426.bbs@ptt.cc
看板 EZsoft
作者 標題 Re: [請問] 有甚麼撥放器可以用快捷鍵撥放不同音效擋?
時間 Wed Mar 30 14:04:18 2011
簡單的用 ahk 寫一個,不過沒有做什麼檢查,例如熱鍵是否重複...
可以自己設定熱鍵播放聲音檔,也可以使用複合鍵 (Alt、Ctrl、Shift)
程式會自行產生一個 info.ini 檔
用來儲存設定的資訊(聲音檔路徑、熱鍵),必需與主程式放在同一個目錄下
有兩個地方沒有斷行,需要注意一下
或直接下載:http://www.mediafire.com/?78ws5no250zcqi5
==================================
#SingleInstance Force
Gui, Font, s9
Gui, Add, Text, x12, Label
Gui, Add, Text, x+60, File
Gui, Add, Text, x+250, HotKey
Gui, Add, Edit, x12 ys+15 w70
Gui, Add, Edit, x+10 ys+15 w200 +ReadOnly,
Gui, Add, Button,x+10 ys+13 gBrowse, Browse
Gui, Add, HotKey, x+12 ys+15 w80, vHK gLabel
Gui, Add, Button, x+12 ys+13 gSave, Save
Gui, Add, Button, x+12 ys+13 gdel, Delete
;---- 下面是同一行
Gui, Add, ListView, x12 h240 w530 gEdit +AltSubmit -Multi +Grid,
Label|File|HotKey
;---- 上面是同一行
Gui, Show, h300 w550 , Sound Play
Gosub, ReloadFile
Return
Browse:
;---- 下面是同一行
FileSelectFile, SelectedFile, 3, , Select a file, Sound File
(*.mp3;*.wav;*.wma)
;---- 上面是同一行
if SelectedFile =
Return
Else
GuiControl, , Edit2, %SelectedFile%
Return
Save:
GuiControlGet, path, , Edit2
GuiControlGet, lb, , Edit1
GuiControlGet, hk, , msctls_hotkey321
if(strLen(path) == 0 || strLen(lb) == 0 || StrLen(hk) == 0)
{
MsgBox, error...
Return
}
IniWrite, %path%, info.ini, %lb%, Path
IniWrite, %hk%, info.ini, %lb%, Hotkey
Gosub, ReloadFile
Return
Edit:
Gui, submit, NoHide
ControlGet, selectedItem, List, Selected, SysListView321
StringSplit, items, selectedItem, %A_Tab%
GuiControl, , Edit1, %items1%
GuiControl, , Edit2, %items2%
IniRead, hk, info.ini, %items1%, Hotkey
GuiControl, , msctls_hotkey321, %hk%
Return
ReloadFile:
LV_Delete()
IniRead, SectionsList, info.ini
Loop, Parse, SectionsList,
n,
r{
IniRead, path, info.ini, %A_LoopField%, Path
IniRead, hk, info.ini, %A_LoopField%, Hotkey
Hotkey, %hk%, RunScript, On
StringReplace, sHK, hk, +, Shift +
StringReplace, sHK, sHK, ^, Ctrl +
StringReplace, sHK, sHK, !, Alt +
LV_Add("", A_LoopField, path, sHK)
}
LV_ModifyCol()
Return
RunScript:
IniRead, SectionsList, info.ini
Loop, Parse, SectionsList,
n,
r{
IniRead, path, info.ini, %A_LoopField%, Path
IniRead, hk, info.ini, %A_LoopField%, Hotkey
if(hk == A_ThisHotkey) {
SoundPlay, %path%
}
}
Return
del:
Loop % LV_GetCount()
{
LV_GetText(RetrievedText,A_Index)
GuiControlGet, target, , Edit1
if instr(RetrievedText, target)
{
LV_Delete(A_Index)
IniDelete, info.ini, %target%
}
}
Return
GuiClose:
ExitApp
Return
=============================
懶得上註解..
--
承諾就像 幹伶XX
常說,但通常做不到
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.29.150.125
推 :push1F 03/30 22:48
--
※ 看板: EZsoft 文章推薦值: 0 目前人氣: 0 累積人氣: 326
回列表(←)
分享