2013-03-31 27 views
7

Tôi đang sử dụng cx-freeze để tạo trình cài đặt MSI cho ứng dụng Python. Làm thế nào tôi có thể cài đặt một liên kết đến ứng dụng từ máy tính để bàn?Sử dụng cx-freeze để tạo một msi thêm lối tắt cho màn hình

+0

thể trùng lặp của [Sử dụng cx-đóng băng để tạo ra một trình cài đặt msi cài đặt một trình cài đặt đứa trẻ] (http://stackoverflow.com/questions/15733405/use-cx-freeze-to-create-an- msi-installer-that-install-a-child-installer) –

+2

Các câu hỏi khác nhau. Trong câu hỏi này, tôi muốn tạo một biểu tượng máy tính để bàn. Câu hỏi khác hỏi về việc đóng gói một số trình cài đặt MSI. – joshuanapoli

Trả lời

19

Để tạo một shortcut cho các ứng dụng, cung cấp cho các shortCutNameshortcutDir tùy chọn để thực thi. Phím tắt Dir có thể đặt tên bất kỳ số nào trong số System Folder Properties (nhờ Aaron). Ví dụ:

from cx_Freeze import * 

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

Bạn cũng có thể thêm các mục vào bảng Shortcut của MSI. Điều này cho phép bạn tạo nhiều phím tắt và đặt thư mục làm việc (cài đặt "bắt đầu trong" của phím tắt).

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

Bạn có biết cách làm việc này với quản trị viên hệ thống sẽ cài đặt ứng dụng như vậy không? Họ sẽ không nhận được tùy chọn cho các phím tắt hoặc họ sẽ? – PascalVKooten

+1

Phím tắt sẽ được cài đặt cho tất cả người dùng nếu thuộc tính ALLUSERS được đặt. – joshuanapoli

+0

Bạn có thể đặt thuộc tính ALLUSERS ở đâu? Làm thế nào để bạn chỉ định một biểu tượng? –