私のプログラムでは、フォルダーとそのサブフォルダーに基づくサブメニューを含むメニューを作成したいと考えています。
最初の関数は正常menu_fromfiles
に動作します。
しかし、2 番目の関数menu_fromfolders
でエラーが発生し続けますsubmenu does not exist
。手がかりはありますか?
これが私のコードです:
#SingleInstance force
RButton::
menu_fromfolders("filelist", "File List", "c:\test", "*.txt", "thismenu")
menu, thismenu, show
Return
-------------------------------------------------------------------
menu_fromfolders(submenuname, menutitle, whatdir, filemask="*", parentmenu="", whatsub="DONOTATHING"){
global
loop, %whatdir%\*, 1, 0
{
if(file_isfolder(A_LoopFileFullPath)){
menu_fromfiles(a_loopfilename, a_loopfilename, A_LoopFileFullPath, filemask, "", whatsub)
menu, %submenuname%, add, %a_loopfilename%, :%a_loopfilename%
}else{
menu, %submenuname%, add, %a_loopfilename%, %whatsub%
}
}
if(parentmenu){
menu, %parentmenu%, add, %menutitle%, :%submenuname%
}
return submenuname
}
menu_fromfiles(submenuname, menutitle, whatdir, filemask="*", parentmenu="", whatsub="DONOTATHING"){
loop, %whatdir%\%filemask%, 0, 0
{
menu, %submenuname%, add, %a_loopfilename%, %whatsub%
}
if(parentmenu){
menu, %parentmenu%, add, %menutitle%, :%submenuname%
}
return submenuname
}
;returns true if the item is a folder, false if is a file
file_isfolder(whatfile){
lastchar := substr(whatfile, 0, 1) ;fetch the last character from the string
if(lastchar != "\")
whatfile := whatfile . "\"
if(fileexist(whatfile))
return true
}
;empty command for the menu title
DONOTATHING:
return
より詳細なエラー メッセージは次のとおりです。
Error in ...script.ahk
Submenu does not exist
-->menu, %submenuname%, add, %a_loopfilename%, :%a_loopfilename%
[アップデート]
以下の私の解決策をご覧ください。ここで完全で洗練されたスクリプトを見つけることができます: http://www.autohotkey.com/board/topic/95219-dynamicfilemenuahk/