2013-03-31 2 views
7

Я использую cx-freeze для создания установщика MSI для приложения Python. Как установить ссылку на приложение с рабочего стола?Используйте cx-freeze для создания msi, который добавляет ярлык на рабочий стол

+0

возможно дубликат [Use ой заморозки, чтобы создать инсталлятор MSI, который устанавливает ребенок установку] (http://stackoverflow.com/questions/15733405/use-cx-freeze-to-create-an- msi-installer-that-installs-a-child-installer) –

+2

Вопросы разные. В этом вопросе я хочу создать значок рабочего стола. Другой вопрос задает вопрос о подключении нескольких установщиков MSI. – joshuanapoli

ответ

19

Чтобы создать ярлык приложения, дать shortCutName и shortcutDir опции в исполняемый файл. shortcutDir может назвать любой из System Folder Properties (спасибо Аарону). Например:

from cx_Freeze import * 

setup(
    executables = [ 
     Executable(
      "MyApp.py", 
      shortcutName="DTI Playlist", 
      shortcutDir="DesktopFolder", 
      ) 
     ] 
    ) 

Вы также можете добавить элементы в таблицу ярлыков MSI. Это позволяет создавать несколько ярлыков и устанавливать рабочий каталог (настройка «начать в» ярлыка).

from cx_Freeze import * 

# http://msdn.microsoft.com/en-us/library/windows/desktop/aa371847(v=vs.85).aspx 
shortcut_table = [ 
    ("DesktopShortcut",  # Shortcut 
    "DesktopFolder",   # Directory_ 
    "DTI Playlist",   # Name 
    "TARGETDIR",    # Component_ 
    "[TARGETDIR]playlist.exe",# Target 
    None,      # Arguments 
    None,      # Description 
    None,      # Hotkey 
    None,      # Icon 
    None,      # IconIndex 
    None,      # ShowCmd 
    'TARGETDIR'    # WkDir 
    ) 
    ] 

# Now create the table dictionary 
msi_data = {"Shortcut": shortcut_table} 

# Change some default MSI options and specify the use of the above defined tables 
bdist_msi_options = {'data': msi_data} 

setup(
    options = { 
     "bdist_msi": bdist_msi_options, 
    }, 
    executables = [ 
     Executable(
      "MyApp.py", 
      ) 
     ] 
    ) 
+0

Вы знаете, как это работает с системным администратором, планирующим установить такое приложение? Они не получат возможность для ярлыков или они будут? – PascalVKooten

+1

Ярлык будет установлен для всех пользователей, если установлено свойство ALLUSERS. – joshuanapoli

+0

Где вы можете установить свойство ALLUSERS? Как вы указываете значок? –