settings_wine.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:games_nebula 作者: yancharkin 项目源码 文件源码
def cb_button_run(self, button):

        self.main_window.hide()

        while Gtk.events_pending():
            Gtk.main_iteration()

        dialog = Gtk.FileChooserDialog(
            _("Choose a file to execute"),
            self.main_window,
            Gtk.FileChooserAction.OPEN,
            (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
             Gtk.STOCK_OPEN, Gtk.ResponseType.OK))

        dialog.set_current_folder(self.wineprefix_path + '/drive_c')

        #filter1 = Gtk.FileFilter()
        #filter1.set_name("DOS/Windows executable")
        #filter1.add_mime_type("application/x-ms-dos-executable")
        #dialog.add_filter(filter1)

        file_filter = Gtk.FileFilter()
        file_filter.set_name("*.exe, *.msi, *.bat")
        file_filter.add_pattern("*.exe")
        file_filter.add_pattern("*.msi")
        file_filter.add_pattern("*.bat")
        dialog.add_filter(file_filter)

        response = dialog.run()

        if response == Gtk.ResponseType.OK:

            file_path = dialog.get_current_folder()

            if '.exe' in dialog.get_filename().split('/')[-1]:
                command = '$WINELOADER "' + dialog.get_filename() + '"'
            elif '.msi' in dialog.get_filename().split('/')[-1]:
                command = '$WINELOADER msiexec /i "' + dialog.get_filename() + '"'
            elif '.bat' in dialog.get_filename().split('/')[-1]:
                command = '$WINELOADER start /unix "' + dialog.get_filename() + '"'

            dialog.destroy()

            while Gtk.events_pending():
                Gtk.main_iteration()

            os.system('cd "' + file_path + '" && ' + command)

        elif response == Gtk.ResponseType.CANCEL:
            dialog.destroy()

        self.main_window.show()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号