2010年11月2日火曜日

CraftLaunchで、スタートメニューのアイテムをコマンドに登録する

CraftLaunchで、以下のようにconfig.pyを記述すると、
スタートメニューのアイテムをコマンドに登録することができる。

    # --------------------------------------------------------------------
    # スタートメニューの中のショートカットをコマンドとして登録する
    if 1:
        startmenu_items = []

        MAX_PATH = 260
        CSIDL_PROGRAMS = 2
        CSIDL_COMMON_PROGRAMS = 23

        buf = ctypes.create_unicode_buffer(MAX_PATH)

        ctypes.windll.shell32.SHGetSpecialFolderPathW( None, buf, CSIDL_PROGRAMS, 0 )
        programs_dir = buf.value

        ctypes.windll.shell32.SHGetSpecialFolderPathW( None, buf, CSIDL_COMMON_PROGRAMS, 0 )
        common_programs_dir = buf.value
       
        startmenu_dirs = [
            programs_dir,
            common_programs_dir
        ]
       
        for startmenu_dir in startmenu_dirs:
            for location, dirs, files in os.walk( startmenu_dir ):
                for filename in files:
                    if not filename.lower().endswith(".lnk"):
                        continue
                    name, ext = os.path.splitext(filename)   
                    item = ( name, window.command_ShellExecute( None, os.path.join(location,filename), u"", u"" ) )
                    startmenu_items.append(item)
                   
        startmenu_items.sort()
       
        window.launcher.command_list += startmenu_items
   

0 件のコメント:

コメントを投稿