Compare commits
173 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 509cf86d76 | |||
| bd945e5b86 | |||
| 834ea19a39 | |||
| 59e6da0652 | |||
| 7b83c7ef5f | |||
| 4a095393d8 | |||
| e3d944e448 | |||
| cb6fd9e202 | |||
| 9cca4f2def | |||
| db1acefe26 | |||
| d9c17e2470 | |||
| e6a9d1feb1 | |||
| 6d7cfc87bd | |||
| 7a56a66f6c | |||
| aa6743cd3e | |||
| e41ed6dd7b | |||
| 8c363d546a | |||
| c1d30e6e4d | |||
| a003a718b0 | |||
| 1fe731d860 | |||
| 567045d287 | |||
| ecba3a8c32 | |||
| 1fa1e9e523 | |||
| 5e7e567a18 | |||
| ea7c456620 | |||
| 99cdec7ad6 | |||
| dbb152d9eb | |||
| 5764ad09e6 | |||
| 47b3dddfbc | |||
| 8bb60a1be9 | |||
| 4c6283b817 | |||
| fbfd5bbe7b | |||
| 0bdf0d2e2f | |||
| f8678cea12 | |||
| 0e6883d927 | |||
| f9f8180c60 | |||
| 5edb8188b9 | |||
| 2b3374e30b | |||
| 3ffe532779 | |||
| ed638a2002 | |||
| fc32d40fe8 | |||
| 0c8db7a718 | |||
| 2bd02b94c5 | |||
| 3215713f2d | |||
| 0c2242b1f0 | |||
| 6276dfb0f9 | |||
| f6a4389c26 | |||
| 3601d69fef | |||
| 0fbbda6ecb | |||
| 9bca2ac943 | |||
| 091950c5ed | |||
| 0c6fce93b3 | |||
| b1deb06b49 | |||
| f200bd3362 | |||
| 06d9d48cb7 | |||
| 0997767548 | |||
| e120db0bee | |||
| 375cb1147f | |||
| ed195d644e | |||
| bd46971f5c | |||
| 665220af83 | |||
| 1ebca9d008 | |||
| 8a5efb6908 | |||
| b6e0e203f8 | |||
| 932ff67008 | |||
| 2454f926d0 | |||
| de6be5d611 | |||
| d498b03a4f | |||
| 2db446a845 | |||
| b5dda7fc67 | |||
| c443796f85 | |||
| b1fb27ad9b | |||
| 5e1279d80b | |||
| 8fd0cd28c8 | |||
| a8749b8f7c | |||
| b45b88902c | |||
| c638648252 | |||
| d489f6f00d | |||
| 4334c424ac | |||
| 49c37d8a9f | |||
| 1e78584493 | |||
| 00e0fe5046 | |||
| c55f2f78aa | |||
| e410c8663b | |||
| d585e0feb3 | |||
| 0e53c2cd9c | |||
| 5453c085c9 | |||
| ec55faf75a | |||
| ee692c8962 | |||
| d28d21557c | |||
| 63b136519d | |||
| 289f97238d | |||
| 7c4c64bc42 | |||
| 9b7a24ff38 | |||
| 020e1d27db | |||
| e0085096ea | |||
| 0b27c043ea | |||
| e18b963dbb | |||
| 8149ea0e8d | |||
| 1a453c6778 | |||
| 5c2cd380ea | |||
| 3f38af72d9 | |||
| 8afe569b19 | |||
| 51d471f649 | |||
| cf17caf572 | |||
| daa04ec6fd | |||
| fcf3f74701 | |||
| 9254aa0cdf | |||
| a62a937700 | |||
| aac498bf7d | |||
| 931195a93a | |||
| fa87419c71 | |||
| 0b79246991 | |||
| d2cc2e231e | |||
| dd05dc9b74 | |||
| d8f482533c | |||
| df344a398c | |||
| 70195a794a | |||
| 19cd835b00 | |||
| f832e032de | |||
| 82b5ba9888 | |||
| fb4a4a3b79 | |||
| affabe4da7 | |||
| 8e9f71c870 | |||
| 28a6ec20b9 | |||
| 303161d10e | |||
| 24916bf63b | |||
| 7a4086732f | |||
| af7028b7d3 | |||
| 28257e2af1 | |||
| adcd46997b | |||
| 48f2c4cdf3 | |||
| ea92334e2b | |||
| 3c25c54aca | |||
| e9f24c2cc0 | |||
| 99d1255d93 | |||
| 590701a873 | |||
| ec2d488a9d | |||
| 5bd64c9e64 | |||
| 66784bae62 | |||
| 349d296bdf | |||
| a01287dd6f | |||
| 2eb05c9b7c | |||
| d477bee819 | |||
| 2bfb4314ae | |||
| 6702a51693 | |||
| 3aa23d1635 | |||
| 51a5f20832 | |||
| 485ac326bd | |||
| 2c033861fa | |||
| 3e9e9673ba | |||
| 8b2c3a1905 | |||
| b87cca719e | |||
| e2385b3511 | |||
| 302db1b690 | |||
| d4f5053c78 | |||
| 55ebd2b623 | |||
| c60252ac68 | |||
| f003a29e48 | |||
| 8f021870d5 | |||
|
|
aecadd76f2 | ||
|
|
bcc9c3f1ce | ||
| 04ce5be792 | |||
| 314b98097c | |||
| 746173b3bf | |||
| b5dd2408a5 | |||
| 98635be711 | |||
| e7a8726d85 | |||
| e41cb67097 | |||
| dfb60327d6 | |||
| 816b1df3d3 | |||
| 2febb083ae | |||
| e2ac8087cc |
0
.idea/.gitignore
generated
vendored
Normal file → Executable file
2
.idea/deepin-wine-run.iml
generated
Normal file → Executable file
@@ -2,7 +2,7 @@
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.10" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
0
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file → Executable file
2
.idea/misc.xml
generated
Normal file → Executable file
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
0
.idea/modules.xml
generated
Normal file → Executable file
0
.idea/vcs.xml
generated
Normal file → Executable file
54
API/Python/__init__.py
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.4.0
|
||||
# 更新时间:2022年10月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 加入路径
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
#################
|
||||
# 引入所需的库(正式内容)
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import ConfigLanguareRunner
|
||||
class Old:
|
||||
wine = ""
|
||||
wineprefix = ""
|
||||
def __init__(self, wine = "", wineprefix = "") -> None:
|
||||
self.wine = os.getenv("WINE") if wine == "" else wine
|
||||
self.wineprefix = os.getenv("WINEPREFIX") if wine == "" else wineprefix
|
||||
|
||||
def runCommand(self, command: str) -> None:
|
||||
com = ConfigLanguareRunner.Command(command)
|
||||
print(com.GetCommandList())
|
||||
return com.Run(com.GetCommandList(), self.wineprefix, self.wine)
|
||||
|
||||
def runList(self, command: list) -> None:
|
||||
return ConfigLanguareRunner.Command("").Run(command, self.wineprefix, self.wine)
|
||||
|
||||
class Bash:
|
||||
wine = ""
|
||||
wineprefix = ""
|
||||
def __init__(self, wine = "", wineprefix = "") -> None:
|
||||
self.wine = os.getenv("WINE") if wine == "" else wine
|
||||
self.wineprefix = os.getenv("WINEPREFIX") if wine == "" else wineprefix
|
||||
|
||||
def runCommand(self, command: str) -> int:
|
||||
return os.system(f"'{programPath}/../../AutoShell/main.py' -c \"{command}\"")
|
||||
|
||||
def runList(self, command: list) -> int:
|
||||
commandStr = ""
|
||||
for k in command:
|
||||
for i in k:
|
||||
commandStr += f"'{i}' "
|
||||
commandStr += ";"
|
||||
return os.system(f"'{programPath}/../../AutoShell/main.py' -c \"{commandStr}\"")
|
||||
BIN
API/Python/__pycache__/__init__.cpython-37.pyc
Normal file
3
API/demo/a.py
Normal file
@@ -0,0 +1,3 @@
|
||||
import WineRunner
|
||||
WineRunner.Bash("a").runList([["thank"], ["version"]])
|
||||
#WineRunner.Bash("a").runCommand("thank")
|
||||
86
AllInstall.py
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
|
||||
def AddSparkStoreSource():
|
||||
# Download and install key
|
||||
os.system("mkdir -p /tmp/spark-store-install")
|
||||
os.system("wget -O /tmp/spark-store-install/spark-store.asc https://d.store.deepinos.org.cn/dcs-repo.gpg-key.asc")
|
||||
os.system("sudo gpg --dearmor /tmp/spark-store-install/spark-store.asc")
|
||||
os.system("cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg")
|
||||
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
||||
os.system("sudo apt update -o Dir::Etc::sourcelist=\"sources.list.d/sparkstore.list\" -o Dir::Etc::sourceparts=\"-\" -o APT::Get::List-Cleanup=\"0\"")
|
||||
|
||||
def InstallSparkWine(wine):
|
||||
#if os.path.exists("/usr/local/bin/ss-apt-fast"):
|
||||
#os.system("sudo apt install apt-fast -y")
|
||||
#os.system(f"sudo ss-apt-fast install \"{wine}\" -y")
|
||||
#return
|
||||
#os.system("sudo ss-apt-fast update")
|
||||
if not os.system("which aptss"):
|
||||
os.system(f"sudo aptss install \"{wine}\" -y")
|
||||
elif not os.system("which ss-apt-fast"):
|
||||
os.system("sudo ss-apt-fast update")
|
||||
os.system(f"sudo ss-apt-fast install \"{wine}\" -y")
|
||||
elif not os.system("which apt-fast"):
|
||||
os.system(f"sudo apt-fast install \"{wine}\" -y")
|
||||
else:
|
||||
os.system(f"sudo apt install \"{wine}\" -y")
|
||||
|
||||
###################
|
||||
# 程序功能
|
||||
###################
|
||||
print('''
|
||||
m m "
|
||||
# # # mmm m mm mmm
|
||||
" #"# # # #" # #" #
|
||||
## ##" # # # #""""
|
||||
# # mm#mm # # "#mm"
|
||||
|
||||
|
||||
''')
|
||||
print("请保证你能有 root 权限以便安装")
|
||||
print("如果有请按回车,否则按 [Ctrl+C] 退出", end=' ')
|
||||
input()
|
||||
os.system("sudo apt update")
|
||||
print("请问是否要更新操作系统?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt upgrade -y")
|
||||
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install wine -y")
|
||||
print("请问是否要安装 deepin-wine?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine -y")
|
||||
print("请问是否要安装 deepin-wine5(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
print("请问是否要安装 deepin-wine5-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine5-stable -y")
|
||||
print("请问是否要安装 deepin-wine6-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
print("请问是否要安装 spark-wine7-devel(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
InstallSparkWine("spark-wine7-devel")
|
||||
print("请问是否要安装 ukylin-wine(需要添加 ukylin 源,但因为可能会导致系统问题,将不会自动添加)?[Y/N]", end=" ")
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install ukylin-wine -y")
|
||||
print("全部完成!")
|
||||
111
AppStore.py
Executable file
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:1.8.0
|
||||
# 更新时间:2022年08月01日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import pyquery
|
||||
import req as requests
|
||||
import urllib.parse as parse
|
||||
|
||||
def CleanTerminal():
|
||||
os.system("clear")
|
||||
print('''
|
||||
mm mmmm m
|
||||
## mmmm mmmm #" " mm#mm mmm m mm mmm
|
||||
# # #" "# #" "# "#mmm # #" "# #" " #" #
|
||||
#mm# # # # # "# # # # # #""""
|
||||
# # ##m#" ##m#" "mmm#" "mm "#m#" # "#mm"
|
||||
# #
|
||||
" "
|
||||
''')
|
||||
print("本软件源来自腾讯软件管家,只会下载文件后缀为“.exe”的文件")
|
||||
print("请输入要搜索的内容,如果要结束,请输入“exit”或点击右上角“×”关闭")
|
||||
print("无法保证从这里下载的安装包能正常安装/运行")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装指定应用")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,两个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
CleanTerminal()
|
||||
while True:
|
||||
search = input(">")
|
||||
if search.replace(" ", "").replace("\n", "") == "":
|
||||
continue
|
||||
if search.lower() == "exit": # 输入“exit”
|
||||
break # 结束程序
|
||||
|
||||
# 获取初步 API
|
||||
try:
|
||||
apiReturn = json.loads(requests.get(f"https://s.pcmgr.qq.com/tapi/web/searchcgi.php?type=search&callback=searchCallback&keyword={parse.quote(search)}&page=1&pernum=30").text[:-2][15:])
|
||||
except:
|
||||
#traceback.print_exc()
|
||||
input("无法连接服务器,按回车键继续")
|
||||
CleanTerminal()
|
||||
continue
|
||||
option = 0
|
||||
downloadUrl = []
|
||||
if not "list" in apiReturn:
|
||||
print("没有搜到结果,尝试换一个关键词试试")
|
||||
input("按回车键继续")
|
||||
CleanTerminal()
|
||||
continue
|
||||
for i in apiReturn["list"]: # 遍历选项
|
||||
htmlShow = i["xmlInfo"]
|
||||
url = pyquery.PyQuery(htmlShow)("url").text()
|
||||
if url[-3:] != "exe": # 格式非 exe,忽略
|
||||
continue
|
||||
print(option, i["SoftName"], url)
|
||||
downloadUrl.append(url)
|
||||
option += 1
|
||||
|
||||
if option == 0:
|
||||
print("没有搜到结果,尝试换一个关键词试试")
|
||||
input("按回车键继续")
|
||||
CleanTerminal()
|
||||
continue
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入选项编号(输入“exit”取消) >")
|
||||
if choose.lower() == "exit":
|
||||
choose = choose.lower()
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入有误,请正确输入编号")
|
||||
continue
|
||||
if not 0 <= choose or not choose < len(downloadUrl):
|
||||
print("输入的值超出范围,请正确输入编号")
|
||||
continue
|
||||
break
|
||||
if choose == "exit":
|
||||
CleanTerminal()
|
||||
continue
|
||||
print("开始下载……")
|
||||
os.system("rm -rf /tmp/wineappstore")
|
||||
os.system("mkdir -p /tmp/wineappstore")
|
||||
os.system(f"aria2c -x 16 -s 16 -d /tmp/wineappstore -o install.exe \"{downloadUrl[choose]}\"")
|
||||
print("开始安装……")
|
||||
print(f"WINEPREFIX={sys.argv[1]} {sys.argv[2]} /tmp/wineappstore/install.exe")
|
||||
os.system(f"WINEPREFIX={sys.argv[1]} {sys.argv[2]} /tmp/wineappstore/install.exe")
|
||||
print("安装结束……")
|
||||
input("按回车键继续……")
|
||||
CleanTerminal()
|
||||
363
AutoConfig.py
Executable file
@@ -0,0 +1,363 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.4.0
|
||||
# 更新时间:2022年10月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import base64
|
||||
import json
|
||||
import traceback
|
||||
import req as requests
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
from UI.AutoConfig import *
|
||||
from Model import *
|
||||
|
||||
urlSources = "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/auto"
|
||||
lists = []
|
||||
class ProgramRunStatusUpload():
|
||||
msgWindow = None
|
||||
starLayout = None
|
||||
fen = None
|
||||
starList = []
|
||||
sha1Value = ""
|
||||
programName = None
|
||||
def ChangeStar():
|
||||
if ProgramRunStatusUpload.fen.currentIndex() > 5:
|
||||
for i in ProgramRunStatusUpload.starList:
|
||||
i.setText(f"<img src='{programPath}/Icon/BadStar.svg' width=25>")
|
||||
return
|
||||
for i in range(ProgramRunStatusUpload.fen.currentIndex()):
|
||||
ProgramRunStatusUpload.starList[i].setText(f"<img src='{programPath}/Icon/Star.svg' width=25>")
|
||||
head = ProgramRunStatusUpload.fen.currentIndex()
|
||||
end = len(ProgramRunStatusUpload.starList)
|
||||
for i in range(head, end):
|
||||
ProgramRunStatusUpload.starList[i].setText(f"<img src='{programPath}/Icon/UnStar.svg' width=25>")
|
||||
|
||||
def ShowWindow(sha="", title=""):
|
||||
ProgramRunStatusUpload.starList = []
|
||||
ProgramRunStatusUpload.sha1Value = sha
|
||||
ProgramRunStatusUpload.msgWindow = QtWidgets.QMainWindow()
|
||||
msgWidget = QtWidgets.QWidget()
|
||||
msgWidgetLayout = QtWidgets.QGridLayout()
|
||||
ProgramRunStatusUpload.programName = QtWidgets.QLineEdit()
|
||||
ProgramRunStatusUpload.fen = QtWidgets.QComboBox()
|
||||
ProgramRunStatusUpload.starLayout = QtWidgets.QHBoxLayout()
|
||||
upload = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "上传"))
|
||||
upload.clicked.connect(ProgramRunStatusUpload.Upload)
|
||||
if title != "":
|
||||
ProgramRunStatusUpload.programName.setText(title)
|
||||
ProgramRunStatusUpload.programName.setDisabled(True)
|
||||
# 生成星星列表
|
||||
for i in [1, 1, 1, 1, 0]:
|
||||
ProgramRunStatusUpload.starList.append(QtWidgets.QLabel(f"<img src='{programPath}/Icon/{['Un', ''][i]}Star.svg' width=25>"))
|
||||
ProgramRunStatusUpload.starLayout.addWidget(ProgramRunStatusUpload.starList[-1])
|
||||
ProgramRunStatusUpload.starLayout.addItem(QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum))
|
||||
ProgramRunStatusUpload.programName.setPlaceholderText(QtCore.QCoreApplication.translate("U", "如果这个程序和程序名确实是合法还是检测到敏感词,改为“NULL”即可"))
|
||||
ProgramRunStatusUpload.fen.addItems(["0分", "1分", "2分", "3分", "4分", "5分"])
|
||||
ProgramRunStatusUpload.fen.setCurrentIndex(4)
|
||||
ProgramRunStatusUpload.fen.currentIndexChanged.connect(ProgramRunStatusUpload.ChangeStar)
|
||||
msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "程序名:")), 0, 0)
|
||||
msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "评分:")), 1, 0)
|
||||
msgWidgetLayout.addWidget(ProgramRunStatusUpload.programName, 0, 1)
|
||||
msgWidgetLayout.addWidget(ProgramRunStatusUpload.fen, 1, 1)
|
||||
msgWidgetLayout.addLayout(ProgramRunStatusUpload.starLayout, 2, 1)
|
||||
msgWidgetLayout.addWidget(upload, 3, 1)
|
||||
msgWidget.setLayout(msgWidgetLayout)
|
||||
ProgramRunStatusUpload.msgWindow.setCentralWidget(msgWidget)
|
||||
ProgramRunStatusUpload.msgWindow.setWindowTitle(QtCore.QCoreApplication.translate("U", "上传程序运行情况"))
|
||||
ProgramRunStatusUpload.msgWindow.setWindowIcon(QtGui.QIcon(iconPath))
|
||||
ProgramRunStatusUpload.msgWindow.show()
|
||||
|
||||
def Upload():
|
||||
try:
|
||||
#if ProgramRunStatusUpload.sha1Value == "":
|
||||
#ProgramRunStatusUpload.sha1Value = ProgramRunStatusUpload.GetSHA1(e2.currentText())
|
||||
QtWidgets.QMessageBox.information(None, QtCore.QCoreApplication.translate("U", "提示"), requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2Jhc2g=").decode("utf-8"), {
|
||||
"BashName": ProgramRunStatusUpload.sha1Value,
|
||||
"Fen": ProgramRunStatusUpload.fen.currentIndex()
|
||||
}).json()["Error"])
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(None, QtCore.QCoreApplication.translate("U", "错误"), QtCore.QCoreApplication.translate("U", "数据上传失败!"))
|
||||
|
||||
class InformationWindow():
|
||||
def ShowWindow():
|
||||
# 获取选中项
|
||||
try:
|
||||
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
|
||||
except:
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "您未选择任何配置文件")
|
||||
return
|
||||
fileName = ""
|
||||
for i in lists:
|
||||
print(i)
|
||||
if i[0] == choose:
|
||||
fileName = i[1]
|
||||
break
|
||||
try:
|
||||
get = requests.get(f"{urlSources}/information/{fileName}.txt")
|
||||
if get.status_code / 100 != 2 and get.status_code / 100 != 3:
|
||||
int("Bad")
|
||||
about = get.text
|
||||
if not "<" in about:
|
||||
# 非 Html 标签
|
||||
for i in about.splitlines():
|
||||
about += f"<p>{i}</p>\n"
|
||||
#about = f"<pre>{about}</pre>"
|
||||
about = f"<h1>关于“{choose}”的介绍</h1>\n{about}"
|
||||
except:
|
||||
traceback.print_exc()
|
||||
about = f"<h1>关于“{choose}”的介绍</h1>\n<p>暂无此程序的介绍</p>"
|
||||
try:
|
||||
import requests as r
|
||||
fenlists = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9iYXNoYXBwLw==").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
|
||||
tipsInfo = ""
|
||||
except:
|
||||
fenlists = [0, 0, 0, 0, 0]
|
||||
tipsInfo = "暂时无人提交此脚本运行情况,是否立即提交?"
|
||||
maxHead = fenlists.index(max(fenlists))
|
||||
allNumber = 0
|
||||
for i in fenlists:
|
||||
allNumber += i
|
||||
try:
|
||||
maxNumber = max(fenlists) / allNumber * 100
|
||||
if tipsInfo == "":
|
||||
tipsInfo = f"有{maxNumber}%的用户选择了这个评分"
|
||||
except:
|
||||
pass
|
||||
end = 5
|
||||
starHtml = ""
|
||||
if maxHead > 5:
|
||||
for i in range(end):
|
||||
starHtml += f"<img src='{programPath}/Icon/BadStar.svg' width=50>\n"
|
||||
else:
|
||||
for i in range(maxHead):
|
||||
starHtml += f"<img src='{programPath}/Icon/Star.svg' width=50>\n"
|
||||
head = maxHead
|
||||
for i in range(head, end):
|
||||
starHtml += f"<img src='{programPath}/Icon/UnStar.svg' width=50>"
|
||||
about += f"\n<hr/><h1>评分情况</h1>\n<p align='center'>{starHtml}</p>\n<p align='center'>{tipsInfo}</p>"
|
||||
message = QtWidgets.QDialog()
|
||||
messageLayout = QtWidgets.QVBoxLayout()
|
||||
informationText = QtWidgets.QTextBrowser()
|
||||
uploadFen = QtWidgets.QPushButton("提交评分")
|
||||
uploadFen.clicked.connect(lambda: ProgramRunStatusUpload.ShowWindow(fileName, choose))
|
||||
informationText.setHtml(about)
|
||||
messageLayout.addWidget(informationText)
|
||||
messageLayout.addWidget(uploadFen)
|
||||
message.setWindowTitle(f"关于“{choose}”的介绍")
|
||||
message.resize(int(message.frameSize().width() * 1.5), int(message.frameSize().height()))
|
||||
message.setLayout(messageLayout)
|
||||
#message.setWindowModality(ApplicationModal);
|
||||
message.show()
|
||||
message.exec_()
|
||||
|
||||
class ProgramRunStatusShow():
|
||||
msgWindow = None
|
||||
def ShowWindow():
|
||||
global lists
|
||||
# 获取选中项
|
||||
try:
|
||||
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
|
||||
except:
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "您未选择任何配置文件")
|
||||
return
|
||||
fileName = ""
|
||||
for i in lists:
|
||||
print(i)
|
||||
if i[0] == choose:
|
||||
fileName = i[1]
|
||||
break
|
||||
try:
|
||||
fenlists = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9iYXNoYXBwLw==").decode("utf-8") + fileName + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
|
||||
#r = requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9hcHAv").decode("utf-8") + sha + base64.b64decode("L3RpdGxlLnR4dA==").decode("utf-8"))
|
||||
#r.encoding = "utf-8"
|
||||
#title = r.text
|
||||
tipsInfo = ""
|
||||
except:
|
||||
#traceback.print_exc()
|
||||
fenlists = [0, 0, 0, 0, 0]
|
||||
tipsInfo = "暂时无人提交此脚本运行情况,是否立即提交?"
|
||||
|
||||
maxHead = fenlists.index(max(fenlists))
|
||||
allNumber = 0
|
||||
for i in fenlists:
|
||||
allNumber += i
|
||||
try:
|
||||
maxNumber = max(fenlists) / allNumber * 100
|
||||
if tipsInfo == "":
|
||||
tipsInfo = f"有{maxNumber}%的用户选择了这个评分"
|
||||
except:
|
||||
pass
|
||||
ProgramRunStatusShow.msgWindow = QtWidgets.QMainWindow()
|
||||
msgWidget = QtWidgets.QWidget()
|
||||
msgWidgetLayout = QtWidgets.QGridLayout()
|
||||
starLayout = QtWidgets.QHBoxLayout()
|
||||
uploadButton = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "点此上传运行情况"))
|
||||
uploadButton.clicked.connect(lambda: ProgramRunStatusUpload.ShowWindow(fileName, choose))
|
||||
msgWidgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "综合评价:")), 0, 0)
|
||||
msgWidgetLayout.addLayout(starLayout, 0, 1)
|
||||
msgWidgetLayout.addWidget(QtWidgets.QLabel(tipsInfo), 1, 0, 1, 2)
|
||||
#msgWidgetLayout.addWidget(QtWidgets.QLabel("" if dateVersion == "" else f"数据版本:{dateVersion}"), 2, 0, 1, 2)
|
||||
msgWidgetLayout.addWidget(uploadButton, 3, 0, 1, 2)
|
||||
end = 5
|
||||
if maxHead > 5:
|
||||
for i in range(end):
|
||||
starLayout.addWidget(QtWidgets.QLabel(f"<img src='{programPath}/Icon/BadStar.svg' width=50>"))
|
||||
else:
|
||||
for i in range(maxHead):
|
||||
starLayout.addWidget(QtWidgets.QLabel(f"<img src='{programPath}/Icon/Star.svg' width=50>"))
|
||||
head = maxHead
|
||||
for i in range(head, end):
|
||||
starLayout.addWidget(QtWidgets.QLabel(f"<img src='{programPath}/Icon/UnStar.svg' width=50>"))
|
||||
msgWidget.setLayout(msgWidgetLayout)
|
||||
ProgramRunStatusShow.msgWindow.setCentralWidget(msgWidget)
|
||||
ProgramRunStatusShow.msgWindow.setWindowIcon(QtGui.QIcon(iconPath))
|
||||
ProgramRunStatusShow.msgWindow.setWindowTitle(f"脚本“{choose}”运行情况")
|
||||
ProgramRunStatusShow.msgWindow.show()
|
||||
|
||||
def UploadFen():
|
||||
global lists
|
||||
# 获取选中项
|
||||
try:
|
||||
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
|
||||
except:
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "您未选择任何配置文件")
|
||||
return
|
||||
fileName = ""
|
||||
for i in lists:
|
||||
print(i)
|
||||
if i[0] == choose:
|
||||
fileName = i[1]
|
||||
break
|
||||
ProgramRunStatusUpload.ShowWindow(fileName, choose)
|
||||
|
||||
class Connect:
|
||||
def SearchBotton_Clicked():
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if ui.searchThings.text() == "":
|
||||
# 显示全部内容
|
||||
for i in lists:
|
||||
nmodel.appendRow(QtGui.QStandardItem(i[0]))
|
||||
ui.searchList.setModel(nmodel)
|
||||
return
|
||||
for i in lists:
|
||||
# 显示筛选的内容
|
||||
if ui.searchThings.text().upper() in i[0].upper():
|
||||
nmodel.appendRow(QtGui.QStandardItem(i[0]))
|
||||
ui.searchList.setModel(nmodel)
|
||||
|
||||
def RunBotton_Clicked():
|
||||
# 获取选中项
|
||||
try:
|
||||
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
|
||||
except:
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "您未选择任何配置文件")
|
||||
return
|
||||
fileName = ""
|
||||
for i in lists:
|
||||
print(i)
|
||||
if i[0] == choose:
|
||||
fileName = i[1]
|
||||
break
|
||||
# 下载脚本
|
||||
things = ""
|
||||
try:
|
||||
print(f"{urlSources}/{fileName}")
|
||||
file = open("/tmp/wine-runner-auto-config.wsh", "w")
|
||||
things = requests.get(f"{urlSources}/{fileName}").text
|
||||
file.write(things)
|
||||
file.close()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "无法获取配置文件")
|
||||
return
|
||||
# 判断版本以启动对应的解释器
|
||||
# 做到新旧兼容
|
||||
if "($" in things:
|
||||
print("a")
|
||||
OpenTerminal(f"env WINE='{wine}' WINEPREFIX='{wineprefix}' '{programPath}/ConfigLanguareRunner.py' '/tmp/wine-runner-auto-config.wsh' --system")
|
||||
# 执行脚本
|
||||
print(f"env WINE='{wine}' WINEPREFIX='{wineprefix}' '{programPath}/AutoShell/main.py' '/tmp/wine-runner-auto-config.wsh'")
|
||||
OpenTerminal(f"env WINE='{wine}' WINEPREFIX='{wineprefix}' '{programPath}/AutoShell/main.py' '/tmp/wine-runner-auto-config.wsh'")
|
||||
#process = QtCore.QProcess()
|
||||
#process.start(f"{programPath}/launch.sh", ["deepin-terminal", "-e", "env", f"WINE={wine}", f"WINEPREFIX={wineprefix}", f"{programPath}/ConfigLanguareRunner.py", "/tmp/wine-runner-auto-config.wsh", "--system"])
|
||||
#process.waitForFinished()
|
||||
|
||||
def OpenFile_Triggered():
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(window, "提示", homePath, "配置文件(*.sh *.wsh);;全部文件(*.*)")
|
||||
if path[0] == "":
|
||||
return
|
||||
try:
|
||||
things = ""
|
||||
with open(path) as file:
|
||||
things = file.read()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
# 判断版本以启动对应的解释器
|
||||
# 做到新旧兼容
|
||||
if "($" in things:
|
||||
OpenTerminal(f"env WINE='{wine}' WINEPREFIX='{wineprefix}' '{programPath}/ConfigLanguareRunner.py' '{path[0]}' --system")
|
||||
# 执行脚本
|
||||
OpenTerminal(f"env WINEARCH='{os.getenv('WINEARCH')}' WINEDEBUG='{os.getenv('WINEDEBUG')}' WINE='{wine}' WINEPREFIX='{wineprefix}' '{programPath}/AutoShell/main.py' '{path[0]}'")
|
||||
#process = QtCore.QProcess()
|
||||
#process.start(f"{programPath}/launch.sh", ["deepin-terminal", "-e", "env", f"WINE={wine}", f"WINEPREFIX={wineprefix}", f"{programPath}/ConfigLanguareRunner.py", path[0], "--system"])
|
||||
#process.waitForFinished()
|
||||
|
||||
# 读取文本文档
|
||||
def readtxt(path):
|
||||
f = open(path, "r") # 设置文件对象
|
||||
str = f.read() # 获取内容
|
||||
f.close() # 关闭文本对象
|
||||
return str # 返回结果
|
||||
|
||||
if __name__ == "__main__":
|
||||
homePath = os.path.expanduser('~')
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||
version = information["Version"]
|
||||
wine = "deepin-wine6-stable"
|
||||
wineprefix = f"{homePath}/.wine"
|
||||
try:
|
||||
wine = sys.argv[1]
|
||||
wineprefix = sys.argv[2]
|
||||
except:
|
||||
pass
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
window = QtWidgets.QMainWindow()
|
||||
ui = Ui_MainWindow()
|
||||
ui.setupUi(window)
|
||||
window.setWindowTitle(f"Wine 运行器 {version}——容器自动配置部署脚本")
|
||||
window.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
window.show()
|
||||
# 连接信号和槽
|
||||
ui.saerchBotton.clicked.connect(Connect.SearchBotton_Clicked)
|
||||
ui.uploadFen.clicked.connect(UploadFen)
|
||||
ui.getInfoButton.clicked.connect(InformationWindow.ShowWindow)
|
||||
ui.runBotton.clicked.connect(Connect.RunBotton_Clicked)
|
||||
ui.openFile.triggered.connect(Connect.OpenFile_Triggered)
|
||||
ui.exitProgram.triggered.connect(window.close)
|
||||
ui.getFen.clicked.connect(ProgramRunStatusShow.ShowWindow)
|
||||
# 解析云列表
|
||||
try:
|
||||
# 获取列表
|
||||
lists = json.loads(requests.get(f"{urlSources}/list.json").text)
|
||||
# 解释列表并显示在 GUI 上
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
for i in lists:
|
||||
nmodel.appendRow(QtGui.QStandardItem(i[0]))
|
||||
ui.searchList.setModel(nmodel)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "提示", "无法连接服务器")
|
||||
|
||||
app.exec_()
|
||||
14
AutoShell/command/bat
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/changeversion
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/createbotton
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/disbledWinebottlecreatelink
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/disbledhttpproxy
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/disbledopengl
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/disbledwinecrashdialog
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/download
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/enabledWinebottlecreatelink
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/enabledhttpproxy
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/enabledopengl
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/enabledwinecrashdialog
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/error
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/info
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installdll
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installdxvk
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installfont
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installgecko
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installmono
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installmsxml
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installnet
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installsparkcorefont
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/installvb
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
15
AutoShell/command/installvcpp
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/killallwineserver
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/pause
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/reg
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/stopdll
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/taskmgr
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/thank
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/version
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/warning
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/winecfg
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
14
AutoShell/command/winver
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../../")
|
||||
import ConfigLanguareRunner
|
||||
# 符号转移
|
||||
argv = []
|
||||
for i in sys.argv[1:]:
|
||||
argv.append(i.replace(" ", "\\ "))
|
||||
com = ConfigLanguareRunner.Command(f"{os.path.basename(sys.argv[0])} {' '.join(argv)}")
|
||||
com.Run(com.GetCommandList(), os.getenv("WINEPREFIX"), os.getenv("WINE"))
|
||||
sys.exit(int(ConfigLanguareRunner.programEnv[9][1]))
|
||||
75
AutoShell/main.py
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import json
|
||||
import platform
|
||||
|
||||
# 读取文本文档
|
||||
def readtxt(path):
|
||||
f = open(path, "r") # 设置文件对象
|
||||
str = f.read() # 获取内容
|
||||
f.close() # 关闭文本对象
|
||||
return str # 返回结果
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
information = json.loads(readtxt(f"{programPath}/../information.json"))
|
||||
version = information["Version"]
|
||||
thankText = ""
|
||||
for i in information["Thank"]:
|
||||
thankText += f"{i}\n"
|
||||
programEnv = [
|
||||
["WINEPREFIX", f"{os.path.expanduser('~')}/.wine"],
|
||||
["WINE", "deepin-wine6-stable"],
|
||||
["DANGER", "0"],
|
||||
["PROGRAMPATH", programPath],
|
||||
["VERSION", version],
|
||||
["THANK", thankText.replace("\n", "\\n")],
|
||||
["MAKER", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["COPYRIGHT", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["PLATFORM", platform.system()],
|
||||
["DEBUG", str(int("--debug" in sys.argv))]
|
||||
]
|
||||
'''programEnv = [
|
||||
["($WINEPREFIX)", f"{os.path.expanduser('~')}/.wine"],
|
||||
["($WINE)", "deepin-wine6-stable"],
|
||||
["($DANGER)", "0"],
|
||||
["($HOME)", os.path.expanduser('~')],
|
||||
["($PROGRAMPATH)", programPath],
|
||||
["($VERSION)", version],
|
||||
["($THANK)", thankText],
|
||||
["($MAKER)", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["?", "0"],
|
||||
["PLATFORM)", platform.system()],
|
||||
["DEBUG)", str(int("--debug" in sys.argv))]
|
||||
]'''
|
||||
optionAll = 0
|
||||
if "--debug" in sys.argv:
|
||||
optionAll += 1
|
||||
if "--system" in sys.argv:
|
||||
programEnv.append(["DANGER", "1"])
|
||||
optionAll += 1
|
||||
if os.getenv("WINE") != None:
|
||||
programEnv.append(["WINE", os.getenv("WINE")])
|
||||
if os.getenv("WINEPREFIX") != None:
|
||||
programEnv.append(["WINEPREFIX", os.getenv("WINEPREFIX")])
|
||||
# 生成可以使用的参数
|
||||
commandEnv = ""
|
||||
for i in programEnv:
|
||||
commandEnv += f"{i[0]}=\"{i[1]}\" "
|
||||
commandEnv += f"PATH=\"{programPath}/command:$PATH\" "
|
||||
if len(sys.argv) - optionAll < 2:
|
||||
print("Wine 运行器自动配置文件解析器交互环境(基于 Bash)")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("--------------------------------------------------------------")
|
||||
os.system(f"{commandEnv} bash ")
|
||||
exit()
|
||||
command = ""
|
||||
for i in sys.argv[1:]:
|
||||
command += f"\"{i}\" "
|
||||
print("Wine 运行器自动配置文件解析器(基于 Bash)")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("--------------------------------------------------------------")
|
||||
os.system(f"{commandEnv} bash {command}")
|
||||
BIN
BeCyIconGrabber.exe
Executable file
BIN
ChangeWineBottonVersion/10.reg
Normal file
BIN
ChangeWineBottonVersion/2003.reg
Normal file
BIN
ChangeWineBottonVersion/2008.reg
Normal file
BIN
ChangeWineBottonVersion/7.reg
Normal file
BIN
ChangeWineBottonVersion/8.1.reg
Normal file
BIN
ChangeWineBottonVersion/8.reg
Normal file
BIN
ChangeWineBottonVersion/desktop/desktop.reg
Normal file
BIN
ChangeWineBottonVersion/vista.reg
Normal file
BIN
ChangeWineBottonVersion/xp.reg
Normal file
42
ConfigLanguareRunner-help.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"installdll": "安装指定 dll 在指定容器\n参数数量:1\n参数介绍:dll名称或在从互联网获取DLL工具的编号,如 7012 xolehlp.dll 平台:2003 架构:64 的 7012",
|
||||
"stopdll": "不允许指定 dll/exe 运行\n参数数量:1\n参数介绍:dll/exe 名称,如 example.exe",
|
||||
"installfont": "安装指定字体到指定容器\n参数数量:1\n在字体商店的编号,如 5 msyhbd.ttc 的 5",
|
||||
"installsparkcorefont": "安装星火应用商店的“微软核心字体”\n参数数量:0\n参数介绍:无",
|
||||
"installmono": "安装最新版本的 mono 到指定容器\n参数数量:0\n参数介绍:无",
|
||||
"installgecko": "安装最新版本的 gecko 到指定容器\n参数数量:0\n参数介绍:无",
|
||||
"installvcpp": "安装指定的 VCPP 运行库到指定容器\n参数数量:1\n参数介绍:在安装 Visual Studio C++ 工具的编号,如 10 Visual Studio C++ 2015、2017、2019 和 2022 X64 的 10",
|
||||
"installnet": "安装指定的 .net framework 运行库到指定容器\n参数数量:1\n参数介绍:在安装 .net framework 工具的编号,如 3 .net framework 4.5.1 Offline Installer 的 3",
|
||||
"installmsxml": "安装指定的 MSXML 运行库到指定容器\n参数数量:1\n参数介绍:在安装 MSXML 工具的编号,如 1、MSXML 4.0 SP3 的 1",
|
||||
"echo": "显示内容\n参数数量:≥1\n参数介绍:接要显示的内容",
|
||||
"info": "显示提示对话框\n参数数量:2\n参数介绍:标题+显示内容",
|
||||
"error": "显示错误对话框\n参数数量:2\n参数介绍:标题+显示内容",
|
||||
"warning": "显示警告对话框\n参数数量:2\n参数介绍:标题+显示内容",
|
||||
"exit": "退出程序\n参数数量:0\n参数介绍:无",
|
||||
"bat": "执行 cmd 命令在 Wine 容器内(在 Windows 将在系统执行命令)\n参数数量:≥1\n参数介绍:接要执行的命令",
|
||||
"bash": "执行 bash 命令(在 Windows 系统将执行 cmd 命令)\n参数数量:≥1\n参数介绍:接要执行的命令",
|
||||
"version": "显示解释器版本(Wine 运行器版本)\n参数数量:0\n参数介绍:无",
|
||||
"thank": "显示谢明列表\n参数数量:0\n参数介绍:无",
|
||||
"pause": "按回车键后继续\n参数数量:0\n参数介绍:无",
|
||||
"download": "使用 aria2 下载文件\n参数数量:≥1 && ≤3\n参数介绍:下载URL+保存在的文件夹+保存的文件名",
|
||||
"installdxvk": "安装 dxvk 到指定容器\n参数数量:0\n参数介绍:无",
|
||||
"createbotton": "在指定目录创建容器\n参数数量:0\n参数介绍:无",
|
||||
"reg": "导入 .reg 文件\n参数数量:0\n参数介绍:reg 文件路径",
|
||||
"enabledopengl": "开启 OpenGL\n参数数量:0\n参数介绍:无",
|
||||
"disbledopengl": "关闭 OpenGL\n参数数量:0\n参数介绍:无",
|
||||
"winecfg": "显示“Wine 设置”\n参数数量:0\n参数介绍:无",
|
||||
"winver": "显示“关于 Wine”\n参数数量:0\n参数介绍:无",
|
||||
"changeversion": "更改 Wine 容器系统版本(未实现)\n参数数量:无\n参数介绍:无",
|
||||
"cat": "显示指定文件(只支持显示编码为UTF-8的文件)\n参数数量:1\n参数介绍:无",
|
||||
"enabledhttpproxy": "设置指定容器代理\n参数数量:2\n参数介绍:代理服务器地址+端口",
|
||||
"disbledhttpproxy": "禁用指定容器代理\n参数数量:0\n参数介绍:无",
|
||||
"enabledwinecrashdialog": "启用 Wine 容器程序崩溃提示窗口\n参数数量:0\n参数介绍:无",
|
||||
"disbledwinecrashdialog": "禁用 Wine 容器程序崩溃提示窗口\n参数数量:0\n参数介绍:无",
|
||||
"disbledWinebottlecreatelink": "禁止 Wine 容器生成快捷方式\n参数数量:0\n参数介绍:无",
|
||||
"enabledWinebottlecreatelink": "允许 Wine 容器生成快捷方式\n参数数量:0\n参数介绍:无",
|
||||
"killall": "杀死指定进程\n参数数量:1\n参数介绍:进程名",
|
||||
"control": "打开控制面板\n参数数量:0\n参数介绍:无",
|
||||
"taskmgr": "打开任务管理器\n参数数量:0\n参数介绍:无",
|
||||
"killallwineserver": "杀死所有 Wine 程序\n参数数量:0\n参数介绍:无",
|
||||
"installvb": "安装指定的 VB 运行库到指定容器\n参数数量:1\n参数介绍:在安装 Visual Basic Runtime 工具的编号,如 4 Visual Basic Runtime Visual Basic 6"
|
||||
}
|
||||
592
ConfigLanguareRunner.py
Executable file
@@ -0,0 +1,592 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年10月05日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import json
|
||||
import platform
|
||||
import traceback
|
||||
import subprocess
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
# 读取文本文档
|
||||
def readtxt(path):
|
||||
f = open(path, "r") # 设置文件对象
|
||||
str = f.read() # 获取内容
|
||||
f.close() # 关闭文本对象
|
||||
return str # 返回结果
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||
version = information["Version"]
|
||||
thankText = ""
|
||||
helpList = json.loads(readtxt(f"{programPath}/ConfigLanguareRunner-help.json"))
|
||||
for i in information["Thank"]:
|
||||
thankText += f"{i}\n"
|
||||
programEnv = [
|
||||
["($WINEPREFIX)", f"{os.path.expanduser('~')}/.wine"],
|
||||
["($WINE)", "deepin-wine6-stable"],
|
||||
#["($DANGER)", "0"],
|
||||
["($DANGER)", "1"],
|
||||
["($HOME)", os.path.expanduser('~')],
|
||||
["($PROGRAMPATH)", programPath],
|
||||
["($VERSION)", version],
|
||||
["($THANK)", thankText],
|
||||
["($MAKER)", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($?)", "0"],
|
||||
["($PLATFORM)", platform.system()],
|
||||
["($DEBUG)", "1"]
|
||||
#["($DEBUG)", str(int("--debug" in sys.argv))]
|
||||
]
|
||||
readOnlyEnv = [
|
||||
"($DANGER)",
|
||||
"($HOME)",
|
||||
"($PROGRAMPATH)",
|
||||
"($VERSION)",
|
||||
"($THANK)",
|
||||
"($MAKER)",
|
||||
"($COPYRIGHT)",
|
||||
"($?)",
|
||||
"($SYSTEM)",
|
||||
"($DEBUG)"
|
||||
]
|
||||
def Debug():
|
||||
if "--debug" in sys.argv:
|
||||
traceback.print_exc()
|
||||
|
||||
class Command():
|
||||
# 有风险的命令
|
||||
dangerCommand = [
|
||||
"bash",
|
||||
"bat",
|
||||
"download",
|
||||
"reg"
|
||||
]
|
||||
# 可以被使用的命令
|
||||
commandList = [
|
||||
"installdll",
|
||||
"installfont",
|
||||
"installsparkcorefont",
|
||||
"installmono",
|
||||
"installgecko",
|
||||
"installvcpp",
|
||||
"installnet",
|
||||
"installmsxml",
|
||||
"echo",
|
||||
"info",
|
||||
"error",
|
||||
"warning",
|
||||
"exit",
|
||||
"bash",
|
||||
"bat",
|
||||
"version",
|
||||
"thank",
|
||||
"pause",
|
||||
"download",
|
||||
"installdxvk",
|
||||
"createbotton",
|
||||
"reg",
|
||||
"enabledopengl",
|
||||
"disbledopengl",
|
||||
"winecfg",
|
||||
"winver",
|
||||
"changeversion",
|
||||
"stopdll",
|
||||
"cat",
|
||||
"taskmgr",
|
||||
"control",
|
||||
"killall",
|
||||
"killallwineserver",
|
||||
"enabledhttpproxy",
|
||||
"disbledhttpproxy",
|
||||
"enabledwinecrashdialog",
|
||||
"disbledwinecrashdialog",
|
||||
"disbledWinebottlecreatelink",
|
||||
"enabledWinebottlecreatelink",
|
||||
"installvb"
|
||||
]
|
||||
|
||||
def __init__(self, commandString: str) -> None:
|
||||
self.commandString = commandString
|
||||
|
||||
# 解析器
|
||||
# 命令字符串转可供解析的列表
|
||||
def GetCommandList(self) -> list:
|
||||
shellList = []
|
||||
shellFirstShell = self.commandString.split("\n")
|
||||
# 转换成可以执行的数组
|
||||
for l in range(0, len(shellFirstShell)):
|
||||
i = shellFirstShell[l]
|
||||
# 判断有没有注释
|
||||
if "#" in i:
|
||||
# 忽略注释
|
||||
i = i[:i.index("#")]
|
||||
# 删除前后空格
|
||||
i = i.strip()
|
||||
# 如果是空行
|
||||
if i == "":
|
||||
# 忽略此行,此行不做处理
|
||||
continue
|
||||
# 空格转义
|
||||
i = i.replace("\\ ", "@Space@")
|
||||
# 解析
|
||||
i = i.split()
|
||||
# 判断是否为合法的参数,否则提示并忽略
|
||||
if not i[0] in self.commandList and i[0][0] != "(":
|
||||
print(f"行{l + 1}命令{i[0]}不存在,忽略")
|
||||
programEnv[9][1] = "-2"
|
||||
continue
|
||||
if programEnv[2][1] == "0" and i[0] in self.dangerCommand:
|
||||
print(f"行{l + 1}命令{i[0]}目前解析器不允许运行,忽略")
|
||||
print("如果需要运行,可以在配置面板开启“允许修改系统”选项(针对GUI用户)")
|
||||
print("或添加参数 --system(终端调用运行用户)")
|
||||
programEnv[9][1] = "-1"
|
||||
continue
|
||||
rightList = []
|
||||
for k in i:
|
||||
# 处理符号转义
|
||||
rightList.append(k.replace("@Space@", " ").replace("\\n", "\n").replace("\\r", "\r"))
|
||||
shellList.append(rightList)
|
||||
return shellList
|
||||
|
||||
# 运行器
|
||||
class Run():
|
||||
close = False
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
def Exit(self):
|
||||
self.close = True
|
||||
return 0
|
||||
|
||||
def InstallDll(self) -> int:
|
||||
import InstallDll
|
||||
# 如果是数字
|
||||
number = False
|
||||
try:
|
||||
int(self.command[1])
|
||||
number = True
|
||||
except:
|
||||
pass
|
||||
if number:
|
||||
return InstallDll.Download(self.wineBottonPath, InstallDll.GetNameByNumber(int(self.command[1])), InstallDll.GetUrlByNumber(int(self.command[1])), self.wine)
|
||||
return InstallDll.Download(self.wineBottonPath, self.command[1], InstallDll.GetUrlByName(self.command[1]), self.wine)
|
||||
|
||||
def InstallDxvk(self):
|
||||
if not os.path.exists(f"{programPath}/dxvk"):
|
||||
if os.system(f"7z x \"{programPath}/dxvk.7z\" -o\"{programPath}\""):
|
||||
print("错误:无法解压资源")
|
||||
return 1
|
||||
os.remove(f"{programPath}/dxvk.7z")
|
||||
return os.system(f"env 'WINE={self.wine}' 'WINE64={self.wine}' 'WINEPREFIX={self.wineBottonPath}' bash '{programPath}/dxvk/auto.sh' install")
|
||||
|
||||
def Thank(self) -> int:
|
||||
for i in information["Thank"]:
|
||||
print(i)
|
||||
return 0
|
||||
|
||||
def InstallFont(self) -> int:
|
||||
import InstallFont
|
||||
return InstallFont.Download(self.wineBottonPath, int(self.command[1]))
|
||||
|
||||
def InstallMono(self) -> int:
|
||||
return os.system(f"ENTERNOTSHOW=0 '{self.programPath}/InstallMono.py' '{self.wineBottonPath}' '{self.wine}' mono")
|
||||
|
||||
def InstallGecko(self) -> int:
|
||||
return os.system(f"ENTERNOTSHOW=0 '{self.programPath}/InstallMono.py' '{self.wineBottonPath}' '{self.wine}' gecko")
|
||||
|
||||
def InstallVCPP(self) -> int:
|
||||
import InstallVisualCPlusPlus
|
||||
return InstallVisualCPlusPlus.Download(self.wineBottonPath, int(self.command[1]), self.wine)
|
||||
|
||||
def InstallNet(self) -> int:
|
||||
import InstallNetFramework
|
||||
return InstallNetFramework.Download(self.wineBottonPath, int(self.command[1]), self.wine)
|
||||
|
||||
def InstallMsxml(self) -> int:
|
||||
import InstallMsxml
|
||||
return InstallMsxml.Download(self.wineBottonPath, int(self.command[1]), self.wine)
|
||||
|
||||
def Info(self) -> int:
|
||||
QtWidgets.QMessageBox.information(None, self.command[1], self.command[2])
|
||||
return 0
|
||||
|
||||
def StopDll(self) -> int:
|
||||
os.system(f"WINEPREFIX='{self.wineBottonPath}' '{self.wine}' reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v {os.path.splitext(self.command[1])[0]} /f")
|
||||
|
||||
def CreateBotton(self):
|
||||
self.command = ["bat", "exit"]
|
||||
self.Bat()
|
||||
return 0
|
||||
|
||||
def InstallSparkCoreFont(self):
|
||||
if not os.system("which aptss"):
|
||||
# 最新版本星火应用商店处理
|
||||
os.system("pkexec bash aptss ssupdate")
|
||||
return os.system("pkexec bash aptss install ms-core-fonts")
|
||||
if not os.system("which ss-apt-fast"):
|
||||
# 稍久的版本
|
||||
os.system("pkexec ss-apt-fast update")
|
||||
return os.system("pkexec bash ss-apt-fast install ms-core-fonts")
|
||||
# 不知道什么版本的处理方法
|
||||
if not os.system("which apt-fast"):
|
||||
# 稍久的版本
|
||||
os.system("pkexec apt-fast update")
|
||||
return os.system("pkexec apt-fast install ms-core-fonts")
|
||||
os.system("pkexec apt update")
|
||||
return os.system("pkexec apt install ms-core-fonts")
|
||||
|
||||
def Echo(self) -> int:
|
||||
del self.command[0]
|
||||
print(" ".join(self.command))
|
||||
return 0
|
||||
|
||||
def Warning(self):
|
||||
QtWidgets.QMessageBox.warning(None, self.command[1], self.command[2])
|
||||
return 0
|
||||
|
||||
def Error(self):
|
||||
QtWidgets.QMessageBox.critical(None, self.command[1], self.command[2])
|
||||
return 0
|
||||
|
||||
def Bash(self):
|
||||
command = ""
|
||||
for i in self.command[1:]:
|
||||
command += f"'{i}' "
|
||||
return os.system(command)
|
||||
|
||||
def Bat(self) -> int:
|
||||
# Windows 直接转换为以 cmd 运行
|
||||
if platform.system() == "Windows":
|
||||
# 直接调用 Bash 函数
|
||||
return self.Bash()
|
||||
command = ["WINEPREFIX='($WINEPREFIX)'", "($WINE)"]
|
||||
for i in programEnv:
|
||||
for k in range(len(command)):
|
||||
command[k] = command[k].replace(i[0], i[1])
|
||||
for i in self.command[1:]:
|
||||
command.append(i)
|
||||
commandStr = command[0] + " "
|
||||
for i in command[1:]:
|
||||
commandStr += f"'{i}' "
|
||||
return os.system(commandStr)
|
||||
|
||||
def Version(self):
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
return 0
|
||||
|
||||
def Pause(self) -> int:
|
||||
input("按回车键继续……")
|
||||
return 0
|
||||
|
||||
def Download(self) -> int:
|
||||
command = f"aria2c -x 16 -s 16 -c '{self.command[1]}' "
|
||||
try:
|
||||
command += f"-d '{self.command[2]}' "
|
||||
command += f"-o '{self.command[3]}' "
|
||||
except:
|
||||
pass
|
||||
return os.system(command)
|
||||
|
||||
def Reg(self) -> int:
|
||||
self.command = ["bat", "regedit", "/s", self.command[1]]
|
||||
return self.Bat()
|
||||
|
||||
def EnabledOpenGl(self) -> int:
|
||||
self.command = ["reg", f"z:{programPath}/EnabledOpengl.reg"]
|
||||
return self.Reg()
|
||||
|
||||
def DisbledOpenGl(self) -> int:
|
||||
self.command = ["reg", f"z:{programPath}/DisabledOpengl.reg"]
|
||||
return self.Reg()
|
||||
|
||||
def Winver(self):
|
||||
self.command = ["bat", "winver"]
|
||||
return self.Bat()
|
||||
|
||||
def Winecfg(self):
|
||||
self.command = ["bat", "winecfg"]
|
||||
return self.Bat()
|
||||
|
||||
def ChangeVersion(self):
|
||||
# 判断是否为正确的版本
|
||||
if not os.path.exists(f"{programPath}/ChangeWineBottonVersion/{self.command[1]}.reg"):
|
||||
print("错误:您选择的版本错误,目前只支持以下版本")
|
||||
for i in os.listdir(f"{programPath}/ChangeWineBottonVersion"):
|
||||
print(i.replace(".reg", ""), end=" ")
|
||||
print()
|
||||
return 1
|
||||
self.command = ["reg", f"z:/{programPath}/ChangeWineBottonVersion/{self.command[1]}.reg"]
|
||||
return self.Reg()
|
||||
|
||||
def Cat(self):
|
||||
try:
|
||||
file = open(self.command[1], "r")
|
||||
print(file.read())
|
||||
file.close()
|
||||
except:
|
||||
print("文件读取错误")
|
||||
Debug()
|
||||
|
||||
def Taskmgr(self):
|
||||
self.command = ["bat", "taskmgr"]
|
||||
return self.Bat()
|
||||
|
||||
def Control(self):
|
||||
self.command = ["bat", "control"]
|
||||
return self.Bat()
|
||||
|
||||
def Killall(self):
|
||||
os.system(f"killall -9 {self.command[1]}")
|
||||
|
||||
def KillallWineServer(self):
|
||||
command = ["WINEPREFIX='($WINEPREFIX)'", "($WINE)", "-k"]
|
||||
for i in programEnv:
|
||||
for k in range(len(command)):
|
||||
command[k] = command[k].replace(i[0], i[1])
|
||||
if "box86" in command[1] or "exagear" in command[1] or "box64" in command[1]:
|
||||
print("不支持此 Wine")
|
||||
return 1
|
||||
if os.path.exists(command[1]):
|
||||
# 文件存在
|
||||
command[1] = f"{os.path.dirname(command[1])}/wineserver"
|
||||
else:
|
||||
# 读 which
|
||||
command[1] = f"{os.path.dirname(subprocess.getoutput(f'which {command[1]}').strip())}/wineserver"
|
||||
commandStr = command[0] + " "
|
||||
for i in command[1:]:
|
||||
commandStr += f"'{i}' "
|
||||
return os.system(commandStr)
|
||||
|
||||
def EnabledWineBottleCreateLink(self):
|
||||
self.command = ["bat", "reg", "delete", "HKEY_CURRENT_USER\Software\Wine\DllOverrides", "/v", "winemenubuilder.exe", "/f"]
|
||||
self.Bat()
|
||||
|
||||
def DisbledWineBottleCreateLink(self):
|
||||
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Wine\DllOverrides", "/v", "winemenubuilder.exe", "/f"]
|
||||
self.Bat()
|
||||
|
||||
def DisbledWineCrashDialog(self):
|
||||
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Wine\WineDbg", "/v", "ShowCrashDialog", "/t", "REG_DWORD", "/d", "00000000", "/f"]
|
||||
self.Bat()
|
||||
|
||||
def EnabledWineCrashDialog(self):
|
||||
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Wine\WineDbg", "/v", "ShowCrashDialog", "/t", "REG_DWORD", "/d", "00000001", "/f"]
|
||||
self.Bat()
|
||||
|
||||
def EnabledHttpProxy(self):
|
||||
proxyServerAddress = self.command[1]
|
||||
port = self.command[2]
|
||||
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "/v", "ProxyEnable", "/t", "REG_DWORD", "/d", "00000001", "/f"]
|
||||
self.Bat()
|
||||
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "/v", "ProxyServer", "/d", f"{proxyServerAddress}:{port}", "/f"]
|
||||
self.Bat()
|
||||
|
||||
def DisbledHttpProxy(self):
|
||||
self.command = ["bat", "reg", "add", "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "/v", "ProxyEnable", "/t", "REG_DWORD", "/d", "00000000", "/f"]
|
||||
self.Bat()
|
||||
|
||||
def InstallVB(self):
|
||||
import InstallVisualBasicRuntime
|
||||
return InstallVisualBasicRuntime.Download(self.wineBottonPath, int(self.command[1]), self.wine)
|
||||
|
||||
# 可以运行的命令的映射关系
|
||||
# 可以被使用的命令的映射
|
||||
commandList = {
|
||||
"installdll": InstallDll,
|
||||
"installfont": InstallFont,
|
||||
"installsparkcorefont": InstallSparkCoreFont,
|
||||
"installmono": InstallMono,
|
||||
"installgecko": InstallGecko,
|
||||
"installvcpp": InstallVCPP,
|
||||
"installnet": InstallNet,
|
||||
"installmsxml": InstallMsxml,
|
||||
"echo": Echo,
|
||||
"info": Info,
|
||||
"warning": Warning,
|
||||
"error": Error,
|
||||
"exit": Exit,
|
||||
"bash": Bash,
|
||||
"bat": Bat,
|
||||
"version": Version,
|
||||
"thank": Thank,
|
||||
"pause": Pause,
|
||||
"download": Download,
|
||||
"installdxvk": InstallDxvk,
|
||||
"createbotton": CreateBotton,
|
||||
"reg": Reg,
|
||||
"enabledopengl": EnabledOpenGl,
|
||||
"disbledopengl": DisbledOpenGl,
|
||||
"winecfg": Winecfg,
|
||||
"winver": Winver,
|
||||
"changeversion": ChangeVersion,
|
||||
"stopdll": StopDll,
|
||||
"cat": Cat,
|
||||
"taskmgr": Taskmgr,
|
||||
"control": Control,
|
||||
"killallwineserver": KillallWineServer,
|
||||
"enabledhttpproxy": EnabledHttpProxy,
|
||||
"disbledhttpproxy": DisbledHttpProxy,
|
||||
"enabledwinecrashdialog": EnabledWineCrashDialog,
|
||||
"disbledwinecrashdialog": DisbledWineCrashDialog,
|
||||
"disbledWinebottlecreatelink": DisbledWineBottleCreateLink,
|
||||
"enabledWinebottlecreatelink": EnabledWineBottleCreateLink,
|
||||
"installvb": InstallVB
|
||||
}
|
||||
|
||||
# 参数数列表
|
||||
commandInfo = {
|
||||
"killall": [1],
|
||||
"installdll": [1],
|
||||
"installfont": [1],
|
||||
"installsparkcorefont": [0],
|
||||
"installmono": [0],
|
||||
"installgecko": [0],
|
||||
"installvcpp": [1],
|
||||
"installnet": [1],
|
||||
"installmsxml": [1],
|
||||
"echo": [1],
|
||||
"info": [2],
|
||||
"warning": [2],
|
||||
"error": [2],
|
||||
"exit": [0],
|
||||
"bash": [1],
|
||||
"bat": [1],
|
||||
"version": [0],
|
||||
"thank": [0],
|
||||
"pause": [0],
|
||||
"download": [1],
|
||||
"installdxvk": [0],
|
||||
"createbotton": [0],
|
||||
"reg": [1],
|
||||
"enabledopengl": [0],
|
||||
"disbledopengl": [0],
|
||||
"winecfg": [0],
|
||||
"winver": [0],
|
||||
"changeversion": [1],
|
||||
"stopdll": [1],
|
||||
"cat": [1],
|
||||
"taskmgr": [0],
|
||||
"control": [0],
|
||||
"killallwineserver": [0],
|
||||
"enabledhttpproxy": [2],
|
||||
"disbledhttpproxy": [0],
|
||||
"enabledwinecrashdialog": [0],
|
||||
"disbledwinecrashdialog": [0],
|
||||
"disbledWinebottlecreatelink": [0],
|
||||
"enabledWinebottlecreatelink": [0],
|
||||
"installvb": [1]
|
||||
}
|
||||
windowsUnrun = [
|
||||
"createbotton",
|
||||
"installdll",
|
||||
"installmono",
|
||||
"installgecko",
|
||||
"winecfg",
|
||||
"stopdll",
|
||||
"changeversion",
|
||||
"enabledopengl",
|
||||
"disbledopengl",
|
||||
"installdxvk",
|
||||
"installfont",
|
||||
"installsparkcorefont"
|
||||
]
|
||||
# 解析
|
||||
def __init__(self, command: list, wineBottonPath: str, wine: str) -> int:
|
||||
self.wineBottonPath = wineBottonPath
|
||||
self.wine = wine
|
||||
for i in command:
|
||||
self.command = i
|
||||
# 变量解析
|
||||
if self.command[0][0] == "(" and "=" in self.command[0]:
|
||||
env = i[0][: i[0].index("=")]
|
||||
value = i[0][i[0].index("=") + 1:]
|
||||
# 判断是不是只读变量
|
||||
if env in readOnlyEnv:
|
||||
print(f"运行命令{' '.join(self.command)}出现错误")
|
||||
print(f"变量 {env} 只读,无法修改,忽略")
|
||||
continue
|
||||
change = False
|
||||
for k in range(len(programEnv)):
|
||||
# 修改变量
|
||||
if env == programEnv[k][0]:
|
||||
programEnv[k][1] = value
|
||||
change = True
|
||||
break
|
||||
if not change:
|
||||
# 添加变量
|
||||
programEnv.append([f"{env}", value])
|
||||
continue
|
||||
# 解析命令是否可以在 Windows 使用(只限在 Windows 系统时)
|
||||
if platform.system() == "Windows" and i[0] in self.windowsUnrun:
|
||||
print("此命令不支持在 Windows 上运行")
|
||||
programEnv[9][1] = "-5"
|
||||
continue
|
||||
# 获取程序帮助信息
|
||||
try:
|
||||
if i[1] == "--help":
|
||||
print(helpList[i[0]].replace("\\n", "\n"))
|
||||
continue
|
||||
except:
|
||||
pass
|
||||
# 正常命令解析
|
||||
if len(i) -1 < self.commandInfo[i[0]][0]:
|
||||
print("参数不足")
|
||||
programEnv[9][1] = "-3"
|
||||
continue
|
||||
# 替换环境变量
|
||||
for a in range(1, len(i)):
|
||||
for b in programEnv:
|
||||
if b[0] in i[a]:
|
||||
i[a] = i[a].replace(b[0], b[1])
|
||||
commandReturn = self.commandList[i[0]](self)
|
||||
if commandReturn:
|
||||
print(f"运行命令{' '.join(self.command)}出现错误")
|
||||
programEnv[9][1] = str(commandReturn)
|
||||
if self.close:
|
||||
break
|
||||
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
if os.getenv("WINE") != None:
|
||||
programEnv[1][1] = os.getenv("WINE")
|
||||
if os.getenv("WINEPREFIX") != None:
|
||||
programEnv[0][1] = os.getenv("WINEPREFIX")
|
||||
if __name__ == "__main__":
|
||||
optionAll = 0
|
||||
if "--debug" in sys.argv:
|
||||
optionAll += 1
|
||||
if "--system" in sys.argv:
|
||||
programEnv[2][1] = "1"
|
||||
optionAll += 1
|
||||
if len(sys.argv) - optionAll < 2:
|
||||
print("Wine 运行器自动配置文件解析器交互环境")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("--------------------------------------------------------------")
|
||||
while True:
|
||||
commandLine = input(">")
|
||||
if commandLine == "exit":
|
||||
break
|
||||
com = Command(commandLine)
|
||||
com.Run(com.GetCommandList(), programEnv[0][1], programEnv[1][1])
|
||||
sys.exit(int(programEnv[9][1]))
|
||||
# 读取文件
|
||||
try:
|
||||
file = open(sys.argv[1], "r")
|
||||
com = Command(file.read())
|
||||
file.close()
|
||||
except:
|
||||
print("错误:无法读取该文件,无法继续")
|
||||
sys.exit(1)
|
||||
print("Wine 运行器自动配置文件解析器")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("--------------------------------------------------------------")
|
||||
com.Run(com.GetCommandList(), programEnv[0][1], programEnv[1][1])
|
||||
sys.exit(int(programEnv[9][1]))
|
||||
BIN
DisabledOpengl.reg
Executable file
BIN
EnabledOpengl.reg
Executable file
329
Icon/360.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
81
Icon/BadStar.svg
Normal file
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="256"
|
||||
viewBox="0 0 67.733331 67.733331"
|
||||
version="1.1"
|
||||
id="svg3719"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="BadStar.svg">
|
||||
<defs
|
||||
id="defs3713" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="2.1794989"
|
||||
inkscape:cy="208.04937"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="836"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata3716">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-229.26667)">
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
id="path3737"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="151.91904"
|
||||
sodipodi:cy="166.98949"
|
||||
sodipodi:r1="158.97482"
|
||||
sodipodi:r2="79.487411"
|
||||
sodipodi:arg1="-0.32926921"
|
||||
sodipodi:arg2="0.29904932"
|
||||
inkscape:flatsided="false"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m 302.35356,115.58473 -74.475,74.82269 19.41613,103.76885 L 153.12004,246.46782 60.429914,297 76.701777,192.69187 -6.9307488e-6,120.15362 104.23121,103.39609 149.51703,8.0328112 197.6636,101.98423 Z"
|
||||
inkscape:transform-center-x="0.16628225"
|
||||
inkscape:transform-center-y="-3.3924633"
|
||||
style="fill:none;stroke-width:11.54627375;stroke:#000000;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
transform="matrix(0.22402028,0,0,0.234398,-5.3781204e-6,227.3838)" />
|
||||
<path
|
||||
style="fill:none;stroke:#db0000;stroke-width:4.17411947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 4.6835638,237.71432 60.365607,288.71648"
|
||||
id="path4588"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
267
Icon/Microsoft Office Word.svg
Normal file
|
After Width: | Height: | Size: 20 KiB |
342
Icon/QQ.svg
Normal file
|
After Width: | Height: | Size: 28 KiB |
76
Icon/Star.svg
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="256"
|
||||
viewBox="0 0 67.733331 67.733331"
|
||||
version="1.1"
|
||||
id="svg3719"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="Star.svg">
|
||||
<defs
|
||||
id="defs3713" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="2.1794989"
|
||||
inkscape:cy="208.04937"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="836"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata3716">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-229.26667)">
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
id="path3737"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="151.91904"
|
||||
sodipodi:cy="166.98949"
|
||||
sodipodi:r1="158.97482"
|
||||
sodipodi:r2="79.487411"
|
||||
sodipodi:arg1="-0.32926921"
|
||||
sodipodi:arg2="0.29904932"
|
||||
inkscape:flatsided="false"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m 302.35356,115.58473 -74.475,74.82269 19.41613,103.76885 L 153.12004,246.46782 60.429914,297 76.701777,192.69187 -6.9307488e-6,120.15362 104.23121,103.39609 149.51703,8.0328112 197.6636,101.98423 Z"
|
||||
inkscape:transform-center-x="0.15367302"
|
||||
inkscape:transform-center-y="-3.1244574"
|
||||
style="fill:#ffff00;stroke:#000000;stroke-width:11.54627419;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
transform="matrix(0.20703169,0,0,0.21588,2.5808914,230.58088)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
289
Icon/TIM.svg
Normal file
|
After Width: | Height: | Size: 17 KiB |
1275
Icon/UltraISO.svg
Normal file
|
After Width: | Height: | Size: 91 KiB |
76
Icon/UnStar.svg
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="256"
|
||||
viewBox="0 0 67.733331 67.733331"
|
||||
version="1.1"
|
||||
id="svg3719"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="UnStar.svg">
|
||||
<defs
|
||||
id="defs3713" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="-87.142857"
|
||||
inkscape:cy="560"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="836"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata3716">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-229.26667)">
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
id="path3737"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="151.91904"
|
||||
sodipodi:cy="166.98949"
|
||||
sodipodi:r1="158.97482"
|
||||
sodipodi:r2="79.487411"
|
||||
sodipodi:arg1="-0.32926921"
|
||||
sodipodi:arg2="0.29904932"
|
||||
inkscape:flatsided="false"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m 302.35356,115.58473 -74.475,74.82269 19.41613,103.76885 L 153.12004,246.46782 60.429914,297 76.701777,192.69187 -6.9307488e-6,120.15362 104.23121,103.39609 149.51703,8.0328112 197.6636,101.98423 Z"
|
||||
inkscape:transform-center-x="0.16628225"
|
||||
inkscape:transform-center-y="-3.3924633"
|
||||
style="fill:none;stroke-width:11.54627375;stroke:#000000;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
transform="matrix(0.22402028,0,0,0.234398,-5.3781204e-6,227.3838)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
328
Icon/Unknown.svg
Normal file
|
After Width: | Height: | Size: 20 KiB |
340
Icon/cmd.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
1012
Icon/compressor.svg
Normal file
|
After Width: | Height: | Size: 37 KiB |
326
Icon/internet explorer.svg
Normal file
|
After Width: | Height: | Size: 17 KiB |
723
Icon/wine.svg
Normal file
@@ -0,0 +1,723 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="266.66666"
|
||||
height="417.33334"
|
||||
viewBox="0 0 266.66666 417.33334"
|
||||
sodipodi:docname="wine.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="860"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.56549519"
|
||||
inkscape:cx="133.33333"
|
||||
inkscape:cy="208.66667"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<image
|
||||
width="266.66666"
|
||||
height="417.33334"
|
||||
preserveAspectRatio="none"
|
||||
style="image-rendering:optimizeQuality"
|
||||
xlink:href="data:image/png;base64,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
|
||||
R7+HQhhyUwAAAABJRU5ErkJggg==
|
||||
"
|
||||
id="image10"
|
||||
x="0"
|
||||
y="0" />
|
||||
<g
|
||||
id="g730">
|
||||
<path
|
||||
style="fill:#d0d2ce;stroke-width:1.33333337"
|
||||
d="m 92.666664,412.49675 c -22.954171,-3.58098 -30.778596,-14.60612 -19.048086,-26.84 4.967275,-5.18042 20.856717,-13.64206 31.618922,-16.8381 9.63398,-2.86098 12.87667,-5.17523 16.09741,-11.4884 C 127.0793,346.07031 126.09469,328.40417 118.36258,304 110.95405,280.6171 107.70677,276.39176 85.800497,261.63046 65.373321,247.86583 54.481644,233.94008 39.304342,202.18196 29.536814,181.74366 21.172665,158.19984 12.591519,126.98943 0.84914549,84.281329 0,79.540524 0,56.690593 V 36.02591 L 6.3333332,31.316358 C 22.14421,19.559175 46.031918,11.006282 73.513517,7.2627761 108.43885,2.505295 124.04993,2.5327026 133.40021,7.367916 c 4.39563,2.2730676 4.37557,2.2159326 13.79431,39.298751 17.07752,67.236453 21.34336,92.791603 21.36661,128.000003 0.0212,32.08644 -1.07559,37.03639 -14.46977,65.30535 -12.64748,26.693 -13.29463,28.86165 -12.33315,41.32976 1.84231,23.89062 9.33001,47.67791 18.1812,57.75884 9.46173,10.77632 9.75123,10.86308 38.72725,11.60605 24.36036,0.62463 26.42043,0.87688 32.66667,4 4.64306,2.32154 6.79736,4.25434 7.09721,6.36754 0.69527,4.89973 -3.79017,14.71264 -8.69261,19.01704 -13.38014,11.74792 -50.36891,24.30446 -88.17432,29.93248 -14.4709,2.15425 -42.095956,3.57402 -48.896946,2.51302 z M 136,374.72287 c 0,-2.32628 -11.7493,-8.26065 -15.47632,-7.81682 -5.10745,0.60822 -7.3272,4.65348 -3.93551,7.17205 C 119.51453,376.25114 136,376.79871 136,374.72287 Z M 51.679691,116.22618 c 1.31558,-0.83517 1.08943,-2.78171 -1.043252,-8.97958 -3.418626,-9.935012 -11.969773,-44.441492 -11.969773,-48.301678 0,-4.109388 -5.652855,-7.58132 -9.22818,-5.667864 -4.083669,2.185514 -4.533761,6.383486 -2.167481,20.215887 1.820376,10.641247 8.179527,37.158905 9.099825,37.946265 0.162709,0.13921 2.395836,1.52009 4.962502,3.06863 4.966883,2.99666 7.634769,3.43974 10.346359,1.71834 z m 30.034051,-6.33491 c 3.403829,-1.1598 8.575868,-4.42532 11.493418,-7.2567 5.628616,-5.46239 17.4595,-24.462697 17.4595,-28.039821 0,-1.170221 -1.41437,-6.282767 -3.14304,-11.361212 C 101.6695,46.035487 91.67234,29.134354 84.620635,24.513898 80.320951,21.696636 73.833983,21.800283 70.58772,24.738111 60.725792,33.663034 60.860693,71.194632 70.871416,103.66667 72.284401,108.25 73.909487,112 74.482719,112 c 0.573234,0 3.827194,-0.94893 7.231023,-2.10873 z"
|
||||
id="path738"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#b2a3a3;stroke-width:1.33333337"
|
||||
d="m 88.751799,406.58487 c -7.617476,-1.27485 -13.234381,-4.94736 -13.844536,-9.05197 -0.521841,-3.51051 -0.100306,-3.52907 6.275638,-0.27631 16.170021,8.24934 59.648479,6.0778 102.817099,-5.13518 8.43333,-2.19055 16.83333,-4.36606 18.66666,-4.83444 8.37208,-2.13895 -1.67196,2.3749 -14.66666,6.59129 -33.52208,10.87688 -76.95517,16.43756 -99.248201,12.70661 z M 227.44393,362.84562 c -0.57436,-0.92933 -0.68422,-2.04977 -0.24412,-2.48988 1.19329,-1.19328 2.49436,0.56173 1.84985,2.49527 -0.45163,1.35489 -0.76569,1.35384 -1.60573,-0.005 z m -99.06232,-7.19571 c 3.87166,-10.32902 2.09665,-30.72794 -4.55052,-52.29576 C 116.29709,278.90887 112.23243,273.6048 88.454803,257.1909 67.923297,243.01782 55.322716,226.39615 41.561698,195.33334 29.283254,167.61714 22.38137,145.71014 8.7259167,91.110524 0.34505092,57.600688 -1.018888,49.539947 0.86233554,44.637557 2.2307998,41.071397 4.7174999,48.334351 12.047914,77.307504 c 3.621596,14.314207 6.938303,27.283846 7.370459,28.821426 0.562345,2.00078 1.609649,2.63928 3.683682,2.24579 1.809496,-0.3433 5.972018,1.43921 11.082532,4.74586 7.271452,4.70483 8.446899,6.0906 10.535731,12.42087 4.483581,13.58765 15.098471,34.29834 15.237277,29.72943 0.02332,-0.76768 -2.357119,-8.53816 -5.28987,-17.26772 -3.603481,-10.72606 -4.893993,-16.31022 -3.980445,-17.22377 0.743504,-0.74351 6.05498,-1.75601 11.803278,-2.25 19.053813,-1.63743 28.851909,-8.53477 44.315922,-31.196055 11.60161,-17.001231 11.59935,-16.998534 17.73468,-21.162082 4.00052,-2.714829 6.78859,-3.504585 12.37217,-3.504585 10.9872,0 12.15413,1.776149 18.83408,28.666667 7.65581,30.818885 10.90553,54.101265 10.91311,78.186045 0.009,30.90418 -5.86434,54.13413 -18.59328,73.53018 -6.5956,10.0502 -18.59179,22.28378 -21.85138,22.28378 -1.0441,0 -6.01981,-1.5403 -11.05712,-3.42287 L 106,258.4876 l 6.85795,7.08954 c 7.83141,8.09585 9.42074,10.96145 14.28502,25.7562 5.07668,15.44074 8.79499,33.45173 8.82817,42.76248 0.0317,8.91217 -2.96843,19.4328 -6.31798,22.15492 -1.85149,1.50468 -2.02928,1.42067 -1.27155,-0.60083 z"
|
||||
id="path736"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#9b1426;stroke-width:1.33333337"
|
||||
d="M 113.08101,258.1579 C 97.91614,251.53683 90.951246,247.10835 81.533661,238.09918 61.040348,218.4946 43.052986,181.51824 28.722614,129.53628 c -2.698457,-9.78838 -4.593223,-18.11011 -4.210591,-18.49275 0.985491,-0.98549 8.984212,3.89018 10.318669,6.28981 0.611722,1.1 3.283159,8 5.936528,15.33333 9.692557,26.78812 31.088074,65.49743 40.135469,72.61411 4.899785,3.85417 7.810281,3.0265 7.586061,-2.15728 -0.09785,-2.2623 -4.466007,-13.49614 -9.707008,-24.9641 -11.297212,-24.7197 -22.991449,-54.07473 -22.110033,-55.50089 0.34451,-0.55743 4.084311,-1.42856 8.310669,-1.93584 17.087851,-2.05102 28.38197,-10.47289 42.605302,-31.770191 14.71566,-22.034469 21.57421,-26.896571 33.43538,-23.702691 5.55786,1.496573 5.60016,1.555742 8.90946,12.460297 7.82894,25.797325 13.52126,56.611385 14.86965,80.493385 1.51624,26.85516 -3.34305,55.05813 -12.66973,73.53417 -7.33574,14.532 -21.70942,30.96222 -27.04348,30.91275 -0.9656,-0.009 -6.36917,-2.03057 -12.00795,-4.49249 z"
|
||||
id="path734"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#7a071a;stroke-width:1.33333337"
|
||||
d="M 114.66666,256.932 C 98.161967,249.82235 93.686663,246.99467 83.252455,237.08319 67.880629,222.48146 56.883067,204.1257 44.439663,172.30172 38.120814,156.14127 26.303457,116.32766 27.145933,114.03776 c 0.576986,-1.56829 0.97237,-0.67005 9.667239,21.96224 12.726929,33.12754 32.614284,68.15434 48.732922,85.83134 6.601568,7.23982 7.657218,7.88096 13.97599,8.4881 5.917146,0.56856 7.247636,0.2331 9.907356,-2.498 1.68977,-1.73513 6.67124,-4.65477 11.06993,-6.4881 6.60079,-2.75115 8.61864,-4.39286 11.55327,-9.39962 6.72084,-11.46641 8.59316,-19.28594 8.60402,-35.93372 0.012,-18.71774 -1.03176,-24.47392 -5.64641,-31.13286 -10.10683,-14.58417 -25.83019,-22.78883 -37.669524,-19.65648 -8.154314,2.1574 -15.275519,7.07391 -19.506525,13.4674 C 75.897155,141.60512 73.799577,144 73.172912,144 c -1.158986,0 -10.506247,-17.61128 -10.506247,-19.79494 0,-0.65716 2.895971,-1.57901 6.435492,-2.04854 8.591852,-1.13975 18.450909,-6.22209 24.930943,-12.85188 2.915127,-2.9825 10.10023,-12.426382 15.9669,-20.986408 5.86666,-8.560025 12.70539,-16.933456 15.19717,-18.607623 5.32142,-3.575328 16.11668,-4.20628 19.20073,-1.122228 2.36203,2.362031 9.584,28.059555 13.72058,48.821179 11.77353,59.09167 3.72384,107.28883 -22.57906,135.19114 -4.52764,4.80296 -8.82622,8.71156 -9.55241,8.6858 -0.72619,-0.0258 -5.82035,-1.9853 -11.32035,-4.3545 z"
|
||||
id="path732"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 57 KiB |
338
Icon/微信.svg
Normal file
|
After Width: | Height: | Size: 20 KiB |
267
Icon/迅雷.svg
Normal file
|
After Width: | Height: | Size: 17 KiB |
133
InstallDll.py
Executable file
@@ -0,0 +1,133 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import traceback
|
||||
import req as requests
|
||||
def exit():
|
||||
if __name__ == "__main__":
|
||||
input("按回车键退出")
|
||||
sys.exit()
|
||||
sys.exit()
|
||||
# 获取云列表
|
||||
url = "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/dlls"
|
||||
print("获取列表中……", end="")
|
||||
try:
|
||||
lists = json.loads(requests.get(f"{url}/list.json").text)
|
||||
except:
|
||||
print("\r列表获取失败!")
|
||||
exit()
|
||||
print("\r列表获取成功!")
|
||||
|
||||
def GetUrlByNumber(dllID: int) -> str:
|
||||
dllName = lists[dllID][0]
|
||||
return f"{url}/{lists[int(dllID)][1]}/{lists[int(dllID)][2]}/{lists[int(dllID)][0]}"
|
||||
|
||||
def GetNameByNumber(dllID: int) -> str:
|
||||
return lists[dllID][0]
|
||||
|
||||
def GetUrlByName(dllName: str):
|
||||
for i in range(0, len(lists)):
|
||||
if dllName == lists[i][0]:
|
||||
return f"{url}/{lists[i][1]}/{lists[i][2]}/{lists[i][0]}"
|
||||
|
||||
def Download(wineBotton, dllName, urlPart, wine: str) -> bool:
|
||||
try:
|
||||
os.remove(f"{wineBotton}/drive_c/windows/system32/{dllName}")
|
||||
except:
|
||||
pass
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{wineBotton}/drive_c/windows/system32' -o '{dllName}' '{urlPart}'")
|
||||
#print(f"WINEPREFIX='{wineBotton}' {wine} reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v {os.path.splitext(dllName)[0]} /d native /f")
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wine} reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v {os.path.splitext(dllName)[0]} /d native /f")
|
||||
return 0
|
||||
|
||||
def exit():
|
||||
input("按回车键退出")
|
||||
sys.exit()
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装指定应用")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 1 or sys.argv[1] == "":
|
||||
print("您未指定需要安装的容器,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一")
|
||||
print("参数一为需要安装的容器")
|
||||
sys.exit()
|
||||
print('''
|
||||
mmmm ""# ""#
|
||||
# "m # #
|
||||
# # # #
|
||||
# # # #
|
||||
#mmm" "mm "mm
|
||||
|
||||
|
||||
''')
|
||||
wineBotton = sys.argv[1]
|
||||
wine = sys.argv[2]
|
||||
if not os.path.exists(f"{wineBotton}/drive_c/windows/Fonts"):
|
||||
input("您选择的不是 Wine 容器")
|
||||
exit()
|
||||
# 判断是不是 wine 容器
|
||||
if not os.path.exists(f"{wineBotton}/drive_c/windows/system32"):
|
||||
print("这不是 Wine 容器")
|
||||
exit()
|
||||
# 获取用户希望安装的DLL
|
||||
|
||||
while True:
|
||||
print()
|
||||
print("您可以输入DLL名称进行搜索,输入前面编号或DLL全称即可安装(推荐是编号,可以选系统版本)")
|
||||
print("输入exit即可退出")
|
||||
urlPart = ""
|
||||
while True:
|
||||
dllName = input(">")
|
||||
if dllName.lower() == "exit":
|
||||
exit()
|
||||
if dllName in lists:
|
||||
url = dllName
|
||||
break
|
||||
try:
|
||||
dllName = lists[int(dllName)][0]
|
||||
urlPart = GetUrlByNumber(int(dllName))
|
||||
f"{url}/{lists[int(dllName)][1]}/{lists[int(dllName)][2]}/{lists[int(dllName)][0]}"
|
||||
break
|
||||
except:
|
||||
pass
|
||||
right = False
|
||||
for i in range(0, len(lists)):
|
||||
if dllName == lists[i][0]:
|
||||
right = True
|
||||
urlPart = f"{url}/{lists[i][1]}/{lists[i][2]}/{lists[i][0]}"
|
||||
break
|
||||
if dllName in lists[i][0]:
|
||||
print(i, lists[i][0], f"平台:{lists[i][1]}", f"架构:{lists[i][2]}")
|
||||
if right:
|
||||
break
|
||||
if os.path.exists(f"{wineBotton}/drive_c/windows/system32/{dllName}"):
|
||||
if input(f"{dllName} 已存在,是否覆盖?(一般不推荐)[Y/N]").upper() == "N":
|
||||
continue
|
||||
try:
|
||||
os.remove(f"{wineBotton}/drive_c/windows/system32/{dllName}")
|
||||
except:
|
||||
print("文件移除失败!")
|
||||
traceback.print_exc()
|
||||
continue
|
||||
# 下载 DLL
|
||||
print(f"正在下载{dllName},请稍后")
|
||||
print(f"下载链接:{urlPart}")
|
||||
if Download(wineBotton, dllName, urlPart, wine):
|
||||
print("下载失败!请重试")
|
||||
93
InstallFont.py
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import shutil
|
||||
import req as requests
|
||||
homePath = os.path.expanduser('~')
|
||||
try:
|
||||
fontList = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/fonts/list.json").text)
|
||||
except:
|
||||
fontList = [
|
||||
["fake_simsun.ttc", "https://gitlink.org.cn/api/attachments/392168", "simsun.ttc", "fake_simsun.ttc(会替换容器内的宋体,且与 deepin 有问题)"],
|
||||
["simsun.ttc", "https://gitlink.org.cn/api/attachments/392181", "simsun.ttc", "simsun.ttc"],
|
||||
["simsunb.ttf", "https://gitlink.org.cn/api/attachments/392180", "simsunb.ttf", "simsunb.ttf"],
|
||||
["msyh.ttc", "https://gitlink.org.cn/api/attachments/392182", "msyh.ttc", "msyh.ttc"],
|
||||
["msyhl.ttc", "https://gitlink.org.cn/api/attachments/392184", "msyhl.ttc", "msyhl.ttc"],
|
||||
["msyhbd.ttc", "https://gitlink.org.cn/api/attachments/392183", "msyhbd.ttc", "msyhbd.ttc"]
|
||||
]
|
||||
def Download(wineBotton: str, id: int) -> int:
|
||||
return os.system(f"aria2c -x 16 -s 16 -d '{wineBotton}/drive_c/windows/Fonts/{fontList[id][2]}' -o '{fontList[id][0]}' \"{fontList[id][1]}\"")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装指定应用")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 1 or sys.argv[1] == "":
|
||||
print("您未指定需要安装的容器,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一")
|
||||
print("参数一为需要安装的容器")
|
||||
sys.exit()
|
||||
while True:
|
||||
os.system("clear")
|
||||
print('''
|
||||
mmmmmm m
|
||||
# mmm m mm mm#mm mmm
|
||||
#mmmmm #" "# #" # # # "
|
||||
# # # # # # """m
|
||||
# "#m#" # # "mm "mmm"
|
||||
|
||||
|
||||
''')
|
||||
if not os.path.exists(f"{sys.argv[1]}/drive_c/windows/Fonts"):
|
||||
input("您选择的不是 Wine 容器,无法继续,按回车键退出")
|
||||
exit()
|
||||
|
||||
for i in range(0, len(fontList)):
|
||||
print(f"{i} {fontList[i][3]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择的 字体(输入“exit”退出):").lower()
|
||||
if choose == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(fontList):
|
||||
break
|
||||
if choose == "exit":
|
||||
exit()
|
||||
print(f"您选择了字体 {fontList[choose][0]}")
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}"):
|
||||
print("已经缓存,使用本地版本")
|
||||
if os.path.exists(f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}"):
|
||||
print("字体已存在,覆盖")
|
||||
shutil.copy(f"{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}", f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}")
|
||||
input("安装结束,按回车键继续")
|
||||
continue
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}'")
|
||||
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/font'")
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/font' -o '{fontList[choose][0]}' \"{fontList[choose][1]}\"")
|
||||
if os.path.exists(f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}"):
|
||||
print("字体已存在,覆盖")
|
||||
try:
|
||||
shutil.copy(f"{homePath}/.cache/deepin-wine-runner/font/{fontList[choose][0]}", f"{sys.argv[1]}/drive_c/windows/Fonts/{fontList[choose][2]}")
|
||||
except:
|
||||
print("拷贝失败!")
|
||||
input("安装结束,按回车键继续")
|
||||
126
InstallMono.py
Executable file
@@ -0,0 +1,126 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
import pyquery
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 mono、gecko")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 3 or sys.argv[1] == "" or sys.argv[2] == "" or sys.argv[3] == "":
|
||||
print("您未指定需要安装 gecko 或者 mono 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三 参数四(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为安装gecko或mono(gecko/mono),参数四为是否缓存(可略),四个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
if sys.argv[3] == "mono":
|
||||
print('''
|
||||
m m
|
||||
## ## mmm m mm mmm
|
||||
# ## # #" "# #" # #" "#
|
||||
# "" # # # # # # #
|
||||
# # "#m#" # # "#m#"
|
||||
|
||||
|
||||
''')
|
||||
else:
|
||||
print('''
|
||||
mmm #
|
||||
m" " mmm mmm # m mmm
|
||||
# mm #" # #" " # m" #" "#
|
||||
# # #"""" # #"# # #
|
||||
"mmm" "#mm" "#mm" # "m "#m#"
|
||||
|
||||
|
||||
''')
|
||||
homePath = os.path.expanduser('~')
|
||||
try:
|
||||
exitInputShow = int(os.getenv("ENTERNOTSHOW"))
|
||||
except:
|
||||
exitInputShow = True
|
||||
try:
|
||||
# 获取最新版本的版本号
|
||||
programVersionList = pyquery.PyQuery(url=f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/")
|
||||
except:
|
||||
print("无法连接下载服务器,将使用本地缓存")
|
||||
if not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi") or not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt"):
|
||||
print("无本地缓存数据,无法进行、结束")
|
||||
if exitInputShow:
|
||||
input("按回车键退出")
|
||||
exit()
|
||||
file = open(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt", "r")
|
||||
version = file.read().replace("\n", "")
|
||||
print("安装版本:", version)
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i \"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi\"")
|
||||
if exitInputShow:
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
programVersion = programVersionList("a:last-child").attr.href
|
||||
# 获取最新版本安装包的URL
|
||||
programUrl = pyquery.PyQuery(url=f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/{programVersion}")
|
||||
programDownloadUrl = ""
|
||||
programFileName = ""
|
||||
for i in programUrl("a").items():
|
||||
if i.attr.href[-4:] == ".msi":
|
||||
programDownloadUrl = f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/{programVersion}{i.attr.href}"
|
||||
programFileName = i.attr.href
|
||||
break
|
||||
|
||||
if programDownloadUrl == "":
|
||||
print("无法获取链接,无法继续")
|
||||
sys.exit()
|
||||
print(f"当前选择的程序获取路径:{programDownloadUrl}")
|
||||
if not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}"):
|
||||
os.makedirs(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}")
|
||||
if len(sys.argv) <= 4:
|
||||
choice = True
|
||||
else:
|
||||
choice = (sys.argv[3] == "1")
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi") and os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt") and choice:
|
||||
print("版本号校验")
|
||||
file = open(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt", "r")
|
||||
version = file.read().replace("\n", "")
|
||||
if version == programVersion.replace("\n", ""):
|
||||
print("缓存版本:", version.replace("/", ""))
|
||||
print("已经缓存,使用本地版本")
|
||||
file.close()
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i \"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi\"")
|
||||
if exitInputShow:
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
|
||||
file = open(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt", "w+")
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf \"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi\"")
|
||||
os.system("mkdir -p /tmp/winegeckomonoinstall")
|
||||
os.system(f"aria2c -x 16 -s 16 -d \"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}\" -o install.msi \"{programDownloadUrl}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i \"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi\"")
|
||||
try:
|
||||
if sys.argv[4] == "1":
|
||||
print("写入缓存")
|
||||
file.write(programVersion)
|
||||
file.close()
|
||||
else:
|
||||
print("删除临时文件")
|
||||
os.system(f"rm -rf \"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}\"")
|
||||
except:
|
||||
print("写入缓存")
|
||||
file.write(programVersion)
|
||||
file.close()
|
||||
if exitInputShow:
|
||||
input("安装结束,按回车键退出")
|
||||
89
InstallMsxml.py
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import req as requests
|
||||
try:
|
||||
msxmlList = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/msxml/list.json").text)
|
||||
except:
|
||||
msxmlList = [
|
||||
["MSXML 4.0 SP2", "https://www.gitlink.org.cn/api/attachments/390679?gfdgd_xi", "msxml6.0.msi"],
|
||||
["MSXML 4.0 SP3", "https://www.gitlink.org.cn/api/attachments/390678?gfdgd_xi", "msxml4.0SP3.msi"],
|
||||
["MSXML 6.0", "https://www.gitlink.org.cn/api/attachments/390681?gfdgd_xi", "msxml6_x64.msi"]
|
||||
]
|
||||
|
||||
def Download(wineBotton: str, id: int, wine: str):
|
||||
os.system(f"aria2c -x 16 -s 16 -d \"/tmp/deepin-wine-runner-msxml/\" -o \"{msxmlList[id][2]}\" \"{msxmlList[id][1]}\"")
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wine} msiexec /i \"/tmp/deepin-wine-runner-msxml/{msxmlList[id][2]}\"")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 MSXML")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装 MSXML 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为是否缓存(可略),三个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
print('''
|
||||
m m mmmm m m m m m
|
||||
## ## #" " # # ## ## #
|
||||
# ## # "#mmm ## # ## # #
|
||||
# "" # "# m""m # "" # #
|
||||
# # "mmm#" m" "m # # #mmmmm
|
||||
|
||||
|
||||
''')
|
||||
|
||||
print("请选择以下的 MSXML 进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(msxmlList)):
|
||||
print(f"{i}、{msxmlList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择要安装的 MSXML(输入“exit”退出):")
|
||||
if choose.lower() == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(msxmlList):
|
||||
break
|
||||
try:
|
||||
if choose.lower() == "exit":
|
||||
exit()
|
||||
except:
|
||||
pass
|
||||
print(f"您选择了 {msxmlList[choose][0]}")
|
||||
if len(sys.argv) <= 3:
|
||||
choice = True
|
||||
else:
|
||||
choice = (sys.argv[3] == "1")
|
||||
if os.path.exists(f"{homePath}/.config/deepin-wine-runner/MSXML/{msxmlList[choose][2]}") and choice:
|
||||
print("已经缓存,使用本地版本")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i \"{homePath}/.config/deepin-wine-runner/MSXML/{msxmlList[choose][2]}\"")
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
print("开始下载")
|
||||
os.system(f"rm -rfv \"{homePath}/.config/deepin-wine-runner/MSXML/{msxmlList[choose][2]}\"")
|
||||
os.system(f"mkdir -p \"{homePath}/.config/deepin-wine-runner/MSXML/\"")
|
||||
os.system(f"aria2c -x 16 -s 16 -d \"{homePath}/.config/deepin-wine-runner/MSXML\" -o \"{msxmlList[choose][2]}\" \"{msxmlList[choose][1]}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i \"{homePath}/.config/deepin-wine-runner/MSXML/{msxmlList[choose][2]}\"")
|
||||
input("安装结束,按回车键退出")
|
||||
112
InstallNetFramework.py
Executable file
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import req as requests
|
||||
try:
|
||||
netList = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/net/list.json").text)
|
||||
except:
|
||||
netList = [
|
||||
["Microsoft® .NET Framework 1.1 版可转散发套件", "https://download.microsoft.com/download/8/2/7/827bb1ef-f5e1-4464-9788-40ef682930fd/dotnetfx.exe"],
|
||||
["Microsoft .NET Framework 2.0 Service Pack 1 (x86)", "https://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe"],
|
||||
["3.5 SP1 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/b635098a-2d1d-4142-bef6-d237545123cb/2651b87007440a15209cac29634a4e45/dotnetfx35.exe"],
|
||||
["4.0 Offline Installer", "https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe"],
|
||||
["4.5 Web Installer", "https://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe"],
|
||||
["4.5.1 Offline Installer", "https://download.microsoft.com/download/1/6/7/167F0D79-9317-48AE-AEDB-17120579F8E2/NDP451-KB2858728-x86-x64-AllOS-ENU.exe"],
|
||||
["4.5.2 Offline Installer", "https://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe"],
|
||||
["4.6 Offline Installer", "https://download.microsoft.com/download/6/F/9/6F9673B1-87D1-46C4-BF04-95F24C3EB9DA/enu_netfx/NDP46-KB3045557-x86-x64-AllOS-ENU_exe/NDP46-KB3045557-x86-x64-AllOS-ENU.exe"],
|
||||
["4.6.1 Offline Installer", "https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe"],
|
||||
["4.6.2 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/8e396c75-4d0d-41d3-aea8-848babc2736a/80b431456d8866ebe053eb8b81a168b3/ndp462-kb3151800-x86-x64-allos-enu.exe"],
|
||||
["4.7 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/2dfcc711-bb60-421a-a17b-76c63f8d1907/e5c0231bd5d51fffe65f8ed7516de46a/ndp47-kb3186497-x86-x64-allos-enu.exe"],
|
||||
["4.7.1 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/4312fa21-59b0-4451-9482-a1376f7f3ba4/9947fce13c11105b48cba170494e787f/ndp471-kb4033342-x86-x64-allos-enu.exe"],
|
||||
["4.7.2 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/1f5af042-d0e4-4002-9c59-9ba66bcf15f6/089f837de42708daacaae7c04b7494db/ndp472-kb4054530-x86-x64-allos-enu.exe"],
|
||||
["4.8 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/2d6bb6b2-226a-4baa-bdec-798822606ff1/8494001c276a4b96804cde7829c04d7f/ndp48-x86-x64-allos-enu.exe"],
|
||||
["4.8.1 Offline Installer", "https://download.visualstudio.microsoft.com/download/pr/6f083c7e-bd40-44d4-9e3f-ffba71ec8b09/3951fd5af6098f2c7e8ff5c331a0679c/ndp481-x86-x64-allos-enu.exe"],
|
||||
[".NET 5.0 Desktop Runtime (v5.0.17) - Windows x86 Installer", "https://download.visualstudio.microsoft.com/download/pr/b6fe5f2a-95f4-46f1-9824-f5994f10bc69/db5ec9b47ec877b5276f83a185fdb6a0/windowsdesktop-runtime-5.0.17-win-x86.exe"],
|
||||
[".NET 5.0 Desktop Runtime (v5.0.17) - Windows x64 Installer", "https://download.visualstudio.microsoft.com/download/pr/3aa4e942-42cd-4bf5-afe7-fc23bd9c69c5/64da54c8864e473c19a7d3de15790418/windowsdesktop-runtime-5.0.17-win-x64.exe"],
|
||||
[".NET 5.0 Desktop Runtime (v5.0.17) - Windows Arm64 Installer", "https://download.visualstudio.microsoft.com/download/pr/be25784a-4231-4c53-ba6e-869166ef523f/9602c6c0d358d31dc710fd0573fc39e0/windowsdesktop-runtime-5.0.17-win-arm64.exe"],
|
||||
[".NET Core 3.0 Desktop Runtime (v3.0.3) - Windows x86 Installer", "https://download.visualstudio.microsoft.com/download/pr/e312618d-85c4-4cad-b660-569b5522eca9/e951e76ebe011b5d3ea1289ef68e8281/windowsdesktop-runtime-3.0.3-win-x86.exe"],
|
||||
[".NET Core 3.0 Desktop Runtime (v3.0.3) - Windows x64 Installer", "https://download.visualstudio.microsoft.com/download/pr/c525a2bb-6e98-4e6e-849e-45241d0db71c/d21612f02b9cae52fa50eb54de905986/windowsdesktop-runtime-3.0.3-win-x64.exe"],
|
||||
[".NET Core 3.1 Desktop Runtime (v3.1.28) - Windows x86 Installer", "https://download.visualstudio.microsoft.com/download/pr/d2ec7ca2-017d-4d06-a6da-3707daa3c3b1/1f2e108653e3d8316e1657105ef24b93/windowsdesktop-runtime-3.1.28-win-x86.exe"],
|
||||
[".NET Core 3.1 Desktop Runtime (v3.1.28) - Windows x64 Installer", "https://download.visualstudio.microsoft.com/download/pr/5c74593e-f156-44c8-9957-f11996de72bc/d3e0e26c64a5a2d860c5c0deca975d78/windowsdesktop-runtime-3.1.28-win-x64.exe"],
|
||||
[".NET 6.0 Desktop Runtime (v6.0.8) - Windows x86 Installer", "https://download.visualstudio.microsoft.com/download/pr/61747fc6-7236-4d5e-85e5-a5df5f480f3a/02203594bf1331f0875aa6491419ffa1/windowsdesktop-runtime-6.0.8-win-x86.exe"],
|
||||
[".NET 6.0 Desktop Runtime (v6.0.8) - Windows x64 Installer", "https://download.visualstudio.microsoft.com/download/pr/b4a17a47-2fe8-498d-b817-30ad2e23f413/00020402af25ba40990c6cc3db5cb270/windowsdesktop-runtime-6.0.8-win-x64.exe"],
|
||||
[".NET 6.0 Desktop Runtime (v6.0.8) - Windows Arm64 Installer", "https://download.visualstudio.microsoft.com/download/pr/17737b16-dbb0-45f8-9684-16cce46f0835/14475e8380422840249513d58c70d8da/windowsdesktop-runtime-6.0.8-win-arm64.exe"]
|
||||
]
|
||||
|
||||
def Download(wineBotton: str, id: int, wine: str):
|
||||
programName = os.path.split(netList[id][1])[1]
|
||||
os.system(f"aria2c -x 16 -s 16 -d \"/tmp/deepin-wine-runner-net\" -o \"{programName}\" \"{netList[id][1]}\"")
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wine} '/tmp/deepin-wine-runner-net/{programName}'")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 .net framework")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装 .net framework 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为是否缓存(可略),三个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
print('''
|
||||
mm m mmmmmmmmmmmmm
|
||||
#"m # # #
|
||||
# #m # #mmmmm #
|
||||
# # # # #
|
||||
# # ## #mmmmm #
|
||||
|
||||
|
||||
''')
|
||||
print("请选择以下的 .net framework 进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(netList)):
|
||||
print(f"{i} .net framework {netList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择的 .net framework 版本(输入“exit”退出):").lower()
|
||||
if choose == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(netList):
|
||||
break
|
||||
|
||||
if choose == "exit":
|
||||
exit()
|
||||
if len(sys.argv) <= 3:
|
||||
choice = True
|
||||
else:
|
||||
choice = (sys.argv[3] == "1")
|
||||
print(f"您选择了 .net framework {netList[choose][0]}")
|
||||
print(f"如果是 Offline Installer 版本,提示需要连接互联网,其实是不需要的,断网也可以安装")
|
||||
print(f"如果 Offline Installer 版本连接网络时安装失败,提示无法连接服务器或连接超时,可以尝试下载完安装包加载过程中断网以便断网安装")
|
||||
print(f"一般建议 Offline Installer 版本在下载完 exe 安装程序后在加载过程中断网以便提高安装速度")
|
||||
programName = os.path.split(netList[choose][1])[1]
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/.netframework/{programName}") and choice:
|
||||
print("已经缓存,使用本地版本")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/.netframework/{programName}'")
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/.netframework/{programName}'")
|
||||
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/.netframework'")
|
||||
os.system(f"aria2c -x 16 -s 16 -d \"{homePath}/.cache/deepin-wine-runner/.netframework\" -o \"{programName}\" \"{netList[choose][1]}\"")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/.netframework/{programName}'")
|
||||
input("安装结束,按回车键退出")
|
||||
91
InstallNewWineHQ.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 bash 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.2.0
|
||||
# 更新时间:2022年09月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
echo
|
||||
echo 'm m " m m mmmm '
|
||||
echo '# # # mmm m mm mmm # # m" "m'
|
||||
echo '" #"# # # #" # #" # #mmmm# # #'
|
||||
echo ' ## ##" # # # #"""" # # # #'
|
||||
echo ' # # mm#mm # # "#mm" # # #mm#"'
|
||||
echo ' # '
|
||||
|
||||
|
||||
ubuntuSource=(
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ jammy main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/impish/winehq-impish.sources"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ focal main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ bionic main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
)
|
||||
debianSource=(
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ buster main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ bullseye main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources"
|
||||
)
|
||||
# 选择发行版
|
||||
echo "WineHQ 官网:https://wiki.winehq.org/"
|
||||
echo "国内镜像源:https://mirrors-i.tuna.tsinghua.edu.cn/help/wine-builds/"
|
||||
echo
|
||||
echo "选择发行版:"
|
||||
echo "0. Debian"
|
||||
echo "1. Ubuntu"
|
||||
read system
|
||||
# 选择版本
|
||||
echo "选择系统版本"
|
||||
if [ $system = "0" ]; then
|
||||
echo "0. Debian 10 (Buster)"
|
||||
echo "1. Debian 11 (Bullseye)"
|
||||
echo "2. Debian Testing (Bookworm)"
|
||||
fi
|
||||
if [ $system = "1" ]; then
|
||||
echo "0. Ubuntu 22.04"
|
||||
echo "1. Ubuntu 21.10"
|
||||
echo "2. Ubuntu 20.04,Linux Mint 20.x"
|
||||
echo "3. Ubuntu 18.04,Linux Mint 19.x"
|
||||
fi
|
||||
read systemVersion
|
||||
# 选择 Wine
|
||||
echo "选择 Wine:"
|
||||
echo "0. 稳定分支"
|
||||
echo "1. 开发分支"
|
||||
echo "2. Staging 分支"
|
||||
read programVersion
|
||||
# 初步配置
|
||||
sudo apt-key del "D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F"
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo wget -nc -O /usr/share/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||
# 检测 apt-fast 或 ss-apt-fast 是否存在
|
||||
apt="apt"
|
||||
which apt-fast > /dev/null
|
||||
if [ $? == 0 ]; then
|
||||
apt="apt-fast"
|
||||
fi
|
||||
which ss-apt-fast > /dev/null
|
||||
if [ $? == 0 ]; then
|
||||
apt="ss-apt-fast"
|
||||
fi
|
||||
which aptss > /dev/null
|
||||
if [ $? == 0 ]; then
|
||||
apt="aptss"
|
||||
fi
|
||||
# 添加源
|
||||
if [ $system = "0" ]; then
|
||||
bash -c "${debianSource[$systemVersion]}"
|
||||
fi
|
||||
if [ $system = "1" ]; then
|
||||
bash -c "${ubuntuSource[$systemVersion]}"
|
||||
fi
|
||||
sudo $apt update
|
||||
# 安装 Wine
|
||||
wineInstall=("sudo $apt install --install-recommends winehq-stable" "sudo $apt install --install-recommends winehq-devel" "sudo $apt install --install-recommends winehq-staging")
|
||||
${wineInstall[$programVersion]}
|
||||
echo "按回车键退出"
|
||||
read
|
||||
90
InstallOther.py
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import req as requests
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装运行库")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为是否缓存(可略),三个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
print('''
|
||||
mmmm m #
|
||||
m" "m mm#mm # mm mmm m mm
|
||||
# # # #" # #" # #" "
|
||||
# # # # # #"""" #
|
||||
#mm# "mm # # "#mm" #
|
||||
|
||||
|
||||
''')
|
||||
try:
|
||||
msxmlList = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/other/list.json").text)
|
||||
except:
|
||||
msxmlList = [
|
||||
["Windows Script 5.7 for Windows XP", "https://download.microsoft.com/download/f/f/e/ffea3abf-b55f-4924-b5a5-bde0805ad67c/scripten.exe", "exe", "scripten.exe"],
|
||||
["Windows Management Instrumentation 1.50.1131", "https://www.gitlink.org.cn/api/attachments/390680", "exe", "WMITools.exe"]
|
||||
]
|
||||
print("请选择以下的应用进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(msxmlList)):
|
||||
print(f"{i}、{msxmlList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择要安装的应用(输入“exit”退出):").lower()
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(msxmlList):
|
||||
break
|
||||
if choose == "exit":
|
||||
exit()
|
||||
if len(sys.argv) <= 3:
|
||||
choice = True
|
||||
else:
|
||||
choice = (sys.argv[3] == "1")
|
||||
print(f"您选择了{msxmlList[choose][0]}")
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}") and choice:
|
||||
print("已经缓存,使用本地版本")
|
||||
if msxmlList[choose][2] == "msi":
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
sys.exit()
|
||||
if msxmlList[choose][2] == "exe":
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
sys.exit()
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
|
||||
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/other'")
|
||||
if msxmlList[choose][2] == "msi":
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/other' -o '{msxmlList[choose][3]}' \"{msxmlList[choose][1]}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} msiexec /i '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
|
||||
print("安装结束")
|
||||
sys.exit()
|
||||
if msxmlList[choose][2] == "exe":
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/other' -o '{msxmlList[choose][3]}' \"{msxmlList[choose][1]}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/other/{msxmlList[choose][3]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
sys.exit()
|
||||
86
InstallVisualBasicRuntime.py
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年10月05日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import req as requests
|
||||
try:
|
||||
netList = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/list.json").text)
|
||||
except:
|
||||
netList = [
|
||||
["Visual Basic 1(DOS application)", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vbrun100.exe", "vbrun100.exe"],
|
||||
["Visual Basic 2(DOS application)", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vbrun200.exe", "vbrun200.exe"],
|
||||
["Visual Basic 3", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vb3run.exe", "vb3run.exe"],
|
||||
["Visual Basic 4", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vb4run.exe", "vb4run.exe"],
|
||||
["Visual Basic 6", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vbrun60sp4.exe", "vbrun60sp4.exe"]
|
||||
]
|
||||
def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
try:
|
||||
os.remove(f"/tmp/deepin-wine-runner-vb/{netList[id][2]}")
|
||||
except:
|
||||
pass
|
||||
os.system(f"aria2c -x 16 -s 16 -d '/tmp/deepin-wine-runner-vb' -o '{netList[id][2]}' \"{netList[id][1]}\"")
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wine} '/tmp/deepin-wine-runner-vb/{netList[id][2]}'")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 Visual Basic Runtime")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装 Visual Basic Runtime 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为是否缓存(可略),三个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
print('''
|
||||
m m mmmmm
|
||||
"m m" # #
|
||||
# # #mmmm"
|
||||
"mm" # #
|
||||
## #mmmm"
|
||||
|
||||
|
||||
''')
|
||||
|
||||
print("请选择以下的 Visual Basic Runtime 进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(netList)):
|
||||
print(f"{i} Visual Basic Runtime {netList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择的 Visual Basic Runtime 版本(输入“exit”退出):").lower()
|
||||
if choose == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(netList):
|
||||
break
|
||||
if choose == "exit":
|
||||
exit()
|
||||
print(f"您选择了 Visual Basic Runtime {netList[choose][0]}")
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/vb/{netList[choose][2]}"):
|
||||
print("已经缓存,使用本地版本")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/vb/{netList[choose][2]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/vb/{netList[choose][2]}'")
|
||||
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/vb'")
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/vb' -o '{netList[choose][2]}' \"{netList[choose][1]}\"")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/vb/{netList[choose][2]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
94
InstallVisualCPlusPlus.py
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import req as requests
|
||||
try:
|
||||
netList = json.loads(requests.get("https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vscpp/list.json").text)
|
||||
except:
|
||||
netList = [
|
||||
["VC6 运行库", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vscpp/VC6RedistSetup_deu.exe"],
|
||||
["2005 Service Pack 1 Redistributable Package MFC 安全更新", "https://download.microsoft.com/download/4/A/2/4A22001F-FA3B-4C13-BF4E-42EC249D51C4/vcredist_x86.EXE", "vcredist05_x86.exe"],
|
||||
["2008 (VC++ 9.0) SP1 (不再支持) X86", "https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe", "vcredist08_x86.exe"],
|
||||
["2008 (VC++ 9.0) SP1 (不再支持) X64", "https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe", "vcredist08_x86.exe"],
|
||||
["2010 (VC++ 10.0) SP1 (不再支持) X86", "https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe", "vcredist10_x86.exe"],
|
||||
["2010 (VC++ 10.0) SP1 (不再支持) X64", "https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe", "vcredist10_x64.exe"],
|
||||
["2012 (VC++ 11.0) Update 4 X86", "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe", "vcredist12_x86.exe"],
|
||||
["2012 (VC++ 11.0) Update 4 X64", "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe", "vcredist12_x64.exe"],
|
||||
["2013 (VC++ 12.0) X86", "https://aka.ms/highdpimfc2013x86enu", "vcredist13_x86.exe"],
|
||||
["2013 (VC++ 12.0) X64", "https://aka.ms/highdpimfc2013x64enu", "vcredist13_x64.exe"],
|
||||
["2015、2017、2019 和 2022 X86", "https://aka.ms/vs/17/release/vc_redist.x86.exe", "vc_redist15.x86.exe"],
|
||||
["2015、2017、2019 和 2022 X64", "https://aka.ms/vs/17/release/vc_redist.x64.exe", "vc_redist15.x64.exe"],
|
||||
["2015、2017、2019 和 2022 ARM64", "https://aka.ms/vs/17/release/vc_redist.arm64.exe", "vc_redist15.arm64.exe"]
|
||||
]
|
||||
def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
try:
|
||||
os.remove(f"/tmp/deepin-wine-runner-vcpp/{netList[id][2]}")
|
||||
except:
|
||||
pass
|
||||
os.system(f"aria2c -x 16 -s 16 -d '/tmp/deepin-wine-runner-vcpp' -o '{netList[id][2]}' \"{netList[id][1]}\"")
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wine} '/tmp/deepin-wine-runner-vcpp/{netList[id][2]}'")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 Visual Studio C++")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装 Visual Studio C++ 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为是否缓存(可略),三个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
print('''
|
||||
m m mmm
|
||||
"m m" m" " m m
|
||||
# # # # #
|
||||
"mm" # """#""""""#"""
|
||||
## "mmm" # #
|
||||
|
||||
|
||||
''')
|
||||
|
||||
print("请选择以下的 Visual Studio C++ 进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(netList)):
|
||||
print(f"{i} Visual Studio C++ {netList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择的 Visual Studio C++ 版本(输入“exit”退出):").lower()
|
||||
if choose == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(netList):
|
||||
break
|
||||
if choose == "exit":
|
||||
exit()
|
||||
print(f"您选择了 Visual Studio C++ {netList[choose][0]}")
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}"):
|
||||
print("已经缓存,使用本地版本")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}'")
|
||||
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/vcpp'")
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/vcpp' -o '{netList[choose][2]}' \"{netList[choose][1]}\"")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
85
InstallWineOnDeepin23.py
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
|
||||
def InstallWithDeepinSource(program):
|
||||
os.system(f"sudo cp '{programPath}/deepin.list' /etc/apt/sources.list.d/deepin20-withwinerunner.list")
|
||||
os.system(f"sudo dpkg --add-architecture i386")
|
||||
os.system(f"sudo apt update")
|
||||
os.system(f"sudo apt install {program}")
|
||||
os.system(f"sudo rm /etc/apt/sources.list.d/deepin20-withwinerunner.list")
|
||||
os.system(f"sudo apt update")
|
||||
os.system(f"sudo dpkg --remove-architecture i386")
|
||||
os.system(f"sudo apt update")
|
||||
|
||||
def InstallWithSparkStoreSource(program):
|
||||
os.system(f"sudo cp '{programPath}/sparkstore.list' /etc/apt/sources.list.d/sparkstore-withwinerunner.list")
|
||||
os.system(f"sudo cp '{programPath}/deepin.list' /etc/apt/sources.list.d/deepin20-withwinerunner.list")
|
||||
os.system(f"sudo dpkg --add-architecture i386")
|
||||
os.system(f"sudo mkdir /tmp/spark-store-install")
|
||||
os.system(f"sudo rm -rf /tmp/spark-store-install/spark-store.asc")
|
||||
os.system(f"sudo wget -O /tmp/spark-store-install/spark-store.asc https://d.store.deepinos.org.cn/dcs-repo.gpg-key.asc")
|
||||
os.system(f"sudo gpg --dearmor /tmp/spark-store-install/spark-store.asc")
|
||||
os.system(f"sudo apt update")
|
||||
os.system(f"sudo apt install {program}")
|
||||
os.system(f"sudo rm /etc/apt/sources.list.d/sparkstore-withwinerunner.list")
|
||||
os.system(f"sudo rm /etc/apt/sources.list.d/deepin20-withwinerunner.list")
|
||||
os.system(f"sudo apt update")
|
||||
os.system(f"sudo dpkg --remove-architecture i386")
|
||||
os.system(f"sudo apt update")
|
||||
|
||||
def Repair():
|
||||
print("修复中……")
|
||||
os.system(f"rm -f /etc/apt/sources.list.d/sparkstore-withwinerunner.list")
|
||||
os.system(f"rm -f /etc/apt/sources.list.d/deepin20-withwinerunner.list")
|
||||
print("修复完成!")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print('''
|
||||
m m "
|
||||
# # # mmm m mm mmm
|
||||
" #"# # # #" # #" #
|
||||
## ##" # # # #""""
|
||||
# # mm#mm # # "#mm"
|
||||
|
||||
|
||||
''')
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
print("能不用这个就不用这个!!!真心建议!!!\n")
|
||||
print("下面的安装过程皆需要换源等操作,安装过程千万不要中断,以及千万不要 apt upgrade,感谢\n")
|
||||
print("如果真一不小心中断了,可以在下面输入“repair”进行修复")
|
||||
print("所有操作均需要 Root 权限,请知悉\n")
|
||||
print("千万不要中断且 apt upgrade、千万不要中断且 apt upgrade、千万不要中断且 apt upgrade,重要的事情说三遍")
|
||||
print("以及无法保证安装的 Wine 能使用、无法保证安装的 Wine 能使用、无法保证安装的 Wine 能使用,重要的事情说三遍")
|
||||
repair = input("按回车后继续")
|
||||
if repair.lower() == "repair":
|
||||
Repair()
|
||||
exit()
|
||||
for i in [
|
||||
["原版 Wine(Wine64)", "wine"],
|
||||
["deepin-wine5-stable", "deepin-wine5-stable"],
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"]
|
||||
]:
|
||||
choose = input(f"安装{i[0]}?(添加深度源)[Y/N]").upper()
|
||||
if choose == "Y":
|
||||
print("安装中……")
|
||||
InstallWithDeepinSource(i[1])
|
||||
print("安装完成!")
|
||||
#exit()
|
||||
for i in [
|
||||
["deepin-wine", "deepin-wine"],
|
||||
["spark-wine7-devel", "spark-wine7-devel"]
|
||||
]:
|
||||
choose = input(f"安装{i[0]}?(添加深度、星火源)[Y/N]").upper()
|
||||
if choose == "Y":
|
||||
InstallWithSparkStoreSource(i[1])
|
||||
BIN
LANG/deepin-wine-packager-en_US.qm
Normal file
200
LANG/deepin-wine-packager-en_US.ts
Normal file
@@ -0,0 +1,200 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>U</name>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="30"/>
|
||||
<source>选择 wine 容器</source>
|
||||
<translation type="unfinished">Choose Wine Botton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="35"/>
|
||||
<source>选择图标文件</source>
|
||||
<translation type="unfinished">Choose Icon Files</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="40"/>
|
||||
<source>保存 deb 包</source>
|
||||
<translation type="unfinished">Save Deb</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="103"/>
|
||||
<source>提示</source>
|
||||
<translation type="unfinished">Tips</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="103"/>
|
||||
<source>打包将会改动现在选择的容器,是否继续?</source>
|
||||
<translation type="unfinished">Build deb package will change choose botton, are you continuing?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1162"/>
|
||||
<source>浏览……</source>
|
||||
<translation type="unfinished">Browser...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1164"/>
|
||||
<source>打包……</source>
|
||||
<translation type="unfinished">Build...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1165"/>
|
||||
<source>安装打包完成的 deb……</source>
|
||||
<translation type="unfinished">Install Build Deb...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1166"/>
|
||||
<source>根据填写内容打包模板</source>
|
||||
<translation type="unfinished">Build Deb Formwork</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1169"/>
|
||||
<source>设置卸载该 deb 后自动删除该容器</source>
|
||||
<translation type="unfinished">When remove this deb, it will remove botton auto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1170"/>
|
||||
<source>使用统信 Wine 生态适配活动容器清理脚本</source>
|
||||
<translation type="unfinished">Clean Wine Botton (By UOS Wine Activity Shell)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1177"/>
|
||||
<source>使用星火wine helper
|
||||
(如不勾选默认为deepin-wine-helper)</source>
|
||||
<translation type="unfinished">Use Spark Wine Helper(If you don't checked, will use deepin-wine-helper)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1187"/>
|
||||
<source>要打包的 deb 包的包名(※必填):</source>
|
||||
<translation type="unfinished">Build Deb Package Name(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1188"/>
|
||||
<source>要打包的 deb 包的版本号(※必填):</source>
|
||||
<translation type="unfinished">Build Deb Package Version(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1189"/>
|
||||
<source>要打包的 deb 包的说明(※必填):</source>
|
||||
<translation type="unfinished">Build Deb Package Description(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1190"/>
|
||||
<source>要打包的 deb 包的维护者(※必填):</source>
|
||||
<translation type="unfinished">Build Deb Package Maintainer(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1191"/>
|
||||
<source>要解压的 wine 容器的容器名(※必填):</source>
|
||||
<translation type="unfinished">Deb Use Wine Botton Unzip Name(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1192"/>
|
||||
<source>要解压的 wine 容器(※必填):</source>
|
||||
<translation type="unfinished">Deb Use Wine Botton Path(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1193"/>
|
||||
<source>wine 容器里需要运行的可执行文件路径(※必填):</source>
|
||||
<translation type="unfinished">Deb Use Wine Botton Program Path(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1194"/>
|
||||
<source>要显示的 .desktop 文件的分类(※必填):</source>
|
||||
<translation type="unfinished">Program Link Type(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1195"/>
|
||||
<source>wine 容器里需要运行的可执行文件的参数(选填):</source>
|
||||
<translation type="unfinished">Deb Use Wine Botton Program Option:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1196"/>
|
||||
<source>要显示的 .desktop 文件的名称(※必填):</source>
|
||||
<translation type="unfinished">Program Link Name(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1197"/>
|
||||
<source>要显示的 .desktop 文件的图标(选填):</source>
|
||||
<translation type="unfinished">Program Link Icon Path:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1198"/>
|
||||
<source>选择打包的 wine 版本(※必选):</source>
|
||||
<translation type="unfinished">Build Deb Using Wine Version(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1199"/>
|
||||
<source>打包 deb 的保存路径(※必填):</source>
|
||||
<translation type="unfinished">Build Deb Save Path(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1220"/>
|
||||
<source>高级设置</source>
|
||||
<translation type="unfinished">More Setting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1223"/>
|
||||
<source>deb 包的依赖(如无特殊需求默认即可)</source>
|
||||
<translation type="unfinished">Deb Depends</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1225"/>
|
||||
<source>deb 包的推荐依赖(非强制,一般默认即可)</source>
|
||||
<translation type="unfinished">Deb Recommends</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1230"/>
|
||||
<source>Wine 位数(只限本地需要打包集成的Wine):
|
||||
提示:32位的Wine不能使用64位容器</source>
|
||||
<translation type="unfinished">Deb Use Wine Architecture :
|
||||
Tips: X86 Wine is unable to use x86 botton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1233"/>
|
||||
<source>deb 包选项:</source>
|
||||
<translation type="unfinished">Deb Option:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1237"/>
|
||||
<source>deb 的依赖(强制,如无特殊需求默认即可):</source>
|
||||
<translation type="unfinished">Deb Depends:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1239"/>
|
||||
<source>deb 的推荐依赖(非强制,一般默认即可):</source>
|
||||
<translation type="unfinished">Deb Recommends:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1241"/>
|
||||
<source>要显示的 .desktop 文件的 MimeType:</source>
|
||||
<translation type="unfinished">Program Link MimeType(*Must):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1243"/>
|
||||
<source>打包 deb 架构:</source>
|
||||
<translation type="unfinished">Build Deb Architecture:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1253"/>
|
||||
<source>程序</source>
|
||||
<translation type="unfinished">Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1254"/>
|
||||
<source>帮助</source>
|
||||
<translation type="unfinished">Help</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1255"/>
|
||||
<source>退出程序</source>
|
||||
<translation type="unfinished">Exit Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../deepin-wine-packager.py" line="1256"/>
|
||||
<source>小提示</source>
|
||||
<translation type="unfinished">Tips</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
LANG/deepin-wine-runner-en_US.qm
Normal file
664
LANG/deepin-wine-runner-en_US.ts
Normal file
@@ -0,0 +1,664 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_CN" sourcelanguage="zh_CN">
|
||||
<context>
|
||||
<name>U</name>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1419"/>
|
||||
<source>????</source>
|
||||
<translation type="obsolete">Fast Run</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="201"/>
|
||||
<source>确定</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="383"/>
|
||||
<source>如果安装字体?只需要把字体文件复制到此字体目录
|
||||
按下“OK”按钮可以打开字体目录</source>
|
||||
<translation>If you want to install Font, you only copy font files to this directory
|
||||
Check "OK " to open fonts directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="713"/>
|
||||
<source>更新(更新过程中会关闭所有Python应用,包括这个应用)</source>
|
||||
<translation>Update (it will kill all python program when you're installing)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="721"/>
|
||||
<source>此为最新版本,无需更新</source>
|
||||
<translation>It's newest program now, you don't need to update program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1088"/>
|
||||
<source>错误</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="727"/>
|
||||
<source>无法连接服务器!</source>
|
||||
<translation>Can't connect the Program Server!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="734"/>
|
||||
<source>检查更新</source>
|
||||
<translation>Check Update</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="790"/>
|
||||
<source>ISO镜像:</source>
|
||||
<translation>ISO Image FIle:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1438"/>
|
||||
<source>浏览</source>
|
||||
<translation>Browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="799"/>
|
||||
<source>读取/挂载ISO镜像</source>
|
||||
<translation>Read/Mount ISO Image File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="800"/>
|
||||
<source>关闭/卸载ISO镜像</source>
|
||||
<translation>Close/Unmount ISO Image File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="802"/>
|
||||
<source>查找</source>
|
||||
<translation>Find</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="804"/>
|
||||
<source>保存到 wine 容器中</source>
|
||||
<translation>Save DLL for wine botton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="805"/>
|
||||
<source>设置 wine 容器</source>
|
||||
<translation>Setting Wine Botton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="827"/>
|
||||
<source>查找DLL
|
||||
(为空则代表不查找,
|
||||
将显示全部内容):</source>
|
||||
<translation>Find DLL
|
||||
(Nothing means don't find,will show all dlls):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1081"/>
|
||||
<source>提示</source>
|
||||
<translation>Tips</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="940"/>
|
||||
<source>关闭/卸载成功!</source>
|
||||
<translation>Close/Remove Success!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="967"/>
|
||||
<source>暂时还没有该软件的运行情况信息
|
||||
是否自己上传该软件的运行情况?</source>
|
||||
<translation>No body update this program running status now
|
||||
Do you want to update first?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="987"/>
|
||||
<source>点此上传运行情况</source>
|
||||
<translation>Click here to update</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="989"/>
|
||||
<source>综合评价:</source>
|
||||
<translation>User Thinking:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1038"/>
|
||||
<source>上传</source>
|
||||
<translation>Update</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1048"/>
|
||||
<source>如果这个程序和程序名确实是合法还是检测到敏感词,改为“NULL”即可</source>
|
||||
<translation>You can try press "NULL" if you can't to update because program name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1059"/>
|
||||
<source>程序名:</source>
|
||||
<translation>Program Name:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1067"/>
|
||||
<source>上传程序运行情况</source>
|
||||
<translation>Fast Run</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1088"/>
|
||||
<source>数据上传失败!</source>
|
||||
<translation>Update Error!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1119"/>
|
||||
<source>选择 Wine 容器版本:</source>
|
||||
<translation>Choose Wine Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1120"/>
|
||||
<source>wine DEBUG 信息输出:</source>
|
||||
<translation>Show Wine Debug Information:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1121"/>
|
||||
<source>默认 Wine:</source>
|
||||
<translation>Default Wine Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1122"/>
|
||||
<source>默认 Wine 容器:</source>
|
||||
<translation>Defualt Wine Botton:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1123"/>
|
||||
<source>使用终端打开:</source>
|
||||
<translation>Use Terminal To Open Program:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1124"/>
|
||||
<source>自定义 wine 参数:</source>
|
||||
<translation>More Wine Command Option:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1125"/>
|
||||
<source>程序主题:</source>
|
||||
<translation>Program Theme:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1126"/>
|
||||
<source>Wine 默认 Mono 和 Gecko 安装器:</source>
|
||||
<translation>Using Wine Defult Mono And Gecko Installer:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1127"/>
|
||||
<source>忽略未安装的 Wine:</source>
|
||||
<translation>Unsee Not Install Wine Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1128"/>
|
||||
<source>下载缓存:</source>
|
||||
<translation>Download Cache:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1130"/>
|
||||
<source>开启 DEBUG 输出</source>
|
||||
<translation>Show Wine Debug Info</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1136"/>
|
||||
<source>保存</source>
|
||||
<translation>Save</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1140"/>
|
||||
<source>测试(重启后变回设置的主题)</source>
|
||||
<translation>Test(Restarting will show setting themes)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1142"/>
|
||||
<source>使用终端打开(deepin 终端)</source>
|
||||
<translation>Use Terminal To Open(Deepin Terminal)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1144"/>
|
||||
<source>屏蔽 Wine 默认 Mono 和 Gecko 安装器</source>
|
||||
<translation>Don't Use Wine Default Mono And Gecko Installer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1145"/>
|
||||
<source>不显示未检测到的 Wine</source>
|
||||
<translation>Don't Show Unknown Wine Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1146"/>
|
||||
<source>开启下载缓存</source>
|
||||
<translation>Start Download Cache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1178"/>
|
||||
<source>选择 Wine 容器</source>
|
||||
<translation>Choose Wine Botton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1423"/>
|
||||
<source>快速启动</source>
|
||||
<translation>Fast Run</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1427"/>
|
||||
<source>请选择容器路径:</source>
|
||||
<translation>Choose Wine Botton Path:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1434"/>
|
||||
<source>请选择要执行的程序:</source>
|
||||
<translation>Choose EXE Files:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1441"/>
|
||||
<source>请选择WINE版本:</source>
|
||||
<translation>Choose Wine Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1453"/>
|
||||
<source>高级功能</source>
|
||||
<translation>More Function</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1457"/>
|
||||
<source>创建快捷方式(Desktop文件):</source>
|
||||
<translation>Create Program Link(.desktop file):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1464"/>
|
||||
<source>创建到桌面</source>
|
||||
<translation>Create To Desktop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1467"/>
|
||||
<source>创建到开始菜单</source>
|
||||
<translation>Create To Launcher</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1473"/>
|
||||
<source>程序管理:</source>
|
||||
<translation>Program Manager:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1474"/>
|
||||
<source>提取图标</source>
|
||||
<translation>Get Program Icon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1478"/>
|
||||
<source>窗口透明工具</source>
|
||||
<translation>Window Transparent Tools</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1481"/>
|
||||
<source>卸载程序</source>
|
||||
<translation>Remove Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1485"/>
|
||||
<source>微型应用商店</source>
|
||||
<translation>Mini App Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1490"/>
|
||||
<source>获取该程序运行情况</source>
|
||||
<translation>Get Choosed Program Running Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1494"/>
|
||||
<source>WINE配置:</source>
|
||||
<translation>Wine Config:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1495"/>
|
||||
<source>配置容器</source>
|
||||
<translation>Config Wine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1498"/>
|
||||
<source>字体商店</source>
|
||||
<translation>Fonts Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1583"/>
|
||||
<source>安装自定义字体</source>
|
||||
<translation>Install More Fonts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1504"/>
|
||||
<source>星火wine配置</source>
|
||||
<translation>Spark Wine Config</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1521"/>
|
||||
<source>在此可以看到wine安装应用时的终端输出内容</source>
|
||||
<translation>You can see wine running return things here</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1538"/>
|
||||
<source>运行程序</source>
|
||||
<translation>Run Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1541"/>
|
||||
<source>终止程序</source>
|
||||
<translation>Stop Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1548"/>
|
||||
<source>程序(&P)</source>
|
||||
<translation>Program(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1549"/>
|
||||
<source>安装 wine(&I)</source>
|
||||
<translation>Install Wine(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1550"/>
|
||||
<source>安装 wine(只限Deepin23)</source>
|
||||
<translation>Install Wine(Only For Deepin 23)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1551"/>
|
||||
<source>安装 WineHQ</source>
|
||||
<translation>Install WineHQ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1552"/>
|
||||
<source>安装更多 Wine</source>
|
||||
<translation>Install More Wine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1553"/>
|
||||
<source>设置程序(&S)</source>
|
||||
<translation>Setting Program(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1554"/>
|
||||
<source>清空软件历史记录(&C)</source>
|
||||
<translation>Clean Program History Data(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1555"/>
|
||||
<source>清空软件缓存</source>
|
||||
<translation>Clean Program Cache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1556"/>
|
||||
<source>删除程序组件</source>
|
||||
<translation>Remove Program Function</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1557"/>
|
||||
<source>退出程序(&E)</source>
|
||||
<translation>Exit Program(&E)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1580"/>
|
||||
<source>Wine(&W)</source>
|
||||
<translation>Wine(&W)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1581"/>
|
||||
<source>打开 Wine 容器目录</source>
|
||||
<translation>Open Wine Botton Directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1582"/>
|
||||
<source>安装常见字体</source>
|
||||
<translation>Install Fonts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1584"/>
|
||||
<source>删除选择的 Wine 容器</source>
|
||||
<translation>Delete Choose Wine Botton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1585"/>
|
||||
<source>清理 Wine 容器(基于 Wine 适配活动脚本)</source>
|
||||
<translation>Clean Wine Botton(By UOS Wine Activity Shell)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1586"/>
|
||||
<source>打包 wine 应用</source>
|
||||
<translation>Build Windows Program Installer For Linux By Wine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1587"/>
|
||||
<source>使用官方 Wine 适配活动的脚本进行打包</source>
|
||||
<translation>Build Windows Program Installer For Linux By Wine(By UOS Wine Activity Shell)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1588"/>
|
||||
<source>从镜像获取DLL(只支持Windows XP、Windows Server 2003官方安装镜像)</source>
|
||||
<translation>Get Dll For ISO Images(Only Support Windows XP And Windows Server 2003 Microsoft Installer)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1589"/>
|
||||
<source>从 Geek Uninstaller 官网升级程序</source>
|
||||
<translation>Update Geek Uninstaller From Geek Websize</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1590"/>
|
||||
<source>删除所有 Wine 程序在启动器的快捷方式</source>
|
||||
<translation>Delete All Wine Program Links On Launcher</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1604"/>
|
||||
<source>在指定 Wine、容器安装组件</source>
|
||||
<translation>Install Runtime With Choose Wine Botton And Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1605"/>
|
||||
<source>在指定wine、指定容器安装 .net framework</source>
|
||||
<translation>Install .Net Framework</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1606"/>
|
||||
<source>在指定wine、指定容器安装 Visual Studio C++</source>
|
||||
<translation>Install Visual Studio C++ Runtime</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1607"/>
|
||||
<source>在指定wine、指定容器安装 MSXML</source>
|
||||
<translation>Install MSXML</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1608"/>
|
||||
<source>在指定wine、指定容器安装 gecko</source>
|
||||
<translation>Install Gecko</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1609"/>
|
||||
<source>在指定wine、指定容器安装 mono</source>
|
||||
<translation>Install Mono</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1610"/>
|
||||
<source>在指定wine、指定容器安装其它运行库</source>
|
||||
<translation>Install Other Runtime</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1617"/>
|
||||
<source>在指定 Wine、容器运行基础应用</source>
|
||||
<translation>Run Basic Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1618"/>
|
||||
<source>打开指定wine、指定容器的控制面板</source>
|
||||
<translation>Run Control</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1619"/>
|
||||
<source>打开指定wine、指定容器的浏览器</source>
|
||||
<translation>Run Web Browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1620"/>
|
||||
<source>打开指定wine、指定容器的注册表</source>
|
||||
<translation>Run Regedit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1621"/>
|
||||
<source>打开指定wine、指定容器的任务管理器</source>
|
||||
<translation>Run Taskmgr</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1622"/>
|
||||
<source>打开指定wine、指定容器的资源管理器</source>
|
||||
<translation>Run File Explorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1623"/>
|
||||
<source>打开指定wine、指定容器的关于 wine</source>
|
||||
<translation>Run About Wine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1631"/>
|
||||
<source>设置 run_v3.sh 的文管为 Deepin 默认文管</source>
|
||||
<translation>Set Deepin File Dialog Defult On run_v3.sh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1632"/>
|
||||
<source>设置 run_v3.sh 的文管为 Wine 默认文管</source>
|
||||
<translation>Set Wine File Dialog Defult On run_v3.sh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1633"/>
|
||||
<source>重新安装 deepin-wine-helper</source>
|
||||
<translation>Reinstall deepin-wine-helper</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1634"/>
|
||||
<source>使用winetricks打开指定容器</source>
|
||||
<translation>Using Winetricks</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1641"/>
|
||||
<source>启用/禁用 opengl</source>
|
||||
<translation>Enabled/Disbled OpenGL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1642"/>
|
||||
<source>开启 opengl</source>
|
||||
<translation>Enabled OpenGL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1643"/>
|
||||
<source>禁用 opengl</source>
|
||||
<translation>Disbled OpenGL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1646"/>
|
||||
<source>安装/卸载 winbind</source>
|
||||
<translation>Install/Uninstall Winbind</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1647"/>
|
||||
<source>安装 winbind</source>
|
||||
<translation>Install Winbind</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1648"/>
|
||||
<source>卸载 winbind</source>
|
||||
<translation>Uninstall Winbind</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1651"/>
|
||||
<source>安装/卸载 DXVK</source>
|
||||
<translation>Install/Uninstall DXVK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1652"/>
|
||||
<source>安装 DXVK</source>
|
||||
<translation>Install DXVK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1653"/>
|
||||
<source>卸载 DXVK</source>
|
||||
<translation>Uninstall DXVK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1691"/>
|
||||
<source>虚拟机(&V)</source>
|
||||
<translation>Virtual Machine(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1692"/>
|
||||
<source>使用 Virtualbox 虚拟机运行 Windows 应用</source>
|
||||
<translation>Run Windows Program By VirtualBox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1696"/>
|
||||
<source>云沙箱(&C)</source>
|
||||
<translation>Cloud Sandbox(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1697"/>
|
||||
<source>360 沙箱云</source>
|
||||
<translation>360 Cloud Sandbox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1698"/>
|
||||
<source>微步云沙箱</source>
|
||||
<translation>ThreatBook Cloud Sandbox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1699"/>
|
||||
<source>VIRUSTOTAL</source>
|
||||
<translation>VIRUSTOTAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1707"/>
|
||||
<source>帮助(&H)</source>
|
||||
<translation>Help(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1708"/>
|
||||
<source>程序官网</source>
|
||||
<translation>Program Websize</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1709"/>
|
||||
<source>小提示</source>
|
||||
<translation>Program Tips</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1710"/>
|
||||
<source>更新内容</source>
|
||||
<translation>Program New Things</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1711"/>
|
||||
<source>谢明名单</source>
|
||||
<translation>Thank List</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1712"/>
|
||||
<source>更新这个程序</source>
|
||||
<translation>UPdate This Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1713"/>
|
||||
<source>反馈这个程序的建议和问题</source>
|
||||
<translation>Update Advices And Problem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1714"/>
|
||||
<source>关于这个程序</source>
|
||||
<translation>About This Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1715"/>
|
||||
<source>关于 Qt</source>
|
||||
<translation>About Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1727"/>
|
||||
<source>更多生态适配应用</source>
|
||||
<translation>More Deepin/UOS Program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.py" line="1728"/>
|
||||
<source>运行 Android 应用:UEngine 运行器</source>
|
||||
<translation>Run Android Program: UEngine Runner</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
LANG/installwine-en_US.qm
Normal file
32
LANG/installwine-en_US.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_CN">
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../wine-source/mainwindow.ui" line="14"/>
|
||||
<source>下载 Wine</source>
|
||||
<translation type="unfinished">Download Wine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../wine-source/mainwindow.ui" line="41"/>
|
||||
<source><<</source>
|
||||
<translation type="unfinished"><<</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../wine-source/mainwindow.ui" line="48"/>
|
||||
<source>>></source>
|
||||
<translation type="unfinished">>></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../wine-source/mainwindow.ui" line="77"/>
|
||||
<source>不解压Wine资源文件</source>
|
||||
<translation type="unfinished">Don't Unzip Wine File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../wine-source/mainwindow.ui" line="84"/>
|
||||
<source>删除下载的资源包,只解压保留(两个选项都选相互抵消)</source>
|
||||
<translation type="unfinished">Delete Download Zip File And Only Unzip</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
LANG/virtualmachine-en_US.qm
Normal file
176
LANG/virtualmachine-en_US.ts
Normal file
@@ -0,0 +1,176 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" sourcelanguage="zh">
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="14"/>
|
||||
<source>Windows 应用适配工具</source>
|
||||
<translation type="unfinished">Windows System Installer By VirtualBox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="32"/>
|
||||
<location filename="mainwindow.ui" line="35"/>
|
||||
<source>设置</source>
|
||||
<translation type="unfinished">Setting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="43"/>
|
||||
<source>镜像路径:</source>
|
||||
<translation type="unfinished">ISO Image Path:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="50"/>
|
||||
<source>请选择系统镜像</source>
|
||||
<translation type="unfinished">Input System ISO Image</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="57"/>
|
||||
<source>浏览……</source>
|
||||
<translation type="unfinished">Browser......</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="68"/>
|
||||
<source>系统版本:</source>
|
||||
<translation type="unfinished">System Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="78"/>
|
||||
<source>请选择系统类型(如果识别不了请自行选择,如果选择错误或不支持将无法进行自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="82"/>
|
||||
<source>Windows 7 32 位(支持自动安装)</source>
|
||||
<translation type="unfinished">Windows 7 X86(Support Auto Install)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="87"/>
|
||||
<source>Windows 7 64 位(支持自动安装)</source>
|
||||
<translation type="unfinished">Windows 7 X64(Support Auto Install)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="92"/>
|
||||
<source>其它 Windows 系统(不支持自动安装)</source>
|
||||
<translation type="unfinished">Other Windows(Don't Support Auto Install)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="117"/>
|
||||
<source>安装</source>
|
||||
<translation type="unfinished">Install</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="126"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">使用迅雷或者网盘下载以下任意一个链接然后在上面选择即可:</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第二项)ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></p>
|
||||
<hr /></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="141"/>
|
||||
<source>安装/使用帮助</source>
|
||||
<translation type="unfinished">Install/Using Help</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="150"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">给小白的一段话</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了)</p>
|
||||
<hr />
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装是否需要人工进行操作?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712191756.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712192850.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712193527.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">什么样的镜像本程序(可能)不支持自动安装?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等</p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">默认的虚拟机设置不习惯怎么改?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">1、打开启动器,打开 Oracle VM VirtualBox 程序</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">2、选择名字为“Windows”的虚拟机,然后在右边点击设置</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Manager_20220712223602.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">3、在这里修改即可</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox_20220712223705.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装加强功能有什么好处?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、支持鼠标自由从虚拟机和实体机切换</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、支持虚拟机根据窗口大小自动设置分辨率</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、支持文件共享、剪切板共享、文件拖放</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4、支持无缝模式</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_选择区域_20220712224639.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">如何安装加强功能?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、点击“设备”=》“加强功能”</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图_VirtualBox Machine_20220712142929.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143006.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、在弹出的界面点击“是”</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143018.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4、一直点“Next”</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143029.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143037.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">5、全部选择,然后点击“Install”进行安装</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143044.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143103.png" /></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="224"/>
|
||||
<location filename="mainwindow.ui" line="313"/>
|
||||
<source>关于</source>
|
||||
<translation type="unfinished">About</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="281"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”&lt;Wine 不是一个模拟器&gt;的原意),旨在能更加完美、简单的运行 Windows 应用</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">基于 GPL V3 协议开源</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">项目地址:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitee:<a href="https://gitee.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Github:<a href="https://github.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitlink:<a href="https://gitlink.org.cn/gfdgd_xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitlink.org.cn/gfdgd_xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">该组件制作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢</p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">参考文献:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Droid Sans Mono','monospace','monospace'; font-size:11pt; color:#6a9955;">https://juejin.cn/post/7080484519328874510</span></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="308"/>
|
||||
<source>退出</source>
|
||||
<translation type="unfinished">Exit</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
674
LICENSE
Executable file
@@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
89
Makefile
Executable file
@@ -0,0 +1,89 @@
|
||||
build:
|
||||
#cd VM-source && qmake
|
||||
#cd VM-source && make
|
||||
#cd wine && make
|
||||
cp -rv helperset deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv VM-source/VirtualMachine VM
|
||||
cp -rv VM-source/deepin-wine-runner.svg VM
|
||||
cp -rv VM-source/api VM
|
||||
cp -rv VM-source/Windows7X64Auto.iso VM
|
||||
cp -rv VM-source/Windows7X86Auto.iso VM
|
||||
cp -rv VM-source/run.py VM
|
||||
cp -rv wine/ deb/opt/apps/deepin-wine-runner/
|
||||
zip -v -q -r package-script.zip package-script
|
||||
cp -rv VM deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AllInstall.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv req deb/opt/apps/deepin-wine-runner
|
||||
cp -rv RegShot deb/opt/apps/deepin-wine-runner
|
||||
cp -rv BeCyIconGrabber.exe deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AutoShell deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-packager-with-script.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-packager.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-runner-update-bug deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-runner.svg deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-venturi-setter.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv DisabledOpengl.reg deb/opt/apps/deepin-wine-runner
|
||||
cp -rv EnabledOpengl.reg deb/opt/apps/deepin-wine-runner
|
||||
cp -rv geek.exe deb/opt/apps/deepin-wine-runner
|
||||
cp -rv information.json deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallMono.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallMsxml.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallNetFramework.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallOther.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallVisualCPlusPlus.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv launch.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv LICENSE deb/opt/apps/deepin-wine-runner
|
||||
cp -rv mainwindow.py deb/opt/apps/deepin-wine-runner/deepin-wine-runner
|
||||
cp -rv package-script.zip deb/opt/apps/deepin-wine-runner
|
||||
cp -rv Run.bat deb/opt/apps/deepin-wine-runner
|
||||
cp -rv RunVM.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv "wine install" deb/opt/apps/deepin-wine-runner
|
||||
cp -rv 窗体透明度设置工具.exe deb/opt/apps/deepin-wine-runner
|
||||
cp -rv UpdateGeek.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AppStore.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallWineOnDeepin23.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv dxvk.7z deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallFont.py deb/opt/apps/deepin-wine-runner
|
||||
#cp -rv exagear.7z deb/opt/apps/deepin-wine-runner
|
||||
cp -rv dlls-arm.7z deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin.list deb/opt/apps/deepin-wine-runner
|
||||
cp -rv sparkstore.list deb/opt/apps/deepin-wine-runner
|
||||
cp -rv arm-package.7z deb/opt/apps/deepin-wine-runner
|
||||
cp -rv exa.7z deb/opt/apps/deepin-wine-runner
|
||||
cp -rv clean-unuse-program.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallNewWineHQ.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv cleanbottle.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv StartVM.sh deb/opt/apps/deepin-wine-runner
|
||||
#cp -rv deepin-wine-runner-create-botton.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv Icon deb/opt/apps/deepin-wine-runner
|
||||
cp -rv ConfigLanguareRunner-help.json deb/opt/apps/deepin-wine-runner
|
||||
cp -rv gtkGetFileNameDlg deb/opt/apps/deepin-wine-runner
|
||||
cp -rv LANG/*.qm deb/opt/apps/deepin-wine-runner/LANG
|
||||
cp -rv InstallDll.py deb/opt/apps/deepin-wine-runner/LANG
|
||||
cp -rv ConfigLanguareRunner.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AutoConfig.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv UI deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv InstallDll.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv Model deb/opt/apps/deepin-wine-runner
|
||||
cp -rv API deb/opt/apps/deepin-wine-runner
|
||||
cp -rv key deb/opt/apps/deepin-wine-runner
|
||||
dpkg -b deb spark-deepin-wine-runner.deb
|
||||
|
||||
|
||||
install:
|
||||
make build
|
||||
sudo apt update
|
||||
#sudo dpkg -i spark-deepin-wine-runner.deb
|
||||
sudo apt reinstall ./spark-deepin-wine-runner.deb -y --allow-downgrades
|
||||
|
||||
remove:
|
||||
sudo apt purge spark-deepin-wine-runner
|
||||
|
||||
depend:
|
||||
sudo apt update
|
||||
sudo apt install python3 python3-pil python3-pil.imagetk\
|
||||
python3-pyquery deepin-terminal aria2 curl unrar unzip\
|
||||
python3-requests fakeroot bash python3-pyqt5
|
||||
|
||||
run:
|
||||
python3 mainwindow.py
|
||||
37
Model/__init__.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import os
|
||||
import sys
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
def OpenTerminal(command):
|
||||
if terminalEnd[terminal][1]:
|
||||
os.system(f"\"{terminal}\" \"{terminalEnd[terminal][0]}\" \"{command}\"")
|
||||
return
|
||||
os.system(f"\"{terminal}\" \"{terminalEnd[terminal][0]}\" {command}")
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
# 对终端的获取
|
||||
# 为什么 openkylin 只有 mate-terminal
|
||||
# 优先为深度终端
|
||||
terminal = ""
|
||||
terminalList = [
|
||||
"deepin-terminal",
|
||||
"mate-terminal",
|
||||
"gnome-terminal",
|
||||
"xfce4-terminal"
|
||||
]
|
||||
terminalEnd = {
|
||||
f"{programPath}/../launch.sh\" \"deepin-terminal": ["-e", 0],
|
||||
"mate-terminal": ["-e", 1],
|
||||
"gnome-terminal": ["--", 0],
|
||||
"xfce4-terminal": ["-e", 1]
|
||||
}
|
||||
for i in terminalList:
|
||||
if not os.system(f"which {i}"):
|
||||
if i == "deepin-terminal":
|
||||
i = f"{programPath}/../launch.sh\" \"deepin-terminal"
|
||||
terminal = i
|
||||
break
|
||||
if terminal == "":
|
||||
print("无法识别到以下的任意一个终端")
|
||||
print(" ".join(terminalList))
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
QtWidgets.QMessageBox.critical(None, "错误", "无法识别到以下的任意一个终端\n" + " ".join(terminalList))
|
||||
exit()
|
||||
BIN
Model/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
Model/__pycache__/__init__.cpython-37.pyc
Normal file
439
README.md
Normal file → Executable file
@@ -1,49 +1,422 @@
|
||||
# deepin-wine 运行器
|
||||
|
||||
#### 介绍
|
||||
一个图形化了以下命令的程序
|
||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||
<h1 align="center">Wine 运行器 2.3.0</h1>
|
||||
<hr>
|
||||
|
||||
## 介绍
|
||||
一个图形化了以下命令的程序
|
||||
```bash
|
||||
env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
|
||||
```
|
||||
WINEPREFIX=容器路径 deepin-wine 可执行文件路径
|
||||
```
|
||||
让你的 deepin-wine 打包轻松一点
|
||||
是使用 Python3 的 tkinter 构建的
|
||||
让你可以简易方便的使用 wine
|
||||
是使用 Python3 的 PyQt5 构建的
|
||||
(自己美术功底太差,图标只能在网络上找了)
|
||||
(测试平台:deepin 20.7;UOS 家庭版 21.3.1;Ubuntu 22.04;Ubuntu 20.04;UOS 专业版 1050)
|
||||

|
||||
而打包器可以方便的把您的 wine 容器打包成 deb 包供他人使用,程序创建的 deb 构建临时文件夹目录树如下:
|
||||
```bash
|
||||
/XXX
|
||||
├── DEBIAN
|
||||
│ └── control
|
||||
│ └── postrm(可选)
|
||||
└── opt
|
||||
└── apps
|
||||
└── XXX
|
||||
├── entries
|
||||
│ ├── applications
|
||||
│ │ └── XXX.desktop
|
||||
│ └── icons
|
||||
│ └── hicolor
|
||||
│ └── scalable
|
||||
│ └── apps
|
||||
│ └── XXX.png(XXX.svg)
|
||||
├── files
|
||||
│ ├── files.7z
|
||||
│ └── run.sh
|
||||
└── info
|
||||
|
||||
(测试平台:deepin 20.1 1030)
|
||||
|
||||
#### 软件架构
|
||||
i386 和 amd64,deepin-wine 和 deepin-wine5 运行在哪就运行在哪
|
||||
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. 安装所需依赖
|
||||
|
||||
```
|
||||
sudo apt install deepin-wine python3 python3-tk git
|
||||
11 directories, 6 files
|
||||
```
|
||||
|
||||
2. 下载本程序
|
||||
## 软件架构
|
||||
i386、amd64 和 arm64,deepin-wine、deepin-wine5、wine、wine64、deepin-wine5-stable、deepin-wine6-stable、spark-wine7-devel、ukylin-wine 运行在哪就运行在哪
|
||||
理论上支持全架构,如果 Python 能运行的话
|
||||
非 X86 架构会利用到 `box86`、`exagear`等技术
|
||||
|
||||
## 分支介绍
|
||||
### main 分支
|
||||
主分支,稳定分支
|
||||
### Alpha 分支
|
||||
开发版分支,一般不稳定,有许多 bug
|
||||
|
||||
## 版本区分
|
||||
### 无特殊标识
|
||||
普通版本(一般来自 Gitee、Github、Gitlink 等渠道)
|
||||
### 版本号带`-spark`
|
||||
星火应用商店版本
|
||||
### 版本号带`-uos`
|
||||
深度应用商店版本,一般带免开开发者模式签名
|
||||
### 包名带`-52`
|
||||
吾爱论坛专版,只在吾爱论坛发布,功能会阉割(如更新、评分、bug反馈功能等等),一般建议使用上面的三个版本
|
||||

|
||||
(没人喜欢看到这个无法连接服务器吧)
|
||||
|
||||
## 使用说明
|
||||
### 均在软件的“小提示”里有说明
|
||||
### 运行器
|
||||
1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错;
|
||||
2、wine 32 位和 64 位的容器互不兼容;
|
||||
3、所有的 wine 和 winetricks 均需要自行安装(可以从 菜单栏=>程序 里面进行安装)
|
||||
4、本程序支持带参数运行 wine 程序(之前版本也可以),只需要按以下格式即可:
|
||||
```bash
|
||||
exe路径\' 参数 \'
|
||||
```
|
||||
即可(单引号需要输入)
|
||||
5、wine 容器如果没有指定,则会默认为 ~/.wine
|
||||
6、如果可执行文件比较大的话,会出现点击“获取该程序运行情况”出现假死的情况,因为正在后台读取 SHA1,只需要等一下即可(读取速度依照您电脑处理速度、读写速度、可执行文件大小等有关)
|
||||
7、对于非 X86 的用户来说,请不要使用本程序自带的 Wine 安装程序和 Windows 虚拟机安装功能(检测到为非 X86 架构会自动禁用)
|
||||
8、如果非 X86 的用户的 UOS 专业版用户想要使用的话,只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序
|
||||
9、在使用 linglong 包的 Wine 应用时,必须安装至少一个 linglong 的使用 Wine 软件包才会出现该选项,而程序识别到的 Wine 是按 linglong 的使用 Wine 软件包名的字母排序第一个的 Wine,且生成的容器不在用户目录下,而是在容器的用户目录下(用户目录/.deepinwine、/tmp、桌面、下载、文档等被映射的目录除外),同理需要运行的 EXE 也必须在被映射的目录内
|
||||
10、如果是使用 Deepin 23 的 Wine 安装脚本,请切记——安装过程会临时添加 Deepin 20 的 apt 源,不要中断安装以及千万不要中断后不删除源的情况下 apt upgrade !!!中断后只需重新打开脚本输入 repair 或者随意安装一个 Wine(会自动执行恢复操作)即可。以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示
|
||||
```bash
|
||||
N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。
|
||||
```
|
||||

|
||||
### 打包器
|
||||
1、deb 打包软件包名要求:
|
||||
软件包名只能含有小写字母(a-z)、数字(0-9)、加号(+)和减号(-)、以及点号(.),软件包名最短长度两个字符;它必须以字母开头
|
||||
2、如果要填写路径,有“浏览……”按钮的是要填本计算机对应文件的路径,否则就是填写安装到其他计算机使用的路径
|
||||
3、输入 wine 的容器路径时最后面请不要输入“/”
|
||||
4、输入可执行文件的运行路径时是以“C:/XXX/XXX.exe”的格式进行输入,默认是以 C: 为开头,不用“\”做命令的分隔,而是用“/”
|
||||
5、.desktop 的图标只支持 PNG 格式和 SVG 格式,其他格式无法显示图标
|
||||

|
||||
### 基于统信 Wine 生态适配脚本的打包器
|
||||
第一个文本框是应用程序中文名
|
||||
第二个文本框是应用程序英文名
|
||||
第三个文本框是最终生成的包的描述
|
||||
第四个选择框是desktop文件中的分类
|
||||
第五个输入框是程序在 Wine 容器的位置,以 c:\\XXX 的形式,盘符必须小写,用反斜杠,如果路径带用户名的话会自动替换为$USER
|
||||
而 StartupWMClass 字段将会由程序自动生成,作用如下:
|
||||
desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与desktop文件相对应。这个值为实际运行的主程序EXE的文件名,wine/crossover在程序运行后会将文件名设置为窗口类名
|
||||
第六个输入框是最终生成的包的包名,包名的命名规则以deepin开头,加官网域名(需要前后对调位置),如还不能区分再加上应用名
|
||||
最后一个是最终生成的包的版本号,版本号命名规则:应用版本号+deepin+数字
|
||||

|
||||
|
||||
## 更新日志
|
||||
### 2.3.0(2022年10月02日)
|
||||
**※1、自动配置解释器支持 bash 语法(新版底层调用 bash,旧版任然使用旧版解析引擎)**
|
||||
**※2、修复缺失 wimtools 依赖导致无法正常安装的问题**
|
||||
**※3、修复基于生态适配活动脚本打包器对话框过多影响使用的问题,并支持指定不同的包名和容器名**
|
||||
**※4、7z 文件解压不会自动替换文件然后卡死以及因此导致程序闪退的问题**
|
||||
**※5、修复安装更多 Wine 终端调用问题和图标问题**
|
||||
**※6、支持 openkylin**
|
||||
7、支持通过 exe 路径自动生成 Wine 容器路径
|
||||
8、支持禁用/启用 wine 容器是否生成快捷方式的功能以及启用/禁用程序崩溃提示对话框
|
||||
9、支持设置 wine 容器代理
|
||||
10、自动配置脚本支持使用 `--help` 参数查看帮助
|
||||

|
||||
|
||||
### 2.2.0(2022年09月24日)
|
||||
**※1、Dll 提取工具支持 NT 6.X 及以上版本的 Dll 提取并优化了提示文本**
|
||||
**※2、支持卸载后自动删除缓存/配置文件(删除配置文件只限 purge 参数删除)**
|
||||
**※3、DEBUG 模式输出更多信息以方便调试(原本只输出 pid、Err)**
|
||||
**※4、支持安装 msi 文件**
|
||||
**※5、修复无法正常评分的问题**
|
||||
**※6、修复 QQ、TIM 安装后无法正常生成快捷方式的问题**
|
||||
**※7、基于生态适配活动的打包器更换为 spark-wine-helper 以及添加自动删除残留脚本**
|
||||
**※8、打包器支持从 deb 文件读取信息**
|
||||
**※9、修复在 UOS 专业版(鲲鹏)无法正常运行的问题以及组件安装功能无法正常执行安装命令的问题**
|
||||
**※10、修复出现星火应用商店和官方应用商店反复提示更新死循环的问题**
|
||||
**※11、新增评分分数预测功能(不准)**
|
||||
**※12、更换程序接口**
|
||||
13、更新组件安装的离线列表
|
||||
14、不再强制依赖深度终端,只做推荐安装
|
||||
15、基于生态活动适配脚本的打包器在打包完成后会弹出对话框提示打包完成
|
||||
16、优化打包器的 spark wine helper 依赖设置方式
|
||||
17、新增 RegShot(注册表比对工具)
|
||||
18、添加 Wine 运行器评分数据的搜索功能
|
||||

|
||||
|
||||
### 2.1.0-2(2022年09月05日)
|
||||
**※1、修复终端调用问题**
|
||||
|
||||
### 2.1.0-1(2022年09月03日)
|
||||
**※1、删除多余图标**
|
||||
**※2、修复将打包文件生成目录设置为 / 等重要目录导致删库的问题**
|
||||
3、修复了打包器浏览按钮闪退、生成的 postrm 有误的问题
|
||||
4、支持在输入信息时自动生成 deb 保存路径
|
||||
|
||||
### 2.1.0(2022年08月26日)
|
||||
**※1、新增新的 Wine 安装器,并支持将安装的 Wine 打包到 Wine 程序 deb 包中**
|
||||
**※2、Wine 打包器打包 Windows 应用支持将 Wine 打包入 deb 内,可以不依赖 Wine(一般不推荐把 Wine 打包入内,推荐用依赖的形式),并支持设置自定义依赖和生成模板**
|
||||
**※3、开始初步多语言支持**
|
||||
**※4、修复了在没有安装任何 Wine 的情况下使用高级功能导致程序闪退的问题**
|
||||
**※5、支持云端自动获取数据配置 Wine 容器**
|
||||
**※6、支持手动导入配置文件自动配置 Wine 容器**
|
||||
**※7、新增从云端下载 Dll 的功能**
|
||||
**※8、修复了 Dll 提取工具不会在 winecfg 中添加原装的问题**
|
||||
9、修改错别字(图形话=>图形化)
|
||||
10、修复评分功能名称为空也可以上传评分的问题
|
||||
11、去除 toilet 依赖,使在 Deepin 23 Preview 上运行更佳
|
||||
12、支持删除所有由 Wine 创建的启动器快捷方式
|
||||

|
||||
|
||||
### 2.0.0-2(2022年08月16日)
|
||||
修复了在 deepin 23 安装缺少`toilet`依赖导致无法安装的问题,更多更新内容请见 2.0.0
|
||||
|
||||
### 2.0.0-1(2022年08月15日)
|
||||
修复了缺失`python3-psutil`依赖的问题,更多更新内容请见 2.0.0
|
||||
|
||||
### 2.0.0(2022年08月13日)
|
||||
**※1、修复了重复路径一直自动重复增加的问题**
|
||||
**※2、修复了两个打包器打包错误的问题(非基于生态活动脚本的为 wine 导入错误,基于生态活动脚本的为架构有误导致打包出的 deb 无法打包)**
|
||||
**※3、适配了部分非 i386、amd64 架构计算机的 UOS 系统使用的 wine 并支持打包非 i386、amd64 架构计算机的 UOS 系统使用的 wine 程序 deb 包**
|
||||
**※4、支持安装 dxvk(遵守 Zlib 开源协议)**
|
||||
**※5、运行器、打包器(包括非基于生态适配活动脚本制作的)支持使用 Wine 生态适配活动的容器清理脚本**
|
||||
**※6、支持更加简易的安装最新版的 WineHQ**
|
||||
**※7、增加字体商店**
|
||||
**※8、新增查看可执行文件运行情况的功能**
|
||||
9、支持不显示没有安装的 Wine,方便用户识别
|
||||
10、修改了 Wine 的顺序使其更加合理
|
||||
11、支持删除安装 exe 后在启动器的快捷方式
|
||||
12、优化了 Wine 打包器(非基于生态活动脚本)对容器的处理
|
||||
13、修复了 Wine 打包器(非基于生态活动脚本)打包出的 deb 安装时显示为解压缩后会消耗 0 B 的额外空间以及 postrm 的一些问题
|
||||
14、支持删除无需使用的程序组件
|
||||
15、支持组件/运行库下载后缓存方便下次使用(可以清理)
|
||||
16、点击获取图标按钮后会自动读取 exe 框的程序图标(不支持相对路径和包内路径,只支持绝对路径)
|
||||

|
||||
|
||||
### 1.8.0(2022年08月03日)
|
||||
**※1、修复了打包器(非基于活动脚本) control、postrm 写入文件颠倒的问题**
|
||||
**※2、内置一个微型的 Windows 应用商店(应用来源:腾讯软件管家)**
|
||||
**※3、初步支持 deepin 23(添加基于 linglong Wine 的运行方式,需要安装一个 linglong 包的 使用 Wine 应用;添加从 Deepin 20 源获取 Wine 的安装方式)**
|
||||
4、更新了打包器(非基于活动脚本)调用星火 spark-wine-helper 的 run.sh 脚本格式
|
||||
5、修复了打包器(基于活动脚本)在 dde-top-panel 和 dde-globalmenu-service 下无法打开帮助提示的问题
|
||||
6、支持屏蔽 Wine 默认的 Mono、Gecko 安装器(屏蔽方法来自星火应用商店审核组和提供的新 run.sh 标准)
|
||||

|
||||

|
||||
|
||||
### 1.7.1(2022年07月29日)
|
||||
**※1、更换为 @PossibleVing 提供的程序图标**
|
||||
**※2、修改了统信 Wine 生态适配活动的脚本,支持在非 UOS 系统打包**
|
||||
**※3、修复了打包器在打包应用未指定图标的情况下显示对话框后强制退出的问题**
|
||||
4、修改 .net framework 3.5 的安装包,从在线版改为本地版
|
||||
5、支持设置主题
|
||||
6、添加 Geek Uninstaller 手动升级脚本
|
||||
|
||||

|
||||
|
||||
### 1.7.0(2022年07月19日)
|
||||
<b>※1、界面大改造,从使用 Tkinter 改为 Qt,参考了 @134******28 和 @sgb76 提供的设计方案和代码</b>
|
||||
|
||||
**※2、添加了基于 UOS 生态适配活动打包脚本的打包器,以及基于 Virtualbox 的简易 Windows 镜像安装工具**
|
||||
**※3、将 pip 由阿里源改为华为源,提升下载安装速度,并删除使用 pip 下载库的功能(已不需要,废弃)**
|
||||
4、添加 @delsin 和 @神末shenmo 建议的 postrm 脚本
|
||||
5、优化多屏窗口居中问题
|
||||
6、修复 1.6.0 程序无法保存设置的问题
|
||||
7、修复 1.6.0 的更新程序无法正常更新的问题
|
||||
8、升级 Geek Uninstaller 版本
|
||||

|
||||
|
||||
|
||||
### 1.6.0(2022年07月10日)
|
||||
**※1、新增程序感谢、谢明以及程序的建议和问题反馈和内置更新程序**
|
||||
**※2、支持 winetricks 指定 Wine 打开**
|
||||
**※3、新增窗口透明工具,感谢@a2035274 和 @虚幻的早晨 在论坛的讨论**
|
||||
**※4、支持在指定容器、Wine 安装 MSXML**
|
||||
**※5、支持启用/关闭 opengl(感谢@zhangs 在论坛发帖)以及支持安装/卸载 winbind**
|
||||
**※6、添加云沙箱的网站链接快捷方式**
|
||||
**※7、支持从星火应用商店源安装 Windows 常见字体**
|
||||
8、优化窗口布局以及默认显示位置
|
||||
9、支持打开指定容器、Wine 的资源管理器
|
||||

|
||||
|
||||
### 1.5.3(2022年07月07日)
|
||||
**※1、新增专门的程序设置,支持设置 Wine 容器架构、DEBUG 信息是否输出、默认的 Wine、默认容器路径、是否使用终端打开和 Wine 参数**
|
||||
**※2、修复了 wine 打包器的控件禁用不全和打包的 deb 用户残留的问题**
|
||||
**※3、新增暗黑主题**
|
||||
4、合并了 deepin wine 文管设置器
|
||||

|
||||
|
||||
### 1.5.2(2022年07月06日)
|
||||
**※1、添加并翻新了 deepin-wine5 打包器,改为 wine 打包器,支持常见 wine 的打包**
|
||||
**※2、新增 Visual Studio C++ 的安装程序**
|
||||
**※3、新增从系统安装镜像提取 DLL 到 wine 容器的功能(当前只支持 Windows XP 和 Windows Server 2003 的官方安装镜像)**
|
||||
4、修复了安装星火应用商店的 wine 运行器右键打开方式没有 wine 运行器选项的问题
|
||||
5、新增脚本,优化 deepin terminal 调用本程序脚本显示不佳的问题
|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
### 1.5.1(2022年07月04日)
|
||||
**※1、支持打开 spark-wine7-devel 的专门缩放设置(如未安装则此按钮禁用)**
|
||||
**※2、支持提取选择的 exe 文件的图标**
|
||||
**※3、支持向指定的 wine 容器安装 mono、gecko、.net framework(此功能在菜单栏“Wine”中,卸载只需要使用程序的卸载按钮打开 Geek Uninstaller 即可)**
|
||||
**※4、支持指定特定的 wine 容器调用 winetricks**
|
||||
**※5、在没有指定 wine 容器的情况下,将自动设置为 ~/.wine**
|
||||
6、新增 ukylin-wine
|
||||
7、将默认选择的 wine 改为 deepin-wine6 stable
|
||||
8、支持打开指定容器的 winecfg、winver、regedit、taskmgr
|
||||
9、双击使用 wine 运行器打开 exe(不知道能不能生效)
|
||||

|
||||
|
||||
|
||||
### 1.5.0(2022年07月03日)
|
||||
**※1、支持显示 wine 程序运行时的返回内容**
|
||||
**※2、优化打包方式,减少从 pip 安装的库,并将 pip 源设为阿里源提升下载速度**
|
||||
**※3、新增 spark-wine7-devel**
|
||||
**※4、支持从程序启动用于安装 wine 的程序(在菜单栏的“程序”)**
|
||||
5、优化 wine 安装脚本,在安装星火应用商店的 wine 时支持检测是否有 ss-apt-fast,如果有就调用替代 apt 提升安装速度
|
||||
6、支持关闭指定 wine 的进程,以及访问对应 wine 容器的目录和字体目录
|
||||
7、从生成shell脚本改为升级到desktop文件
|
||||

|
||||
|
||||
|
||||
### 1.4.0(2021年07月27日)
|
||||
**※1、修改了 wine 选项的说明和 wine 的启动方式;**
|
||||
**※2、设置了窗口主题;**
|
||||
**※3、修改了打包以及 .desktop 文件**
|
||||
4、删除了以前的残略调试代码;
|
||||
5、优化了 wine 列表的显示流程;
|
||||
6、更新了“关于”窗口
|
||||
7、更新了提示内容
|
||||
8、在 gitee/github 仓库上添加了 wine 安装脚本
|
||||

|
||||
|
||||
### 1.3.1(2021年05月23日)
|
||||
1、添加了历史记录,使用更加方便
|
||||
2、增加“更新内容”项
|
||||
3、支持浏览窗口的默认路径为上次访问的路径
|
||||
4、支持清空历史记录
|
||||
5、代码结构优化
|
||||
6、修改了控件大小
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
### 1.3.0(2021年05月22日)
|
||||
1. 修改了窗口显示控件的库(从 tkinter 到 tkinter.ttk)
|
||||
2. 添加了更多 wine 可以选择(deepin-wine、deepin-wine5、wine、wine64、deepin-wine5-stable、deepin-wine6-stable)
|
||||
3. 修改了程序的提示信息
|
||||

|
||||
|
||||
### 1.2.0(2021年03月14日)
|
||||
1. 修改布局方式
|
||||
2. 轻度梳理代码布局
|
||||

|
||||
|
||||
### 1.1.2 (未发布发行版)
|
||||
1. 进行了细节优化
|
||||
|
||||
### 1.1.1(2021年01月31日)
|
||||
1. 使用多线程,防止界面假死
|
||||
2. 添加软件图标
|
||||

|
||||
|
||||
### 1.1.0(2021年01月29日)
|
||||
1. 修改了代码的部分内容,使其支持容器路径可带空格无需“\”转义,以及支持手动保存运行脚本到桌面
|
||||
|
||||
### 1.0.0(2021年01月29日)
|
||||
1. 实现内容
|
||||
|
||||
## 源码安装教程
|
||||
1. 安装需要的依赖
|
||||
```bash
|
||||
sudo apt install git make
|
||||
```
|
||||
2. 下载仓库
|
||||
```bash
|
||||
git clone https://gitee.com/gfdgd-xi/deep-wine-runner.git
|
||||
```
|
||||
|
||||
3. 运行本程序
|
||||
|
||||
```
|
||||
cd deep-wine-runner
|
||||
chmod 777 main.py
|
||||
./main.py
|
||||
```
|
||||
3. 从源码运行程序(如果是从源码安装请跳过这一步)
|
||||
```bash
|
||||
make depend
|
||||
make run
|
||||
```
|
||||
4. 从源码安装程序
|
||||
```bash
|
||||
make install
|
||||
```
|
||||
## Openkylin 如何安装这个 Wine 运行器?
|
||||
首先添加作者的源:
|
||||
Gitlink 源(国内推荐):
|
||||
```bash
|
||||
wget https://code.gitlink.org.cn/gfdgd_xi/gfdgd-xi-apt-mirrors/raw/branch/master/sources/gitlink.sh && bash gitlink.sh && rm gitlink.sh
|
||||
```
|
||||
Github 源(国外推荐):
|
||||
```bash
|
||||
wget https://gfdgd-xi.github.io/gfdgd-xi-apt-mirrors/sources/github.sh && bash github.sh && rm github.sh
|
||||
```
|
||||
上面二选一,添加完后执行
|
||||
```bash
|
||||
sudo apt install spark-deepin-wine-runner
|
||||
```
|
||||
即可自动补全依赖安装(说实话 openkylin 缺的依赖好多)
|
||||
|
||||
## 对于 Deepin/UOS(AMD64 平台)小白如何使用该程序?
|
||||
下面是送给小白的 wine 运行器简单使用方法,先声明,wine 并***不能完美的运行所有 exe 文件***,利用此 wine 运行器简易安装可执行文件的方法如下:
|
||||
|
||||
1. 安装本程序
|
||||
2. 在应用商店里随便安装一个 QQ 或者微信等基于 deepin-wine6-stable 打包的应用
|
||||

|
||||
3. 找到需要安装的 exe,双击或者右键=》打开方式=》wine 运行器打开
|
||||

|
||||
4. 点击“运行程序”即可
|
||||

|
||||
|
||||
|
||||
## 稍微讲一下目前 deepin 23 Preview 运行自定义 exe 的方法(Wine 运行器均已支持)
|
||||
|
||||
### 方法一
|
||||
|
||||
随便安装一个 linglong 格式包的 wine 程序(要记住包名),然后在终端输入
|
||||
|
||||
```bash
|
||||
ll-cli run 包名 --exec '/bin/deepin-wine6-stable'
|
||||
```
|
||||
|
||||
即可,缺陷可看运行器上方小提示第 6 点
|
||||
|
||||
#### 使用说明
|
||||
### 方法二(容易翻车)
|
||||
|
||||
(均在软件的“小提示”里有说明)
|
||||
1. 使用终端运行该程序,可以看到 deepin-wine(deepin-wine5)以及程序本身的提示和报错
|
||||
添加 Deepin 20 的**官方源和商店源**,然后输入如下的命令:**切记不能sudo apt upgrade**,会出现的问题可以看运行器的小提示第 7 点,以及无法保证所有 Wine 均可运行
|
||||
|
||||
```bash
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt update
|
||||
# 安装普通的 Wine
|
||||
sudo apt install wine
|
||||
# 安装 deepin-wine5-stable(本机测试 X64 的 Wine 跑不了)
|
||||
sudo apt install deepin-wine5-stable
|
||||
# 安装 deepin-wine6-stable
|
||||
sudo apt install deepin-wine6-stable
|
||||
```
|
||||
**使用完后最好删除掉 Deepin 20 的官方源和商店源,防止出问题**
|
||||
可以看 [@ThinkYoung](user/18570) 写的 https://bbs.deepin.org/post/241148,可以参考借鉴
|
||||
|
||||
#### 特技
|
||||
### 方法三
|
||||
我不知道了,希望能有大佬提供更好的解决方案
|
||||
|
||||
难道是使用 tkinter 进行构建吗?所以没有咯
|
||||
## 下载链接
|
||||
Gitee:https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||
Github:https://github.com/gfdgd-xi/deep-wine-runner
|
||||
Gitlink:https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
||||
蓝奏云:https://gfdgdxi.lanzouj.com/b01nz7y3e,密码:7oii
|
||||
星火应用商店:spk://store/tools/spark-deepin-wine-runner
|
||||
|
||||
## 更多
|
||||
+ https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||
+ https://github.com/gfdgd-xi/deep-wine-runner
|
||||
+ https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
||||
|
||||
## 程序下载量
|
||||

|
||||
|
||||
## Star 一下吧
|
||||
开发不易,原创艰难,给一个 Star 吧,你的 Star 是我继续开发的动力
|
||||
[](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers)
|
||||
|
||||
# ©2020-Now
|
||||