• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python msilib.add_data函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中msilib.add_data函数的典型用法代码示例。如果您正苦于以下问题:Python add_data函数的具体用法?Python add_data怎么用?Python add_data使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了add_data函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: add_config

 def add_config(self, fullname):
     # Hardwired b/c there is only one Executable() above
     index = 0
     baseName = os.path.basename(self.distribution.executables[index].targetName)
     # http://stackoverflow.com/questions/24195311/how-to-set-shortcut-working-directory-in-cx-freeze-msi-bundle
     msilib.add_data(
         self.db,
         "Shortcut",
         [
             (
                 "S_APP_%s" % index,
                 "DesktopFolder",
                 "QWeb",
                 "TARGETDIR",
                 "[TARGETDIR]%s" % baseName,
                 None,
                 None,
                 None,
                 None,
                 None,
                 None,
                 "TARGETDIR",
             )
         ],
     )
     cx_Freeze.bdist_msi.add_config(self, fullname)
开发者ID:lynch829,项目名称:radtrack,代码行数:26,代码来源:cx_freeze_win32.py


示例2: add_find_python

 def add_find_python(self):
     """Adds code to the installer to compute the location of Python.
     Properties PYTHON.MACHINE, PYTHON.USER, PYTHONDIR and PYTHON will be set
     in both the execute and UI sequences; PYTHONDIR will be set from
     PYTHON.USER if defined, else from PYTHON.MACHINE.
     PYTHON is PYTHONDIR\python.exe"""
     install_path = r"SOFTWARE\Python\PythonCore\%s\InstallPath" % self.target_version
     add_data(self.db, "RegLocator",
             [("python.machine", 2, install_path, None, 2),
              ("python.user", 1, install_path, None, 2)])
     add_data(self.db, "AppSearch",
             [("PYTHON.MACHINE", "python.machine"),
              ("PYTHON.USER", "python.user")])
     add_data(self.db, "CustomAction",
             [("PythonFromMachine", 51+256, "PYTHONDIR", "[PYTHON.MACHINE]"),
              ("PythonFromUser", 51+256, "PYTHONDIR", "[PYTHON.USER]"),
              ("PythonExe", 51+256, "PYTHON", "[PYTHONDIR]\\python.exe"),
              ("InitialTargetDir", 51+256, "TARGETDIR", "[PYTHONDIR]")])
     add_data(self.db, "InstallExecuteSequence",
             [("PythonFromMachine", "PYTHON.MACHINE", 401),
              ("PythonFromUser", "PYTHON.USER", 402),
              ("PythonExe", None, 403),
              ("InitialTargetDir", 'TARGETDIR=""', 404),
             ])
     add_data(self.db, "InstallUISequence",
             [("PythonFromMachine", "PYTHON.MACHINE", 401),
              ("PythonFromUser", "PYTHON.USER", 402),
              ("PythonExe", None, 403),
              ("InitialTargetDir", 'TARGETDIR=""', 404),
             ])
开发者ID:CaoYouXin,项目名称:myfirstapicloudapp,代码行数:30,代码来源:bdist_msi.py


示例3: control_service

		def control_service(service):
			start_on = service.control.get('start_on', 0)
			stop_on = service.control.get('stop_on', 0)
			remove_on = service.control.get('remove_on', 0)

			if not (start_on or stop_on or remove_on):
				log.warn('skipping controller for %s service, no events specified', service.name)
			else:
				log.info('adding controller for %s service', service.name)

			comp_id = get_service_comp(service)

			event = (
			(Service._msidbServiceControlEventStart if start_on & Service.INSTALL else 0) |
			(Service._msidbServiceControlEventStop if stop_on & Service.INSTALL else 0) |
			(Service._msidbServiceControlEventDelete if remove_on & Service.INSTALL else 0) |
			(Service._msidbServiceControlEventUninstallStart if start_on & Service.UNINSTALL else 0) |
			(Service._msidbServiceControlEventUninstallStop if stop_on & Service.UNINSTALL else 0) |
			(Service._msidbServiceControlEventUninstallDelete if remove_on & Service.UNINSTALL else 0))

			msilib.add_data(self.db, 'ServiceControl', [(
				comp_id,  # ServiceControl
				service.name,  # Name
				event,  # Event
				'~'.join(service.control.get('args', [])),  # Arguments
				1 if service.control.get('wait', True) else 0,  # Wait
				comp_id  # Component_
			)])
开发者ID:clach04,项目名称:py2exe2msi,代码行数:28,代码来源:command.py


示例4: add_scripts

 def add_scripts(self):
     if self.install_script:
         start = 6800
         for ver in self.versions + [self.other_version]:
             install_action = "install_script." + ver
             exe_prop = "PYTHON" + ver
             add_data(self.db, "CustomAction", [(install_action, 50, exe_prop, self.install_script_key)])
             add_data(self.db, "InstallExecuteSequence", [(install_action, "&Python%s=3" % ver, start)])
             start += 1
     # XXX pre-install scripts are currently refused in finalize_options()
     #     but if this feature is completed, it will also need to add
     #     entries for each version as the above code does
     if self.pre_install_script:
         scriptfn = os.path.join(self.bdist_dir, "preinstall.bat")
         f = open(scriptfn, "w")
         # The batch file will be executed with [PYTHON], so that %1
         # is the path to the Python interpreter; %0 will be the path
         # of the batch file.
         # rem ="""
         # %1 %0
         # exit
         # """
         # <actual script>
         f.write('rem ="""\n%1 %0\nexit\n"""\n')
         f.write(open(self.pre_install_script).read())
         f.close()
         add_data(self.db, "Binary", [("PreInstall", msilib.Binary(scriptfn))])
         add_data(self.db, "CustomAction", [("PreInstall", 2, "PreInstall", None)])
         add_data(self.db, "InstallExecuteSequence", [("PreInstall", "NOT Installed", 450)])
开发者ID:469306621,项目名称:Languages,代码行数:29,代码来源:bdist_msi.py


示例5: add_scripts

 def add_scripts(self):
     if self.install_script:
         add_data(self.db, "CustomAction",
                 [("install_script", 50, "PYTHON", self.install_script_key)])
         add_data(self.db, "InstallExecuteSequence",
                 [("install_script", "NOT Installed", 6800)])
     if self.pre_install_script:
         scriptfn = os.path.join(self.bdist_dir, "preinstall.bat")
         f = open(scriptfn, "w")
         # The batch file will be executed with [PYTHON], so that %1
         # is the path to the Python interpreter; %0 will be the path
         # of the batch file.
         # rem ="""
         # %1 %0
         # exit
         # """
         # <actual script>
         f.write('rem ="""\n%1 %0\nexit\n"""\n')
         f.write(open(self.pre_install_script).read())
         f.close()
         add_data(self.db, "Binary",
             [("PreInstall", msilib.Binary(scriptfn))
             ])
         add_data(self.db, "CustomAction",
             [("PreInstall", 2, "PreInstall", None)
             ])
         add_data(self.db, "InstallExecuteSequence",
                 [("PreInstall", "NOT Installed", 450)])
开发者ID:CaoYouXin,项目名称:myfirstapicloudapp,代码行数:28,代码来源:bdist_msi.py


示例6: add_exit_dialog

        def add_exit_dialog(self):
            # Add the license screen
            if self.get_licence() is not None:
                self.add_licence_dialog()

            # Allow to customize the MSI
            if hasattr(self.attribs, 'customize_msi'):
                self.attribs.customize_msi(self.db)

            # Add the product icon in control panel Install/Remove softwares
            icon_file = os.path.join(self.attribs.get_icons_home(),
                                     self.attribs.get_win_icon())
            if os.path.exists(icon_file):
                msilib.add_data(self.db, 'Property', [
                    ('ARPPRODUCTICON', 'InstallIcon'),
                ])
                msilib.add_data(self.db, 'Icon', [(
                    'InstallIcon', msilib.Binary(icon_file))])

            # Copy/paste from parent's method
            dialog = distutils.command.bdist_msi.PyDialog(
                self.db, 'ExitDialog',
                self.x, self.y, self.width, self.height, self.modal,
                self.title, 'Finish', 'Finish', 'Finish')
            dialog.title('Completing the [ProductName]')
            dialog.back('< Back', 'Finish', active=False)
            dialog.cancel('Cancel', 'Back', active=False)
            dialog.text(
                'Description', 15, 235, 320, 20, 0x30003,
                'Click the Finish button to exit the installer.')
            button = dialog.next('Finish', 'Cancel', name='Finish')
            button.event('EndDialog', 'Return')

            """
开发者ID:ssdi-drive,项目名称:nuxeo-drive,代码行数:34,代码来源:__init__.py


示例7: add_text_styles

 def add_text_styles(self):
     msilib.add_data(self.db, 'TextStyle',
             [("DlgFont8", "Tahoma", 9, None, 0),
              ("DlgFontBold8", "Tahoma", 8, None, 1),
              ("VerdanaBold10", "Verdana", 10, None, 1),
              ("VerdanaRed9", "Verdana", 9, 255, 0)
             ])
开发者ID:Active8-BV,项目名称:cryptobox_app,代码行数:7,代码来源:windist.py


示例8: merge

def merge(msi, feature, rootdir, modules):
    cab_and_filecount = []
    # Step 1: Merge databases, extract cabfiles
    m = msilib.MakeMerge2()
    m.OpenLog("merge.log")
    print "Opened Log"
    m.OpenDatabase(msi)
    print "Opened DB"
    for module in modules:
        print module
        m.OpenModule(module, 0)
        print "Opened Module", module
        m.Merge(feature, rootdir)
        print "Errors:"
        for e in m.Errors:
            print e.Type, e.ModuleTable, e.DatabaseTable
            print "   Modkeys:",
            for s in e.ModuleKeys:
                print s,
            print
            print "   DBKeys:",
            for s in e.DatabaseKeys:
                print s,
            print
        cabname = tempfile.mktemp(suffix=".cab")
        m.ExtractCAB(cabname)
        cab_and_filecount.append((cabname, len(m.ModuleFiles)))
        m.CloseModule()
    m.CloseDatabase(True)
    m.CloseLog()

    # Step 2: Add CAB files
    i = msilib.MakeInstaller()
    db = i.OpenDatabase(msi, win32com.client.constants.msiOpenDatabaseModeTransact)

    v = db.OpenView("SELECT LastSequence FROM Media")
    v.Execute(None)
    maxmedia = -1
    while 1:
        r = v.Fetch()
        if not r:
            break
        seq = r.IntegerData(1)
        if seq > maxmedia:
            maxmedia = seq
    print "Start of Media", maxmedia

    for cabname, count in cab_and_filecount:
        stream = "merged%d" % maxmedia
        msilib.add_data(db, "Media", [(maxmedia + 1, maxmedia + count, None, "#" + stream, None, None)])
        msilib.add_stream(db, stream, cabname)
        os.unlink(cabname)
        maxmedia += count
    # The merge module sets ALLUSERS to 1 in the property table.
    # This is undesired; delete that
    v = db.OpenView("DELETE FROM Property WHERE Property='ALLUSERS'")
    v.Execute(None)
    v.Close()
    db.Commit()
开发者ID:Androtos,项目名称:toolchain_benchmark,代码行数:59,代码来源:merge.py


示例9: run

	def run(self):
		if not (os.path.isdir(self.bdist_dir) and self.skip_build):
			self.run_command('py2exe')

		fullname = self.distribution.get_fullname()
		installer_name = self.get_installer_filename(fullname)
		installer_name = os.path.abspath(installer_name)

		if os.path.exists(installer_name):
			os.unlink(installer_name)

		metadata = self.distribution.metadata
		author = metadata.author

		if not author:
			author = metadata.maintainer
		if not author:
			author = 'UNKNOWN'

		version = metadata.get_version()
		sversion = '%d.%d.%d' % StrictVersion(version).version
		product_name = self.distribution.get_name()

		log.info('creating MSI package %s', installer_name)

		self.db = msilib.init_database(installer_name, schema,
				product_name, self.product_code or msilib.gen_uuid(), sversion, author)

		msilib.add_tables(self.db, sequence)

		props = []

		if self.upgrade_code:
			props.extend([
				('UpgradeCode', self.upgrade_code),
				('SecureCustomProperties', 'REPLACE')
			])

			msilib.add_data(self.db, 'Upgrade', [(
				self.upgrade_code,  # UpgradeCode
				None,  # VersionMin, detect all
				sversion,  # VersionMax
				None,  # Language
				0,  # Attributes
				None,  # Remove, REMOVE=ALL
				'REPLACE'  # ActionProperty
			)])

		if props:
			msilib.add_data(self.db, 'Property', props)

		self.add_files()
		self.add_services()

		self.db.Commit()

		if not self.keep_temp:
			remove_tree(self.bdist_dir, dry_run=self.dry_run)
			remove_tree(self.get_finalized_command('build').build_base)
开发者ID:clach04,项目名称:py2exe2msi,代码行数:59,代码来源:command.py


示例10: add_upgrade_config

 def add_upgrade_config(self, sversion):
     if self.upgrade_code is not None:
         msilib.add_data(self.db, 'Upgrade',
                 [(self.upgrade_code, None, sversion, None, 513, None,
                         "REMOVEOLDVERSION"),
                  (self.upgrade_code, sversion, None, None, 257, None,
                         "REMOVENEWVERSION")
                 ])
开发者ID:Active8-BV,项目名称:cryptobox_app,代码行数:8,代码来源:windist.py


示例11: customize_msi

 def customize_msi(self, db):
     import msilib
     # Add the possibility to bind an engine with MSI
     msilib.add_data(db, "CustomAction", [("NuxeoDriveBinder", 82,
                     self.get_win_targetName(),
                     "bind-server --password \"[TARGETPASSWORD]\" --local-folder \"[TARGETDRIVEFOLDER]\" [TARGETUSERNAME] [TARGETURL]")])
     msilib.add_data(db, "InstallExecuteSequence", [("NuxeoDriveBinder",
                           'NOT (TARGETUSERNAME="" OR TARGETURL="")', -1)])
开发者ID:Bindupriya,项目名称:nuxeo-drive,代码行数:8,代码来源:setup.py


示例12: add_config

 def add_config(self, fullname):
     """add the uninstaller icon"""
     windist.bdist_msi.add_config(self, fullname)
     msilib.add_data(self.db, "Registry", [("DisplayIcon",  # Registry
                                            -1,  # Root
                                            r"Software\Microsoft\Windows\CurrentVersion\Uninstall\%s" %
                                            self.productcode(),  # Key
                                            "DisplayIcon",  # Name
                                            r"[icons]kajongg.ico",  # Value
                                            "TARGETDIR")])  # default Component
开发者ID:KDE,项目名称:kajongg,代码行数:10,代码来源:setup.py


示例13: add_files

    def add_files(self):
        db = self.db
        cab = msilib.CAB('distfiles')
        rootdir = os.path.abspath(self.bdist_dir)
        root = Directory(db, cab, None, rootdir, 'TARGETDIR', 'SourceDir')
        f = Feature(db, 'Python', 'Python', 'Everything', 0, 1, directory='TARGETDIR')
        items = [(f, root, '')]
        for version in self.versions + [self.other_version]:
            target = 'TARGETDIR' + version
            name = default = 'Python' + version
            desc = 'Everything'
            if version is self.other_version:
                title = 'Python from another location'
                level = 2
            else:
                title = 'Python %s from registry' % version
                level = 1
            f = Feature(db, name, title, desc, 1, level, directory=target)
            dir = Directory(db, cab, root, rootdir, target, default)
            items.append((f, dir, version))

        db.Commit()
        seen = {}
        for feature, dir, version in items:
            todo = [dir]
            while todo:
                dir = todo.pop()
                for file in os.listdir(dir.absolute):
                    afile = os.path.join(dir.absolute, file)
                    if os.path.isdir(afile):
                        short = '%s|%s' % (dir.make_short(file), file)
                        default = file + version
                        newdir = Directory(db, cab, dir, file, default, short)
                        todo.append(newdir)
                    else:
                        if not dir.component:
                            dir.start_component(dir.logical, feature, 0)
                        if afile not in seen:
                            key = seen[afile] = dir.add_file(file)
                            if file == self.install_script:
                                if self.install_script_key:
                                    raise DistutilsOptionError('Multiple files with name %s' % file)
                                self.install_script_key = '[#%s]' % key
                        else:
                            key = seen[afile]
                            add_data(self.db, 'DuplicateFile', [(key + version,
                              dir.component,
                              key,
                              None,
                              dir.logical)])

            db.Commit()

        cab.commit(db)
        return
开发者ID:webiumsk,项目名称:WOT-0.9.14-CT,代码行数:55,代码来源:bdist_msi.py


示例14: commit

 def commit(self, db):
     filename = tempfile.mktemp()
     msilib.FCICreate(filename, self.files)
     print filename, os.path.getsize(filename)
     sys.stderr.write(str((self.diskId, self.index, None, "#"+self.name, None, None)) + "\n")
     msilib.add_data(db, "Media",
                     [(self.diskId, self.index, None, "#"+self.name, None, None)])
     msilib.add_stream(db, self.name, filename)
     self.diskId += 1
     db.Commit()
     os.unlink(filename)
开发者ID:project-renard-survey,项目名称:xerox-parc-uplib-mirror,代码行数:11,代码来源:build-msi-installer.py


示例15: add_scripts

 def add_scripts(self):
     super().add_scripts()
     start = 6850
     for ver in self.versions + [self.other_version]:
         install_action = "post_batgen." + ver
         exe_prop = "PYTHON" + ver
         add_data(self.db, "CustomAction",
                 [(install_action, 50, exe_prop, '-m shenv.batgen --overwrite -f \"[EmgrBatDir]\\shenv.bat\"')])
         add_data(self.db, "InstallExecuteSequence",
                 [(install_action, "&Python%s=3" % ver, start)])
         start += 1
开发者ID:josharnold52,项目名称:shenv,代码行数:11,代码来源:setup.py


示例16: generate_MSI

    def generate_MSI(self):
        shutil.copy(self.template, self.msifile.path)
        #1 Add exe and ini file to cab
        filelist = [(self.exefile.path, "ExeFile"), (self.inifile.path, "IniFile")]
        cabfile  = os.path.join(self.tempdir, "files.cab")
        msilib.FCICreate(cabfile, filelist)

        #2 Open the MSI database
        #database = msilib.init_database(self.msifile.path, msilib.schema, self.msifile.name,  self.productcode, self.productversion, self.manufacturer)
        #print self.msifile.path
        #msilib.add_tables(database, msilib.schema)
        database = msilib.OpenDatabase(self.msifile.path, msilib.MSIDBOPEN_DIRECT)
        msilib.add_stream(database, "Wpkg_GP.cab", cabfile)

        # Update Product Code
        summaryinformation = database.GetSummaryInformation(1)
        summaryinformation.SetProperty(msilib.PID_REVNUMBER, self.package_GUID)
        summaryinformation.Persist()
        
        # Add information to Media
        # DiskId | LastSequence | DiskPrompt | Cabinet | VolumeLabel | Source
        table = "Media"
        records = [(1, 2, None, "#Wpkg_GP.cab", None, None)]
        msilib.add_data(database, table, records)

        #CAB = msilib.CAB("Wpkg_GP.cab")
        #CAB.append(self.exefile.path, "ExeFile", "ExeFile")
        #CAB.append(self.inifile.path, "IniFile", "IniFile")
        #CAB.commit(database)

        # Add information to File
        # File | Component_ | FileName | FileSize| Version | Language | Attributes | Sequence
        table = "File"
        records = [
            ("ExeFile", "Installer", self.exefile.name, self.exefile.size, None, None, 512, 1),
            ("IniFile", "Installer", self.inifile.name, self.inifile.size, None, None, 512, 2)
            ]
        msilib.add_data(database, table, records)

        
        # Add information to CustomAction
        # Action | Type | Source | Target
        # For Type, see: http://msdn.microsoft.com/en-us/library/aa372048%28v=VS.85%29.aspx

        # Add information to Property
        # Property | Value
        # Update version
        view = database.OpenView("UPDATE Property SET Value='%s' WHERE Property='ProductVersion'" % self.exefile.get_fileversion_as_string())
        view.Execute(None)
        view = database.OpenView("UPDATE Property Set Value='%s' WHERE Property='ProductCode'" % self.product_GUID)
        view.Execute(None)

        database.Commit()
开发者ID:cleitet,项目名称:wpkg-gp,代码行数:53,代码来源:MakeMSI.py


示例17: create_msi_installer

def create_msi_installer(package, run_node, msi_root_node, installer_name=None, output_dir="dist"):
    meta = PackageMetadata.from_package(package)

    string_version = "%d.%d.%d" % (meta.version_major, meta.version_minor, meta.version_micro)

    fullname = "%s-%s" % (package.name, string_version)
    if installer_name is None:
        installer_name = "%s-%s.msi" % (package.name, string_version)
    parent_node = run_node.make_node(output_dir)
    if parent_node is None:
        raise IOError()
    installer_node = parent_node.make_node(installer_name)
    installer_name = installer_node.abspath()
    installer_node.parent.mkdir()

    author = meta.author

    short_version = sysconfig.get_python_version()

    has_ext_modules = True
    if has_ext_modules:
        target_version = short_version
    else:
        target_version = None

    if target_version:
        product_name = "Python %s %s" % (target_version, meta.fullname)
    else:
        product_name = "Python %s" % meta.fullname

    if target_version:
        versions = [target_version]
    else:
        versions = list(ALL_VERSIONS)

    db = msilib.init_database(installer_name, schema, product_name, msilib.gen_uuid(), string_version, author)
    msilib.add_tables(db, sequence)

    props = [("DistVersion", meta.version)]
    email = meta.author_email or meta.maintainer_email
    if email:
        props.append(("ARPCONTACT", email))
    if meta.url:
        props.append(("ARPURLINFOABOUT", meta.url))
    if props:
        add_data(db, "Property", props)

    add_find_python(db, versions)
    add_files(db, msi_root_node, versions, OTHER_VERSION)
    add_scripts(db)
    add_ui(db, fullname, versions, OTHER_VERSION)
    db.Commit()
开发者ID:pv,项目名称:bento,代码行数:52,代码来源:msi_utils.py


示例18: add_files

def add_files(db, msi_node, versions, other_version, install_script=None):
    if install_script is not None:
        raise NotImplementedError("Support for msi install script not yet implemented")
    cab = msilib.CAB("distfiles")
    rootdir = msi_node.abspath()

    root = Directory(db, cab, None, rootdir, "TARGETDIR", "SourceDir")
    f = Feature(db, "Python", "Python", "Everything", 0, 1, directory="TARGETDIR")

    items = [(f, root, "")]
    for version in versions + [other_version]:
        target = "TARGETDIR" + version
        name = default = "Python" + version
        desc = "Everything"
        if version is other_version:
            title = "Python from another location"
            level = 2
        else:
            title = "Python %s from registry" % version
            level = 1
        f = Feature(db, name, title, desc, 1, level, directory=target)
        dir = Directory(db, cab, root, rootdir, target, default)
        items.append((f, dir, version))
    db.Commit()

    seen = {}
    for feature, dir, version in items:
        todo = [dir]
        while todo:
            dir = todo.pop()
            for file in os.listdir(dir.absolute):
                afile = os.path.join(dir.absolute, file)
                if os.path.isdir(afile):
                    short = "%s|%s" % (dir.make_short(file), file)
                    default = file + version
                    newdir = Directory(db, cab, dir, file, default, short)
                    todo.append(newdir)
                else:
                    if not dir.component:
                        dir.start_component(dir.logical, feature, 0)
                    if afile not in seen:
                        key = seen[afile] = dir.add_file(file)
                        if file == install_script:
                            if install_script_key:
                                raise DistutilsOptionError("Multiple files with name %s" % file)
                            install_script_key = "[#%s]" % key
                    else:
                        key = seen[afile]
                        add_data(db, "DuplicateFile", [(key + version, dir.component, key, None, dir.logical)])
        db.Commit()
    cab.commit(db)
开发者ID:pv,项目名称:bento,代码行数:51,代码来源:msi_utils.py


示例19: add_exit_dialog

 def add_exit_dialog(self):
     import msilib
     if self.get_license() is not None:
         self.add_licence_dialog()
     dialog = distutils.command.bdist_msi.PyDialog(self.db, "ExitDialog",
             self.x, self.y, self.width, self.height, self.modal,
             self.title, "Finish", "Finish", "Finish")
     dialog.title("Completing the [ProductName]")
     dialog.back("< Back", "Finish", active=False)
     dialog.cancel("Cancel", "Back", active=False)
     dialog.text("Description", 15, 235, 320, 20, 0x30003,
             "Click the Finish button to exit the installer.")
     button = dialog.next("Finish", "Cancel", name="Finish")
     button.event("EndDialog", "Return")
     msilib.add_data(self.db, "Property",
              [("StartClient", "1")])
     # Launch product checkbox
     c = dialog.control("LaunchAfterInstall", "CheckBox",
                        15, 200, 320, 20, 0x3,
                        "StartClient", "Launch [ProductName]", None, None)
     c.condition("Hide", 'Progress1<>"Install"')
     # 18 is for execute a .exe from install
     msilib.add_data(self.db, "CustomAction", [("LaunchNuxeoDrive", 18,
                                                "launcher.exe",
                                                self.get_executable())])
     button.event("DoAction", "LaunchNuxeoDrive",
                  'StartClient=1 and Progress1="Install"')
     msilib.add_data(self.db, "CustomAction", [("NuxeoDriveCleanUp", 18,
                                                self.get_executable(),
                                                "uninstall")])
     msilib.add_data(self.db, "InstallExecuteSequence",
                     [("NuxeoDriveCleanUp",
                       'REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE', 1260)])
开发者ID:jowensla,项目名称:nuxeo-drive,代码行数:33,代码来源:__init__.py


示例20: add_ui

    def add_ui(self):
        super().add_ui();
        
        db = self.db
        x = y = 50
        w = 370
        h = 300
        title = "[ProductName] Setup"

        # see "Dialog Style Bits"
        modal = 3      # visible | modal
        modeless = 1   # visible

        add_data(db, "Property",
             # See "DefaultUIFont Property"
             [("EmgrBatDir", "c:\\utility"),
             ])


        add_data(db, "InstallUISequence", [
                 ("SelectBatDest", "Not Installed", 1231),
                 ])
        
        #####################################################################
        # Feature (Python directory) selection
        seldlg = PyDialog(db, "SelectBatDest", x, y, w, h, modal, title,
                        "Next", "Next", "Cancel")
        seldlg.title("Select the destination for the shenv.bat file")

        seldlg.text("Hint", 15, 30, 300, 20, 3,
                    "Select the directory where the shenv.bat file is installed."
                    )
        
        seldlg.back("< Back", None, active=1)
        c = seldlg.next("Next >", "Cancel")
        order = 1
        c.event("SpawnWaitDialog", "WaitForCostingDlg", ordering=order + 1)
        c.event("EndDialog", "Return", ordering=order + 2)
        c = seldlg.cancel("Cancel", "PathEdit")  #TODO : next cointrol
        c.event("SpawnDialog", "CancelDlg")

        c = seldlg.control("PathEdit", "PathEdit", 15, 60, 300, 16, 3,
                   "EmgrBatDir", "YoMan", "Next", None)
开发者ID:josharnold52,项目名称:shenv,代码行数:43,代码来源:setup.py



注:本文中的msilib.add_data函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python msilib.Dialog类代码示例发布时间:2022-05-27
下一篇:
Python msgpack_numpy.patch函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap