Compare commits
40 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cc549527d | |||
| 43e473ad39 | |||
| d78916f4b0 | |||
| bf370e9a91 | |||
| 84f71c2043 | |||
| e5231d7846 | |||
| b653bcbb80 | |||
| ad9deaed81 | |||
| 1b9e106d2a | |||
| c51cf18f4c | |||
| 4217f58c2c | |||
| c0ea459dae | |||
| ff0a578890 | |||
| cacc3ac5af | |||
| f84ff6c809 | |||
| 8e5dd50f19 | |||
| c5a66a7850 | |||
| 0cdb9b1f42 | |||
| 0e17b327fb | |||
| a90fb2ae37 | |||
| a5fd2522dd | |||
| 1352fd7906 | |||
| 50cdbd13f4 | |||
| 386022ea36 | |||
| 9d330cd147 | |||
| dc660bb1f1 | |||
| 249a98c915 | |||
| 8b9a54ed41 | |||
| 51364b5365 | |||
| 9768f9b505 | |||
| 3dc900f2a6 | |||
| c5c0f6ced6 | |||
| e7761599ae | |||
| ae05629960 | |||
| 57d1af8a16 | |||
| 6640fcb602 | |||
| 03f91159d4 | |||
| 3a5ef5abb1 | |||
| 664ee477db | |||
| fe5c5c71bd |
@@ -57,30 +57,37 @@ 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")
|
||||
if os.system("which wine > /dev/null"):
|
||||
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install wine -y")
|
||||
if os.system("which deepin-wine > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine -y")
|
||||
if os.system("which deepin-wine5 > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine5(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if os.system("which deepin-wine5-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine5-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine5-stable -y")
|
||||
if os.system("which deepin-wine6-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine6-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
if os.system("which spark-wine7-devel > /dev/null"):
|
||||
print("请问是否要安装 spark-wine7-devel(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
InstallSparkWine("spark-wine7-devel")
|
||||
if os.system("which ukylin-wine > /dev/null"):
|
||||
print("请问是否要安装 ukylin-wine(需要添加 ukylin 源,但因为可能会导致系统问题,将不会自动添加)?[Y/N]", end=" ")
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install ukylin-wine -y")
|
||||
print("全部完成!")
|
||||
@@ -19,13 +19,20 @@ import req as requests
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
from UI.AutoConfig import *
|
||||
from Model import *
|
||||
try:
|
||||
import PyQt5.QtWebEngineWidgets as QtWebEngineWidgets
|
||||
webeng = True
|
||||
except:
|
||||
print("未安装此依赖库")
|
||||
webeng = False
|
||||
|
||||
urlSourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/auto", # Gitlink 源
|
||||
"https://gitee.com/gfdgd-xi/deep-wine-runner-auto-configuration-script/raw/master/", # Gitee 源
|
||||
"https://gfdgd-xi.github.io/deep-wine-runner-auto-configuration-script/", # Github 源
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/auto/", # 备用源1,纯 IPv6 源
|
||||
"http://120.25.153.144/deep-wine-runner-auto-configuration-script/", # 备用源2,纯 IPv6 源
|
||||
"http://120.25.153.144/deep-wine-runner-auto-configuration-script/", # 备用源2
|
||||
"http://gfdgdxi.free.idcfengye.com/wine-runner-list/auto/", # 备用源 3
|
||||
"http://127.0.0.1/wine-runner-list/auto/" # 本地测试源
|
||||
]
|
||||
urlSources = urlSourcesList[0]
|
||||
@@ -98,6 +105,7 @@ class ProgramRunStatusUpload():
|
||||
|
||||
class InformationWindow():
|
||||
def ShowWindow():
|
||||
#webeng = False
|
||||
# 获取选中项
|
||||
try:
|
||||
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
|
||||
@@ -110,11 +118,13 @@ class InformationWindow():
|
||||
if i[0] == choose:
|
||||
fileName = i[1]
|
||||
break
|
||||
aboutHtml = ""
|
||||
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
|
||||
aboutHtml = str(about)
|
||||
if not "<" in about:
|
||||
# 非 Html 标签
|
||||
for i in about.splitlines():
|
||||
@@ -145,20 +155,49 @@ class InformationWindow():
|
||||
starHtml = ""
|
||||
if maxHead > 5:
|
||||
for i in range(end):
|
||||
starHtml += f"<img src='{programPath}/Icon/BadStar.svg' width=50>\n"
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/BadStar.svg' width=50>\n"
|
||||
else:
|
||||
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"
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/Star.svg' width=50>\n"
|
||||
else:
|
||||
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>"
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/UnStar.svg' width=50>"
|
||||
else:
|
||||
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()
|
||||
if webeng:
|
||||
informationText = QtWebEngineWidgets.QWebEngineView()
|
||||
print(aboutHtml)
|
||||
if aboutHtml[:7] == "Visit: ":
|
||||
url = aboutHtml[7:].splitlines()[0]
|
||||
print(url)
|
||||
informationText.setUrl(QtCore.QUrl(url.strip()))
|
||||
else:
|
||||
#informationText.linkClicked.connect(lambda: print("a"))
|
||||
try:
|
||||
with open("/tmp/deepin-wine-runner-information.html", "w") as file:
|
||||
file.write(about)
|
||||
informationText.setUrl(QtCore.QUrl("file:///tmp/deepin-wine-runner-information.html"))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
informationText.setHtml(about)
|
||||
#informationText.urlChanged.connect(lambda: informationText.setUrl(QtCore.QUrl("https://gfdgd-xi.github.io")))
|
||||
else:
|
||||
informationText = QtWidgets.QTextBrowser()
|
||||
informationText.setHtml(about)
|
||||
uploadFen = QtWidgets.QPushButton("提交评分")
|
||||
uploadFen.clicked.connect(lambda: ProgramRunStatusUpload.ShowWindow(fileName, choose))
|
||||
informationText.setHtml(about)
|
||||
|
||||
#informationText.setUrl(QtCore.QUrl("https://gfdgd-xi.github.io"))
|
||||
messageLayout.addWidget(informationText)
|
||||
messageLayout.addWidget(uploadFen)
|
||||
message.setWindowTitle(f"关于“{choose}”的介绍")
|
||||
@@ -329,7 +368,7 @@ def readtxt(path):
|
||||
|
||||
def ChangeSources():
|
||||
global urlSources
|
||||
sources = [ui.actionGitlink, ui.actionGitee, ui.actionGithub, ui.action_IPv6, ui.action_2, ui.action]
|
||||
sources = [ui.actionGitlink, ui.actionGitee, ui.actionGithub, ui.action_IPv6, ui.action_2, ui.action_3, ui.action]
|
||||
for i in range(0, len(sources)):
|
||||
if sources[i].isChecked():
|
||||
urlSources = urlSourcesList[i]
|
||||
@@ -372,7 +411,9 @@ if __name__ == "__main__":
|
||||
sourcesGroup.addAction(ui.actionGitlink)
|
||||
sourcesGroup.addAction(ui.actionGitee)
|
||||
sourcesGroup.addAction(ui.actionGithub)
|
||||
sourcesGroup.addAction(ui.action_IPv6)
|
||||
sourcesGroup.addAction(ui.action_2)
|
||||
sourcesGroup.addAction(ui.action_3)
|
||||
sourcesGroup.addAction(ui.action)
|
||||
sourcesGroup.triggered.connect(ChangeSources)
|
||||
sourcesGroup.setExclusive(True)
|
||||
|
||||
122
BuildDesktop.py
Executable file
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月20日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 PyQt5 构建
|
||||
#################################################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
desktopList = []
|
||||
desktopUsrList = []
|
||||
|
||||
def GetDesktopList(path):
|
||||
for i in os.listdir(path):
|
||||
if os.path.isdir(f"{path}/{i}"):
|
||||
GetDesktopList(f"{path}/{i}")
|
||||
if os.path.isfile(f"{path}/{i}"):
|
||||
try:
|
||||
desktop = {}
|
||||
with open(f"{path}/{i}") as file:
|
||||
things = file.read()
|
||||
for k in things.splitlines():
|
||||
if not "=" in k:
|
||||
continue
|
||||
desktop[k[:k.index("=")].lower()] = k[k.index("=") + 1:]
|
||||
desktopList.append([desktop["Name".lower()], desktop["Icon".lower()], desktop["Exec".lower()], f"{path}/{i}"])
|
||||
except:
|
||||
traceback.print_exc()
|
||||
delButton.setEnabled(len(desktopList))
|
||||
|
||||
class DesktopList(QtCore.QThread):
|
||||
show = QtCore.pyqtSignal(int)
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
if os.path.exists(f"{homePath}/.local/share/applications"):
|
||||
GetDesktopList(f"{homePath}/.local/share/applications")
|
||||
self.show.emit(0)
|
||||
|
||||
def ShowDesktop(temp):
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if not len(desktopList):
|
||||
item = QtGui.QStandardItem("无")
|
||||
nmodel.appendRow(item)
|
||||
y = 0
|
||||
for i in desktopList:
|
||||
#item = QtGui.QStandardItem(QtGui.QIcon(i[1]), i[0])
|
||||
#nmodel.appendRow(item)
|
||||
if os.path.exists(i[1]):
|
||||
nmodel.setItem(y, 0, QtGui.QStandardItem(QtGui.QIcon(i[1]), i[0]))
|
||||
else:
|
||||
nmodel.setItem(y, 0, QtGui.QStandardItem(QtGui.QIcon.fromTheme(i[1]), i[0]))
|
||||
nmodel.setItem(y, 1, QtGui.QStandardItem(i[2]))
|
||||
nmodel.setItem(y, 2, QtGui.QStandardItem(i[3]))
|
||||
y += 1
|
||||
nmodel.setHeaderData(0, QtCore.Qt.Horizontal, "程序名")
|
||||
nmodel.setHeaderData(1, QtCore.Qt.Horizontal, "运行路径")
|
||||
nmodel.setHeaderData(2, QtCore.Qt.Horizontal, ".desktop 文件所在路径")
|
||||
nmodel.setColumnCount(3)
|
||||
desktopListView.setModel(nmodel)
|
||||
|
||||
def GetDesktopThread():
|
||||
global desktop
|
||||
desktop = DesktopList()
|
||||
desktop.show.connect(ShowDesktop)
|
||||
desktop.start()
|
||||
|
||||
def DeleteButton():
|
||||
index = desktopListView.currentIndex().row()
|
||||
if index < 0:
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "未选中任何项")
|
||||
return
|
||||
print(index)
|
||||
print(desktopList[index][3])
|
||||
#desktopListView.rowMoved(index)
|
||||
|
||||
#desktopListView.removeRow(index)
|
||||
try:
|
||||
os.remove(desktopList[index][3])
|
||||
del desktopList[index]
|
||||
ShowDesktop(0)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
homePath = os.getenv("HOME")
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
#GetDesktopList(f"{homePath}/.local/share/applications")
|
||||
#print(desktopList)
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
window = QtWidgets.QMainWindow()
|
||||
widget = QtWidgets.QWidget()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
delButton = QtWidgets.QPushButton("删除指定图标")
|
||||
delButton.clicked.connect(DeleteButton)
|
||||
#desktopListView = QtWidgets.QListView()
|
||||
desktopListView = QtWidgets.QTableView()
|
||||
desktopListView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
desktopListView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)#(QAbstractItemView::SelectRows)
|
||||
layout.addWidget(desktopListView, 0, 0, 1, 4)
|
||||
layout.addWidget(delButton, 1, 3, 1, 1)
|
||||
widget.setLayout(layout)
|
||||
window.setCentralWidget(widget)
|
||||
window.setWindowTitle("图标管理")
|
||||
window.resize(int(window.frameGeometry().width() * 1.5), int(window.frameGeometry().height() * 1.2))
|
||||
window.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
window.show()
|
||||
GetDesktopThread()
|
||||
app.exec_()
|
||||
BIN
CheckDLL/Check.exe
Executable file
90
CheckDLL/CheckCommand.py
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月18日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 PyQt5 构建
|
||||
#################################################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print("参数不足")
|
||||
sys.exit(1)
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("帮助:")
|
||||
print("[exe path] [option]")
|
||||
print("--json 以 json 格式输出")
|
||||
print("-w [wine botton] [wine program path]")
|
||||
|
||||
jsonPrint = "--json" in sys.argv
|
||||
if jsonPrint:
|
||||
del sys.argv[sys.argv.index("--json")]
|
||||
lists = []
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
checkDll = False
|
||||
if "-w" in sys.argv:
|
||||
wineCommand = sys.argv.index("-w")
|
||||
wineBotton = os.getenv("HOME")
|
||||
wineProgram = "deepin-wine6-stable"
|
||||
checkDll = True
|
||||
try:
|
||||
wineBotton = sys.argv[wineCommand + 1]
|
||||
wineProgram = sys.argv[wineCommand + 2]
|
||||
except:
|
||||
pass
|
||||
badChar = [
|
||||
"(", "?", "*", "!", ")", "&", "'", "\""
|
||||
]
|
||||
with open(sys.argv[1], "rb") as file:
|
||||
while True:
|
||||
things = file.readline()
|
||||
if things == b"":
|
||||
break
|
||||
for n in [".dll", ".DLL"]:
|
||||
if n.encode() in things:
|
||||
# 提取 DLL 名称
|
||||
for i in str(things[1: -2]).split("\\x"):
|
||||
charBad = False
|
||||
for b in badChar:
|
||||
if b in i:
|
||||
charBad = True
|
||||
if n in i and not charBad and i[0] != "/":
|
||||
name = i[2: ].replace(",{M", "").replace("+", "")
|
||||
# 文件路径合法性检测
|
||||
|
||||
try:
|
||||
dllName = name[:name.index(".dll") + 4]
|
||||
except:
|
||||
try:
|
||||
dllName = name[:name.index(".DLL") + 4]
|
||||
except:
|
||||
dllName = name
|
||||
|
||||
if dllName.lower() == ".dll":
|
||||
continue
|
||||
if dllName in lists:
|
||||
continue
|
||||
if checkDll:
|
||||
if jsonPrint:
|
||||
if os.system(f"WINEPREFIX='{wineBotton}' {wineProgram} '{programPath}/Check.exe' '{dllName}' > /dev/null 2>&1"):
|
||||
lists.append(dllName)
|
||||
continue
|
||||
else:
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wineProgram} '{programPath}/Check.exe' '{dllName}'")
|
||||
lists.append(dllName)
|
||||
elif jsonPrint:
|
||||
lists.append(dllName)
|
||||
continue
|
||||
else:
|
||||
print(dllName)
|
||||
lists.append(dllName)
|
||||
if jsonPrint:
|
||||
print(json.dumps(lists))
|
||||
9
CheckDLL/bash/mfc100.dll.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 更新时间:2022年11月19日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
installvcpp 4
|
||||
info 提示 修复完成!重新检测即可
|
||||
9
CheckDLL/bash/mfc42.dll.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 更新时间:2022年11月03日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
installother 2
|
||||
info 提示 修复完成!重新检测即可
|
||||
9
CheckDLL/bash/msvbvm60.dll.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 更新时间:2022年11月19日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
installvb 4
|
||||
info 提示 修复完成!重新检测即可
|
||||
451
CheckDLL/lists.json
Normal file
@@ -0,0 +1,451 @@
|
||||
{
|
||||
"check": "",
|
||||
"aaaamon.dll": "描述: aaaamon.dll是Aaaa监视软件动态链接库文件相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"activeds.dll": "描述: activeds.dll是活动目录服务相关应用程序COM接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"actxprxy.dll": "描述: actxprxy.dll是Marshalingx ActiveX控件COM接口相关文件。\n属于: Windows ActiveX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"adsmsext.dll": "描述: adsmsext.dll是LDAP协议支持相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advert.dll": "描述: advert.dll是一个广告软件相关文件,会在Internet Explorer浏览器上显示广告。\n属于: Aureate \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"amovie.dll": "描述: amovie.ocx是应用在Windows 9x平台的多媒体和视频播放技术相关文件。\n属于: IE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ash.dll": "描述: ash.dll是Bankash木马相关文件,该木马允许攻击者访问你的计算机,窃取密码和个人数据。\n属于: Bankash Trojan \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ati_d3d.dll": "描述: ati_d3d.dll是ATI显示卡3D效果支持相关文件。\n属于: ATI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avicap.dll": "描述: avicap.dll是Windows API应用程序接口,用于截取AVI视频和摄像头及其它视频硬件设备的视频。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avifil32.dll": "描述: avifil32.dll是AVI视频支持相关模块。\n属于: Microsoft AVI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awfxrn32.dll": "描述: awfxrn32.dll是IFAX文件传输接口相关文件。\n属于: 未知N/A \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awlft332.dll": "描述: awlft332.dll是本地传真程序接口相关文件。\n属于: Windows 98,95 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awlhut32.dll": "描述: awlhut32.dll是ASN.1数据编码和解码相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awutil32.dll": "描述: awutil32.dll是微软Microsoft传真应用程序相关文件。\n属于: Microsoft Fax \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"batmeter.dll": "描述: batmeter.dll是电池状态信息管理相关文件,出现在BatMeterCapabilities、CreateBatMeter、DestroyBatMeter和PowerCapabilities等电池厂家的程序中。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bib.dll": "描述: bib.dll是Adobe Acrobat界面相关文件。\n属于: Adobe Acrobat \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"browselc.dll": "描述: browselc.dll是Windows Shell壳浏览用户界面相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"btvid_32.dll": "描述: btvid_32.dll是Brooktree视频卡I2C和GPIO应用程序接口相关文件。\n属于: Brooktree \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cabinet.dll": "描述: cabinet.dll是Cab压缩包应用程序接口相关文件。\n属于: Microsoft Cabinet File \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"calwin32.dll": "描述: calwin32.dll是NetWare应用程序相关动态链接库文件。\n属于: NetWare \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdaengine.dll": "描述: cdaengine.dll是WildTangent广告间谍软件相关文件。\n属于: WildTangent Spyware \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdosys.dll": "描述: cdosys.dll是应用程序CDO相关文件。\n属于: CDO \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdudflib.dll": "描述: cdudflib.dll是Direct CD光盘刻录软件相关支持文件。\n属于: DirectCD \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cmc.dll": "描述: cmc.dll是MAPI 1.0(Windows消息应用程序接口)公用消息调用相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d32-fw.dll": "描述: d32-fw.dll是雅虎通相关动态链接库文件文件,用于使雅虎通能够透过防火墙。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d8thk.dll": "描述: d3d8.dll是DirectX 8.0的Direct3D显示支持程序,用于支持游戏。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3dim700.dll": "描述: d3dim700.dll是微软Microsoft Direct3D图形系统相关模块。\n属于: Direct3D \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3dxof.dll": "描述: d3dxof.dll是Direct3D文件格式相关文件。\n属于: Direct3D \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dao3032.dll": "描述: dao3032.dll是Microsoft Jet DAO数据访问相关动态链接库文件。\n属于: Microsoft Jet \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dciman32.dll": "描述: dciman32.dll是显示控制界面管理相关文件,用于调制显示性能。\n属于: Display Control Interface Manager \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddrawex.dll": "描述: ddrawex.dll是Direct Draw显示相关模块。\n属于: DirectDraw \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"deskcp16.dll": "描述: deskcp16.dll是Windows 9x操作系统显示配置相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devenum.dll": "描述: devenum.dll是DirectShow相关模块,用于声音输入、声音输出和MIDI设备。\n属于: DirectShow \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devmgr.dll": "描述: devmgr.dll是Windows设备管理相关文件。\n属于: Windows Device Manager \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dispex.dll": "描述: dispex.dll是Visual Basic脚本COM接口相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dnsapi.dll": "描述: dnsapi.dll是DNS客户端应用程序接口API相关文件。\n属于: DNS Client \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dplay.dll": "描述: dplay.dll是DirectPlay播放器的支持文件。\n属于: Microsoft DirectPlay DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dplayx.dll": "描述: dplayx.dll是DirectPlay相关支持文件。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"drmclien.dll": "描述: drmclien.dll是播放包相关系统库文件。\n属于: DRM \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dxtmsft.dll": "描述: dxtmsft.dll是DirectX媒体图像转换相关支持文件。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dxtrans.dll": "描述: dxtrans.dll是DirectX相关转换模块。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ecomwr.dll": "描述: ecomwr.dll是McAfee杀毒软件相关动态链接库文件。\n属于: McAfee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"efsadu.dll": "描述: efsadu.dll是文件加密相关支持模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"encsplsh.dll": "描述: encsplsh.dll是微软Microsoft Encarta百科全书相关文件。\n属于: 未知N/A \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"esent.dll": "描述: esent.dll是VBA相关运行时支持文件。\n属于: VBA \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"expsrv.dll": "描述: expsrv.dll是VBA运行时相关服务文件。\n属于: VBA \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide.dll": "描述: glide.dll是3DFX (Voodoo)图像显示卡相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"googletoolbar1.dll": "描述: googletoolbar1.dll是google.com出品的搜索工具条相关文件。\n属于: Google Searching Facility \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gpsb2.dll": "描述: gpsB2.dll是VX2间谍软件相关程序。\n属于: VX2 Spyware Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hid.dll": "描述: hid.dll是USB的HID相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hotplug.dll": "描述: hotplug.dll是微软Microsoft Windows安全硬件移除相关文件,用于例如PCMCIA设备。\n属于: Microsoft Windows Opearting System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hpdcmon.dll": "描述: hpdcmon.dll是惠普HP打印机语言监视支持文件。\n属于: HP Printers \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iccvid.dll": "描述: iccvid.dll是Cinepak视频解码相关文件。\n属于: Cinepak Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icm32.dll": "描述: icm32.dll是显示器色彩调节和计算相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icqcore.dll": "描述: icqcore.dll是ICQ即时通讯软件图形用户界面相关文件。\n属于: ICQ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icqmapi.dll": "描述: icqmapi.dll是ICQ即时通讯软件消息相关应用程序接口文件。\n属于: ICQ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idapi32.dll": "描述: idapi32.dll是Borland数据库系统相关文件。\n属于: Borland Database Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idq.dll": "描述: idq.dll是ISAPI索引相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iedkcs32.dll": "描述: iedkcs32.dll是微软Microsoft Internet Explorer浏览器用户个性化相关文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ifc22.dll": "描述: ifc22.dll是罗技Logitech鼠标增强相关文件。\n属于: iFeel TouchSence Logitech mouse \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iforce2.dll": "描述: iforce2.dll是力反馈游戏手柄相关文件。\n属于: Games \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imeshare.dll": "描述: imeshare.dll是微软Microsoft Office输入法相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgcmn.dll": "描述: imgcmn.dll是基本图形相关库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgscan.dll": "描述: imgscan.ocx是ImagEdit扫描控制相关文件\n属于: Microsoft ImagEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imm32.dll": "描述: imm32.dll是微软Microsoft Windows输入法管理相关文件。\n属于: Microsoft Windows (IMM) \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetcomm.dll": "描述: inetcomm.dll是微软即时通讯相关应用程序接口文件。\n属于: Microsoft Internet Messaging API \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetcplc.dll": "描述: inetcplc.dll是Internet控制面板相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetwh32.dll": "描述: inetwh32.dll是Blue Sky软件在线帮助相关文件。\n属于: Blue Sky DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ir50_32.dll": "描述: ir50_32.dll是Intel Indeo视频解码相关文件。\n属于: Indeo video \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"itss.dll": "描述: itss.dll是微软Microsoft储存系统相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jgdw400.dll": "描述: jgdw400.dll是AOL .ART格式文件相关支持文件。\n属于: AOL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jit.dll": "描述: jit.dll是微软Java运行时相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jpeg1x32.dll": "描述: jpeg1x32.dll是JPEG图像相关库文件。\n属于: Microsoft JPEG \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"kbdus.dll": "描述: kbdus.dll是美式键盘相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lmf32v.dll": "描述: lmf32v.dll是Vertical Theories的广告程序。该程序监视你的浏览行为,并回传到其服务器进行分析。该进程也会弹出广告。\n属于: Hyperlinker Spyware Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"loadpowerprofile.dll": "描述: LoadPowerProfile (powrprof.dll)是微软Microsoft Windows 9x电源管理控制面板相关模块。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"localspl.dll": "描述: localspl.dll是本地打印机相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"locwin32.dll": "描述: locwin32.dll是Novell Netware客户端相关文件。\n属于: Novell NetWare Client API \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ls3df.dll": "描述: ls3df.dll是Mafia计算机游戏相关文件。\n属于: Game Mafia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lsasrv.dll": "描述: lsasrv.dll用于本地安全密码验证相关动态链接库文件。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ltwrp10n.dll": "描述: ltwrp10n.dll是Win32 LEADTOOLS图像库文件。\n属于: LEADTOOLS \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lz32.dll": "描述: lz32.dll是LZ解压和压缩相关文件。\n属于: LZ Expand/Compress \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lzexpand.dll": "描述: lz32.dll是LZ压缩格式解压和压缩相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapistub.dll": "描述: mapistub.dll是Windows NT的MAPI相关文件。\n属于: MAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapobj90.dll": "描述: mapobj90.dll是MapPoint相关软件。它是一个地图和分析工具。\n属于: MapPoint \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxlink3.dll": "描述: maxlink3.dll是Visioneer扫描仪相关库文件。\n属于: 未知N/A \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxrast.dll": "描述: maxrast.dll是Visioneer公司相关库文件,用于支持图像。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxutil.dll": "描述: maxutil.dll是Visioneer扫描仪相关库文件。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mdvmqlt.dll": "描述: mdvmqlt.dll是EA公司Battle Field 1942游戏相关文件。\n属于: Game BattleField \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42loc.dll": "描述: mfc42loc.dll是MFC应用程序本地化资源相关文件。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42u.dll": "描述: mfc42u.dll是微软MFC程序相关动态链接库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfcuia32.dll": "描述: mfcuia32.dll是对象链接与嵌入OLE的ANSI和Unicode对话框支持相关文件。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmcndmgr.dll": "描述: mmcndmgr.dll是MMC Node管理COM接口相关动态链接库文件。\n属于: MMC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmefxe.dll": "描述: mmefxe.ocx是微软多媒体控制相关COM接口文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"moricons.dll": "描述: moricons.dll是Windows NT图标资源文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mplvpx.dll": "描述: mplvpx.dll是微软Microsoft Media Player音乐回放相关动态链接库文件。\n属于: Microsoft Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mprddm.dll": "描述: mprddm.dll微软Microsoft路由和RAS拨号管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msacm.dll": "描述: msacm.dll是微软音频压缩相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscat32.dll": "描述: mscat32.dll是MakeCat.exe相关动态链接库文件。\n属于: MakeCat \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscms.dll": "描述: mscms.dll是微软图像色彩管理系统相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomctl.dll": "描述: mscomctl.ocx是公用ActiveX插件控制模块。\n属于: Windows ActiveX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msconf.dll": "描述: msconf.dll是NetMeeting网络会议程序相关文件。\n属于: Netmeeting \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdart32.dll": "描述: msdart32.dll是对象链接与嵌入数据库访问相关模块。\n属于: OLE DB \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdtcprx.dll": "描述: msdtcprx.dll是微软Microsoft分布式负载平衡相关文件。\n属于: MS DTC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgr3ge.dll": "描述: msgr3ge.dll是微软Office产品德语字符检查支持相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgrru32.dll": "描述: msgrru32.dll是微软Office产品俄语字符检查相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgsvc.dll": "描述: msgsvc.dll是NT信使服务管理相关文件,用于发送和接收信使消息。\n属于: Alerter \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mshtmled.dll": "描述: mshtmled.dll是微软HTML编辑相关模块。\n属于: HTML \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msieftp.dll": "描述: msieftp.dll是微软IE浏览器支持FTP访问相关文件。\n属于: Internet Explorer \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjet40.dll": "描述: msjet40.dll是Microsoft Jet数据库相关文件。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjt3032.dll": "描述: msjt3032.dll是微软Microsoft Jet数据库相关文件。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjter35.dll": "描述: msjter35.dll是微软Microsoft Jet数据库引擎相关文件。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msls31.dll": "描述: msls31.dll是Internet Explorer浏览器和字处理程序Unicode字符支持相关文件。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msnet32.dll": "描述: msnet32.dll是微软Microsoft 32位网络应用程序接口相关文件。\n属于: Microsoft Network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoert2.dll": "描述: msoert2.dll是微软Microsoft Outlook Express动态链接库文件。\n属于: Outlook Express \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msorcl32.dll": "描述: msorcl32.dll是Oracle 微软ODBC数据库相关文件。\n属于: ODBC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mspdb60.dll": "描述: mspdb60.dll是Microsoft Visual Studio编程数据库支持相关文件。.\n属于: Visual Studio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msrating.dll": "描述: msrating.dll是微软Microsoft网络安全等级和本地用户管理相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msrclr40.dll": "描述: msrclr40.dll是DAO 3.6数据库相关文件。\n属于: Microsoft Jet \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msrdo20.dll": "描述: msrdo20.dll是ODBC数据库支持相关文件。\n属于: ODBC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mssp3ge.dll": "描述: mssp3ge.dll是Lingsoft CSAPI字符检查相关文件。\n属于: Lingsoft \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msspel2.dll": "描述: msspel2.dll是Word 6.0字符校对检查相关文件。\n属于: Word \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mswsock.dll": "描述: mswsock.dll是Winsock网络服务相关文件。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mydocs.dll": "描述: mydocs.dll是我的文档文件夹用户解码相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"n32userl.dll": "描述: n32userl.dll是Norton AntiVirus反病毒软件相关模块。\n属于: Norton Antivirus \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netapi.dll": "描述: netapi.dll是Windows网络应用程序接口相关文件,用于访问微软网络。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netdtect.dll": "描述: netdtect.dll是网卡自动检测相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netevent.dll": "描述: netevent.dll是网络错误消息相关提醒模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netman.dll": "描述: netman.dll是网络连接管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netrap.dll": "描述: netrap.dll是网络远程管理协议相关模块。.\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netshell.dll": "描述: netshell.dll是网络连接管理Shell壳程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netwin32.dll": "描述: netwin32.dll是Novell NetWare网络库文件。\n属于: Novell NetWare Net Library \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"newdotnet.dll": "描述: newdotnet.dll是New.net应用程序相关动态链接库文件。\n属于: New.net \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ntdsapi.dll": "描述: ntdsapi.dll是分布式计算机处理环境的目录服务COM接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvqtwk.dll": "描述: NvQTwk.dll是Nvidia显示卡相关库文件。\n属于: Nvidia Graphics Library Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nwcalls.dll": "描述: nwcalls.dll是Novell NetWare应用程序接口相关文件,用于NCP连接文件服务器和客户端计算机。\n属于: NetWare API \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbcbcp.dll": "描述: odbcint.dll是ODBC数据库查询相关模块。\n属于: ODBC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbcint.dll": "描述: odbcint.dll是ODBC数据库查询相关模块。\n属于: Microsoft ODBC Resource DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbcjt32.dll": "描述: odbcint.dll是微软ODBC数据库查询相关模块。\n属于: Microsoft ODBC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole2.dll": "描述: ole2.dll是对象链接与嵌入相关模块。\n属于: Microsoft OLE 2.3.2 16/32 Interoperability Library \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oledlg.dll": "描述: ole2.dll是对象链接与嵌入OLE相关模块,用于公共对话框。\n属于: Microsoft OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p2bbnd.dll": "描述: p2bbnd.dll是Crystal数据报告相关模块。\n属于: Crystal Report \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p2sodbc.dll": "描述: p2sodbc.dll是ODBC数据Crystal报告相关模块。\n属于: Crystal Report \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"passfilt.dll": "描述: passfilt.dll是密码策略和保护相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pdh.dll": "描述: pdh.dll是登陆和硬件统计相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pdm.dll": "描述: pdm.dll是进程脚本调试管理相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"perfctrs.dll": "描述: perfctrs.dll是Windows登陆和硬件统计相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"perfproc.dll": "描述: perfproc.dll是登陆和硬件统计相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pifmgr.dll": "描述: pifmgr.dll是windows图标资源管理相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pnen3260.dll": "描述: pnen3260.dll是RealMedia Player播放器相关模块。\n属于: RealMedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pngu3263.dll": "描述: pngu3263.dll是Realnetworks RealPlayer播放器图形用户界面相关模块。\n属于: RealPlayer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pngu3266.dll": "描述: pngu3266.dll是RealMedia Player播放器相关模块。\n属于: RealMedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pperr.dll": "描述: pperr.dll是Visioneer 5300 USB接口扫描器设备相关模块。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"printui.dll": "描述: printui.dll是命令行方式安装打印机相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"prismxl.dll": "描述: prismxl.exe是Lanovation PrismXL相关服务,用于进行远程控制。\n属于: Lanovation PrismXL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pstprx32.dll": "描述: pstprx32.dll是微软Microsoft Outlook代理储存管理相关文件。\n属于: Microsoft Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ra32.dll": "描述: ra32.dll是RealAudio音频支持相关文件。\n属于: RealAudio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ragui32.dll": "描述: ragui32.dll是RealAudio音频高级支持文件。\n属于: RealAudio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasapi16.dll": "描述: rasapi16.dll是16位网络拨号应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasman.dll": "描述: rasman.dll是远程控制相关软件模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasscrpt.dll": "描述: rasscrpt.dll是网络拨号脚本相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"regsvr32.dll": "描述: regsvr32.dll是DLL添加辅助相关文件,用于注册和反注册DLL文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rmoc3260.dll": "描述: rmoc3260.dll是RealPlayer和Windows Media Player媒体回放相关COM接口文件。\n属于: Real Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rnaui.dll": "描述: rnaui.dll是网络拨号设置库文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rnr20.dll": "描述: rnr20.dll是微软Microsoft Windows Sockets 2.0的TCP/IP协议相关服务。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpcss.dll": "描述: rpcss.dll是分布式COM服务相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpmn3260.dll": "描述: rpmn3260.dll是RealNetworks公司RealPlayer产品动态链接库文件。\n属于: Real Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rsabase.dll": "描述: rsabase.dll是Windows 2000加密服务相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rsaenh.dll": "描述: rsaenh.dll是微软Microsoft增强加密服务相关文件,用于128位加密。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rtutils.dll": "描述: rtutils.dll是一个追踪API接口,用于输出诊断信息到微软Microsoft Windows NT/Windows 2000路由和远程控制服务。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rupdate.dll": "描述: rupdate.dll是McAfee产品相关文件,用于自动升级。\n属于: McAfee Products \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"samlib.dll": "描述: samlib.dll是安全认证管理应用程序接口API相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sendmail.dll": "描述: sendmail.dll是用于通过网站发送邮件的库文件。\n属于: Microsoft Windows IIS \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sens.dll": "描述: sens.dll是系统事件提醒服务相关库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sensapi.dll": "描述: sensapi.dll是系统事件提醒服务相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupwbv.dll": "描述: setupwbv.dll用于检查并修复Internet Explorer配置。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sfc.dll": "描述: sfc.dll用于校验和监视系统文件变更。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sfcfiles.dll": "描述: sfcfiles.dll是系统文件监视和验证相关程序。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sh31w32.dll": "描述: sh31w32.dll用于内存利用情况。\n属于: SmartHeap \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shell.dll": "描述: shell.dll是Windows Shell壳应用程序接口相关库文件,用于打开网页和文件。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shimgvw.dll": "描述: shimgvw.dll用于图像显示的COM接口程序。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"softpub.dll": "描述: softpub.dll是用于支持加密的动态链接库文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"speer.dll": "描述: Speer.dll是Solid Peer间谍软件相关文件。\n属于: Solid Peer spyware \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spin32.dll": "描述: spin32.ocx是Visual Basic语言的ActiveX控件。\n属于: Microsoft Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spmsg.dll": "描述: spmsg.dll是用于显示service packs补丁包消息的文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sqlsrv32.dll": "描述: sqlsrv32.dll是用于微软SQL服务ODBC驱动相关文件。\n属于: Microsoft SQL Server ODBC Driver \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ss32x25.dll": "描述: ss32x25.ocx是FarPoint技术相关文件,用于显示控制。\n属于: FarPoint \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"stclient.dll": "描述: stclient.dll是COM+配置安全客户端相关文件。\n属于: Microsoft COM+ \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"stobject.dll": "描述: stobject.dll是资源文件,用于图标等。\n属于: Microsoft Systray \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"storprop.dll": "描述: storprop.dll是用于更改DVD读取区域相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"streamci.dll": "描述: streamci.dll是安装流媒体硬件设备相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sysmon.dll": "描述: sysmon.ocx是系统性能监视的ActiveX控件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"system86.dll": "描述: system86.dll是内存分配库文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tapi.dll": "描述: tapi.dll是微软Windows电话服务相关模块。\n属于: Windows Telephony \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tdc.dll": "描述: tdc.ocx是Visual Basic应用程序相关表列数据ActiveX控件模块。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"thumbvw.dll": "描述: thumbvw.dll是文档缩略图察看相关动态链接库文件,用于在资源管理器中察看文档、JPEG文件等。\n属于: Thumbnail View \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tl32v20.dll": "描述: tl32v20.dll是DiskKeeper软件保护锁相关文件。\n属于: DiskKeeper \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"toolhelp.dll": "描述: toolhelp.dll是Windows默认数组应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"traffic.dll": "描述: traffic.dll是微软飞行模拟软件第三方模块。\n属于: Flight Simulator \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tsd32.dll": "描述: tsd32.dll是音频编码和解码相关文件。\n属于: TrueSpeech \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"txfaux.dll": "描述: txfaux.dll是微软Microsoft分布式处理相关文件。\n属于: MSDTC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"unrar.dll": "描述: unrar.dll是RAR压缩包解压相关文件。\n属于: UnRAR \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"url.dll": "描述: url.dll是Internet快捷壳扩展相关应用程序接口文件。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"usp10.dll": "描述: usp10.dll是字符显示脚本应用程序接口相关文件。\n属于: Uniscribe \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb5stkit.dll": "描述: vb5stkit.dll是VB应用程序创建快捷方式应用程序接口相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vba332.dll": "描述: vba322.dll是Microsoft Office自动控制相关模块。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbajet32.dll": "描述: vbajet32.dll是Visual Basic应用程序开发相关文件。\n属于: VBA \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ver.dll": "描述: ver.dll是Windows版本检测应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"version.dll": "描述: version.dll是Windows NT系统版本检测应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vfpodbc.dll": "描述: vfpodbc.dll是Visual FoxPro应用程序ODBC数据管理应用程序接口相关文件。\n属于: ODBC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vsnetutils.dll": "描述: vsnetutils.dll是ZoneLabs ZoneAlarm防火墙软件相关文件。\n属于: ZoneAlarm \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab32res.dll": "描述: wab32res.dll是微软地址薄相关文件,用于Outlook和Outlook Express储存Email邮件地址和其它联系信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"webhits.dll": "描述: webhits.dll是网络服务应用程序接口相关模块,用于统计点击率高的HTML页面。\n属于: ISAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"win87em.dll": "描述: win87em.dll是Windows应用程序浮点运算相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winnls.dll": "描述: winnls.dll是特殊字符输入扩展相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winplay.dll": "描述: winplay.dll是游戏软件多媒体播放解码回放相关文件。\n属于: Game \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winscard.dll": "描述: winscard.dll是个人计算机对智能卡读取相关程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wkssvc.dll": "描述: wkssvc.dll是本地系统进行远程文件打印相关服务文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wldap32.dll": "描述: wldap32.dll是LDAP应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wlnotify.dll": "描述: wlnotify.dll是对Windows事件提醒相关应用程序接口,例如Windows登陆、关机、注销等。\n属于: Winlogon \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmicore.dll": "描述: wmicore.dll是WMI服务相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmmutil.dll": "描述: wmmutil.dll是Windows Movie Maker影像处理程序支持文件。\n属于: Windows Movie Maker \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wow32.dll": "描述: wow32.dll是16位代码调用32位代码应用程序接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wshom.dll": "描述: wshom.ocx是Windows本地脚本对象运行时相关文件。\n属于: Windows Script Host \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsnmp32.dll": "描述: wsnmp32.dll是SNMP管理应用程序接口,用于发送和接收SNMP精灵的请求。\n属于: WinSNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wtsapi32.dll": "描述: wtsapi32.dll是终端服务的应用程序接口,用于包括:(1) 管理终端服务,(2)设置和恢复终端服务用户的配置信息,(3)应用终端服务虚拟频道。\n属于: Windows Terminal Server \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wuv3is.dll": "描述: wuv3is.dll是Windows Update升级相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xolehlp.dll": "描述: xolehlp.dll是Microsoft分布式平衡负载相关应用程序接口文件。\n属于: MSDTC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ac1st15.dll": "描述: ac1st15.dll是AutoCAD、AutoCAD LT、KeyPLANTING和KeySCAPE等软件动态链接库,该文件是Autodesk公司出品。\n属于: AutoCAD \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"binkw32.dll": "描述: binkw32.dll是BINK视频解码器相关进程,用于压缩视频回放,例如游戏中的视频。\n属于: Bink Video Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bwcc.dll": "描述: bwcc.dll是Borland Windows控件相关动态链接库文件。\n属于: Borland C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bwcc32.dll": "描述: bwcc32.dll是Borland Windows控件相关动态链接库文件。\n属于: Borland C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cards.dll": "描述: cards.dll是Windows纸牌游戏相关文件。\n属于: Game Windows Solitare \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cctrust.dll": "描述: cctrust.dll是Symantec公司ccTrust公用客户端动态链接库文件。\n属于: Symantec Products \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cd_clint.dll": "描述: cd_clint.dll是Cydoor公司动态链接库文件。\n属于: CYDOOR \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdonts.dll": "描述: cdonts.dll协同数据对象界面相关文件。\n属于: CDO \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cncs232.dll": "描述: cncs232.dll是Europress和IMSI公司多媒体库文件,用于支持它们的游戏。\n属于: Games Multimedia Fusion \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cncs32.dll": "描述: cncs32.dll是create游戏图像相关动态链接库文件。\n属于: Game Factory \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"core.dll": "描述: core.dll是SuperScape 3D Viewer察看器相关动态链接库。\n属于: Viscape Universal \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d9.dll": "描述: d3d9.dll是DirectX 9的动态链接库,用于支持Windows多媒体和游戏。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"disktool.dll": "描述: disktool.dll是DiskTool软件动态链接库文件,它是一款系统管理软件用于监视磁盘状态和避免数据文件储存问题。\n属于: Disktool \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"eax.dll": "描述: eax.dll是EAX环绕音效特性相关库文件。\n属于: EAX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"egnsengine.dll": "描述: egnsengine.dll是Gator GAIN间谍软件相关文件。\n属于: Gator GAIN \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"fm20.dll": "描述: fm20.dll是微软表单创建相关动态链接库文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gapi32.dll": "描述: gapi32.dll是微软邮件协议相关文件。\n属于: Microsoft Exchange \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide2x.dll": "描述: glide2x.dll是3DFX (Voodoo)显示卡Glide 3D驱动程序相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide3x.dll": "描述: glide3x.dll是3DFX (Voodoo)显示卡Glide 3D驱动程序相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glu32.dll": "描述: glide2x.dll是OpenGL图像相关动态链接库文件。\n属于: Microsoft OpenGL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hhctrl.dll": "描述: hhctrl.ocx是Microsoft帮助文档界面相关文件。\n属于: Microsoft HTML Help Control \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idle.dll": "描述: idle.dll是Microsoft Visual C++无功分量部分相关文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iepeers.dll": "描述: iepeers.dll是微软Microsoft Internet Explorer浏览器库文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ijl15.dll": "描述: ijl15.dll是IntelJPG图像压缩相关库文件。\n属于: Intel JPEG Library \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgedit.dll": "描述: imgedit.ocx是微软图像处理相关文件。\n属于: Microsoft ImagEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jscript.dll": "描述: jscript.dll是Microsoft JavaScript脚本支持相关文件。\n属于: Microsoft JScript \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"libeay32.dll": "描述: libeay32.dll是OpenSSL加密特性相关文件,用于通过网络加密传输。\n属于: OpenSSL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxcodec.dll": "描述: maxcodec.dll是ScanSoft PaperPort软件图像压缩和解压相关模块。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxkernl.dll": "描述: maxkernl.dll是ScanSoft PaperPort Visioneer扫描仪相关库文件。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc30.dll": "描述: mfc30.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc40.dll": "描述: mfc40.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42.dll": "描述: mfc42.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42d.dll": "描述: mfc42d.dll是MFCDLL共享库文件,用于支持调试版本的MFC程序。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc70.dll": "描述: mfc70.dll是微软Microsoft MFC程序相关库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfcans32.dll": "描述: mfcans32.dll用于对对象链接和嵌入OLE的Unicode和MBCS字符支持。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfco42d.dll": "描述: mfco42d.dll是MFC OLE调试版本动态链接库文件。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mhputilu.dll": "描述: mhputilu.dll是微软Microsoft Picture It图像软件动态链接库文件。\n属于: Microsoft Picture It! Publishing 2001 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mlang.dll": "描述: mlang.dll是多语言支持动态链接库文件。用于转换网络字符集为Unicode。\n属于: IE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mplapx.dll": "描述: mplapx.dll是微软Microsoft Media Player音乐回放相关模块。\n属于: Microsoft Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mrtrate.dll": "描述: mrtrate.dll是Intuit Quicken动态链接库文件。\n属于: Rate Sensing Manager \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomm32.dll": "描述: mscomm32.ocx是ActiveX公用控制模块,用于例如Visual Basic 6.0程序的MSComm控制。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdxm.dll": "描述: msdxm.ocx是Windows Media Player播放器ActiveX控制相关文件。\n属于: Windows Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mshtml.dll": "描述: mshtml.dll是HTML解释器相关模块。\n属于: HTML \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjet35.dll": "描述: msjet35.dll是微软Microsoft Jet数据引擎主要文件。该文件用于向Microsoft Access数据库读写数据。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mso9.dll": "描述: mso9.dll是微软Microsoft Office 2000办公软件套装的一部分。\n属于: Office 2000 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mso97.dll": "描述: mso97.dll是微软Microsoft Office 2000软件套装的一部分。\n属于: Office 2000 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoe.dll": "描述: msoe.dll是Outlook Express邮件程序相关模块。\n属于: Outlook Express \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mss32.dll": "描述: mss32.dll是Miles声音播放系统库文件,用于WinAMP等多媒体程序音乐回放和声音特效。\n属于: WinAmp \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msscript.dll": "描述: msscript.ocx是Visual Basic 6.0应用程序脚本控制的一部分,用于运行时库。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mssp232.dll": "描述: mssp232.dll是微软Microsoft Office软件字符检查相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msspell3.dll": "描述: msspell3.dll是文档字符检查相关模块。\n属于: Word \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msstdfmt.dll": "描述: msstdfmt.dll是微软标准数据格式对象相关动态链接库文件。\n属于: Visual Studio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvbvm50.dll": "描述: msvbvm50.dll是微软Microsoft Visual Basic虚拟机相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvbvm60.dll": "描述: msvbvm60.dll是微软Microsoft Visual Basic虚拟机相关模块。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcirt.dll": "描述: msvcirt.dll是微软C语言程序运行库相关文件,用于例如打印。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcirtd.dll": "描述: msvcirtd.dll是用户选择进行调试版本编译时所使用的运行库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp50.dll": "描述: msvcp50.dll是标准的C运行库相关程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp60.dll": "描述: msvcp60.dll是标准的C运行库程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp70.dll": "描述: msvcp70.dll是.Net的C运行库相关文件。\n属于: Microsoft .NET \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcr70.dll": "描述: msvcr70.dll是微软C运行库相关程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt.dll": "描述: msvcrt.dll是标准的微软C运行库文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt10.dll": "描述: msvcrt10.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt20.dll": "描述: msvcrt20.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt40.dll": "描述: msvcrt40.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrtd.dll": "描述: msvcrtd.dll是微软编译程序调试版本相关文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvfw32.dll": "描述: msvfw32.dll是微软BMP位图压缩和解压缩相关文件,用于Microsoft Video视频。\n属于: Microsoft Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mswinsck.dll": "描述: mswinsck.ocx是Visual Basic语言的socket编程相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msxml.dll": "描述: msxml.dll是Internet Explorer 4.0或更高版本的浏览器相关文件,用于解释XML文档。\n属于: XML \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"npdocbox.dll": "描述: NPDocBox.dll是Adobe Acrobat插件相关文件,为Netware和Internet Explorer浏览器安装。\n属于: Adobe Acrobat \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvcpl.dll": "描述: nvcpl.dll是NVIDIA显示卡相关动态链接库文件。\n属于: NVIDIA drivers \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvcpldaemon.dll": "描述: NvCplDaemon (NvQTwk.dll)是Nvdia显示卡相关文件。\n属于: NVidia Graphics Library Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvmctray.dll": "描述: nvmctray.dll是NVidia显示卡相关文件。\n属于: NVidia Multimedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvmediacenter.dll": "描述: nvmctray.dll是NVidia显示卡相关文件。\n属于: NVidia Multimedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nwnp32.dll": "描述: nwnp32.dll是Novell NetWare网络支持相关链接库文件。\n属于: Novell Network \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbc32.dll": "描述: odbc32.dll是ODBC数据库查询相关文件。\n属于: ODBC DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oleacc.dll": "描述: oleacc.dll是微软Microsoft Active Accessibility相关动态链接库文件。\n属于: Microsoft Active Accessibility \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oleaut32.dll": "描述: oleaut32.dll是对象链接与嵌入OLE相关文件。\n属于: Microsoft OLE DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"omi9.dll": "描述: omi9.dll是邮件程序MAPI特性相关文件,用于例如Outlook。\n属于: Microsoft MAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"opengl32.dll": "描述: opengl32.dll是微软OpenGL特性相关动态链接库文件。\n属于: Microsoft OpenGL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oscore.dll": "描述: oscore.dll是AOL即时通讯软件相关文件。\n属于: AOL Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p5dll.dll": "描述: p5dll.dll是P5Device相关动态链接库文件。\n属于: P5Device \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pcdlib32.dll": "描述: pcdlib32.dll是柯达Kodak产品相关文件,用于设备数据传输。\n属于: Kodak Photo \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pcre.dll": "描述: pcre.dll是Perl语言相关库文件。\n属于: Perl \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pgsdk.dll": "描述: pgsdk.dll是微软图形SDK开发包相关动态链接库文件。\n属于: Microsoft Presentation Graphics SDK \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pncrt.dll": "描述: pncrt.dll是C语言开发界面相关运行时文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pstprx.dll": "描述: pstprx.dll是Windows CE Outlook数据同步相关文件。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"quartz.dll": "描述: quartz.dll是DirectShow相关库文件,是DirectX的一部分。\n属于: Microsoft DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"riched20.dll": "描述: riched20.dll是字符编辑器相关文件。\n属于: RichEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"riched32.dll": "描述: riched32.dll是字符编辑器相关文件。\n属于: RichEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"richtx32.dll": "描述: richtx32.ocx是微软Microsoft字符编辑器控制相关程序,用于字符对话框对象高级编辑。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"schannel.dll": "描述: schannel.dll是Internet Explorer 3.x或者4.x浏览器128位加密相关文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setup.dll": "描述: setup.dll是流行的安装程序相关支持文件。\n属于: TextBridge Pro 96 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupapi.dll": "描述: setupapi.dll是流行的安装程序支持相关文件。\n属于: Microsoft Windows Setup \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"smackw32.dll": "描述: smackw32.dll是Smacker视频解码器相关文件。\n属于: Games Media Smacker \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"storm.dll": "描述: storm.dll是暴雪游戏相关动态链接库文件,出现在StarCraft和Diablo等游戏中。\n属于: Games Blizzard \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"symstore.dll": "描述: symstore.dll是Symantec公司设置相关动态链接库文件。\n属于: Symantec \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tabctl32.dll": "描述: tabctl32.ocx是一个ActiveX控制模块,用于SSTab控制和Tabbed对话框控制。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"threed32.dll": "描述: threed32.ocx是Sheridon 3D控制对象相关文件,用于渲染3D图像。\n属于: Sheridon \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"topsearch.dll": "描述: topsearch.dll是Kazaa.exe的间谍软件相关文件。\n属于: Kazaa \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tsbyuv.dll": "描述: tsbyuv.dll是东芝Toshiba视频播放解码器相关程序。\n属于: Toshiba Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"twain.dll": "描述: twain.dll是静态图像应用程序接口相关文件。\n属于: Twain Source Manager \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb40016.dll": "描述: vb40016.dll是Visual Basic运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb40032.dll": "描述: vb40032.dll是Visual Basic运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb6fr.dll": "描述: vb6fr.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb6stkit.dll": "描述: vb6stkit.dll是Visual Basic应用程序接口API相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun100.dll": "描述: vbrun100.dll是Visual Basic语言运行时相关程序。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun200.dll": "描述: vbrun200.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun300.dll": "描述: vbrun300.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbscript.dll": "描述: vbscript.dll是VBScript脚本相关支持文件。\n属于: VBScript \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vsutil.dll": "描述: vsutil.dll是ZoneLabs ZoneAlarm软件相关文件。\n属于: ZoneAlarm \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab.dll": "描述: wab.dll是微软Microsoft地址薄相关文件,用于储存Outlook和Outlook Express的Email地址和其它信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab32.dll": "描述: wab32.dll是微软Microsoft地址薄相关文件,用于储存Outlook和Outlook Express的Email邮件地址和其它联系信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"weputil.dll": "描述: weputil.dll是Windows娱乐包的相关文件。\n属于: Windows Entertainment Pack \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winaspi.dll": "描述: winaspi.dll是ASPI驱动相关文件,用于控制CD-ROM驱动器、CD/DVD刻录机,支持相关CD刻录备份软件,\n属于: ASPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winaspi32.dll": "描述: winaspi32.dll是ASPI驱动相关文件,用于控制CD-ROM驱动器、CD/DVD刻录机,支持相关CD刻录备份软件,\n属于: ASPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"window.dll": "描述: window.dll是Unreal游戏程序相关文件,用于显示或者配置DirectX设置对话框。\n属于: Games Unreal \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wing.dll": "描述: wing.dll是Windows应用程序图形显示库文件,用以取代DirectX。\n属于: Windows Graphics \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wing32.dll": "描述: wing32.dll是Windows应用程序图形显示库文件,用以取代DirectX。\n属于: Windows Graphics \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsock32n.dll": "描述: wsock32n.dl是SOCKS网络协议相关文件。\n属于: Windows Winsock \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xmlparse.dll": "描述: xmlparse.dll是Yahoo!雅虎通即时通讯软件XML解释器文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xmltok.dll": "描述: xmltok.dll是XSLT引擎解码相关文件。\n属于: XSLT \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ygxa_2.dll": "描述: ygxa_2.dll是Yahoo!雅虎通即时通讯软件图形用户界面相关文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"yml.dll": "描述: yml.dll是Yahoo!雅虎通应用程序相关库文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"zlib.dll": "描述: zlib.dll是ZLIB压缩库相关文件,用于Windows应用程序压缩和解压缩。\n属于: ZLIB \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advapi32.dll": "描述: advapi32.dll是一个高级API应用程序接口服务库的一部分,用于支持非常多的API应用程序接口,包括安全和注册的调用。\n属于: Windows NT 4.0 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advpack.dll": "描述: advpack.dll用于帮助硬件和软件读取和验证.INF文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"asycfilt.dll": "描述: asycfilt.dll是Microsoft OLE (对象链接和嵌入)特性相关DLL文件。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"atl.dll": "描述: atl.dll文件用于支持ATL特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avicap32.dll": "描述: avicap32.dll是Windows API应用程序接口相关模块,用于对摄像头和其它视频硬件进行AVI电影和视频的截取。\n属于: Windows NT 4.0 \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"browseui.dll": "描述: browseui.dll用于浏览器UI界面的管理。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"comctl32.dll": "描述: comctl32.dll是Windows应用程序公用GUI图形用户界面模块。\n属于: Windows NT \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"comdlg32.dll": "描述: comdlg32.dll是Windows应用程序公用对话框模块,用于例如打开文件对话框。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"commctrl.dll": "描述: commctrl.dll是Windows应用程序公用GUI图形用户界面模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cpuinf32.dll": "描述: cpuinf32.dll是CPU信息获取相关模块,用于获取例如CPU速度和CPU ID。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"crtdll.dll": "描述: crtdll.dll是标准C语言库,用于例如打印机,内存等。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"crypt32.dll": "描述: crypt32.dll是Windows加密API应用程序接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ctl3d.dll": "描述: ctl3d.dll是Windows应用程序公用GUI图形用户界面3D显示模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ctl3d32.dll": "描述: ctl3d32.dll是Windows应用程序公用GUI图形用户界面3D维显示模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d8.dll": "描述: d3d8.dll是DirectX的3D显示部分控制模块,在DirectX 8.0中被安装。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dbghelp.dll": "描述: dbghelp.dll是symbol引擎及相关模块,用于Windows图形。\n属于: Windows Image \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddeml.dll": "描述: ddeml.dll是exchange数据交换管理相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddraw.dll": "描述: ddraw.dll是DirectX的DLL文件,用于绘制多媒体应用程序的2D图形。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devcon32.dll": "描述: devcon32.dll是设备配置管理动态链接库。用于提供COM库支持SoundFont和EFX特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dhcpcsvc.dll": "描述: dhcpcsvc.dll是Windows DHCP客户端服务模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dinput.dll": "描述: dinput.dll是DirectX的DLL文件,用于支持DirectInput输入。该文件用于支持多媒体输入设备,例如游戏手柄\n属于: DirectX DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dinput8.dll": "描述: dinput.dll是DirectX的DLL文件,用于DirectInput输入。该文件用于支持多媒体输入设备,例如游戏手柄。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dsound.dll": "描述: dsound.dll是DirectX的DLL文件,用于支持Direct Sound声音特性。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"framedyn.dll": "描述: framedyn.dll是framework链接库文件,\n属于: Windows WMI \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"fxscfgwz.dll": "描述: fxscfgwz.dll是Windows 2000传真配置相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gdi32.dll": "描述: gdi32.dll是Windows GDI图形用户界面相关程序,用于辅助创建组建。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gdiplus.dll": "描述: gdiplus.dll是GDI图形设备接口图形界面相关模块。\n属于: Microsoft GDI+ \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hal.dll": "描述: hal.dll是Windows硬件提取层模块,该用于用于解决硬件的复杂性。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icmp.dll": "描述: icmp.dll是Windows 2000产品相关模块,用于网络ICMP请求。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iconlib.dll": "描述: iconlib.dll是微软Microsoft图标管理程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imagehlp.dll": "描述: imagehlp.dll是Windows调试辅助动态链接库相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetmib1.dll": "描述: inetmib1.dll是Windows NT的简单网络管理协议SNMP相关模块。\n属于: Windows SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iphlpapi.dll": "描述: iphlpapi.dll是Windows IP辅助API应用程序接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"kernel.dll": "描述: kernel.dll是在旧版本Windows操作系统中重要的一个DLL动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ksuser.dll": "描述: ksuser.dll is a library which transports latency sensitive, time-stamped data between user perhiperals and system perhiperals\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapi32.dll": "描述: mapi32.dll是Windows Messaging即时通讯软件API应用程序接口(MAPI)。\n属于: MAPI \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mgmtapi.dll": "描述: mgmtapi.dll是微软Microsoft简单网络管理应用程序接口API模块。\n属于: SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmsystem.dll": "描述: mmsystem.dll是多媒体管理模块,用于支持16位多媒体应用程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mpr.dll": "描述: mpr.dll是Windws操作系统网络通讯相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mprapi.dll": "描述: mprapi.dll是Windows 2000路由管理模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msacm32.dll": "描述: msacm32.dll是32位应用程序音频压缩模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msafd.dll": "描述: msafd.dll是微软Microsoft Windows操作系统 Sockets 2.0传输服务相关模块。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomct2.dll": "描述: mscomct2.ocx是ActiveX插件公用管理模块。\n属于: Windows ActiveX \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscoree.dll": "描述: mscoree.dll是.NET Framework相关组件。\n属于: Microsoft .NET \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgina.dll": "描述: msgina.dll是WIndows登陆认证策略相关模块。该模块用于完成所有用户登陆和验证功能。\n属于: GINA \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msi.dll": "描述: msi.dll是Windows安装程序MSI(Microsoft Installer)相关模块。\n属于: Windows Installer \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msimg32.dll": "描述: msimg32.dll是Windows图形设备接口GDI相关模块,用于支持新的API应用程序接口和GDI32相关特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjava.dll": "描述: msjava.dll是Java程序COM接口支持相关模块。\n属于: Microsoft JVM \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msnp32.dll": "描述: msnp32.dll是微软网络协议相关动态链接库。\n属于: Microsoft networks \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoss.dll": "描述: msoss.dll是Microsoft Trust ASN信任机制相关应用程序接口API模块,用于加密和解密特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netapi32.dll": "描述: netapi32.dll是Windows网络应用程序接口,用于支持访问微软网络。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"newdev.dll": "描述: newdev.dll是添加系统新硬件设备相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ntdll.dll": "描述: ntdll.dll是NT操作系统重要的模块。\n属于: Windows NT \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oc25.dll": "描述: oc25.dll是对象链接和嵌入OLE运行时模块。\n属于: Microsoft OLE Control runtime DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole2nls.dll": "描述: ole2.dll是对象链接和嵌入OLE相关模块,用于支持多语言。\n属于: Microsoft OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole32.dll": "描述: ole32.dll是对象链接和嵌入相关模块。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"olepro32.dll": "描述: olepro32.dll是对象链接和嵌入OLE特性相关模块。\n属于: Microsoft OLE Property Support DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pidgen.dll": "描述: pidgen.dll是Windows操作系统重要的模块,用于管理产品序列号。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pjlmon.dll": "描述: pjlmon.dll是PJL打印机监视相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"powrprof.dll": "描述: powrprof.dll是微软Microsoft Windows电源管理配置工具相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"psapi.dll": "描述: psapi.dll是Windows系统进程状态支持模块。\n属于: Process Status Helper \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasapi32.dll": "描述: rasapi32.dll是远程访问应用程序接口(RAS),用于Windows应用程序对调制解调器的控制。\n属于: Remote Access API \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpcrt4.dll": "描述: rpcrt4.dll是远程程序调用(RPC)应用程序接口API,用于WIndows应用程序对网络和Internet连接。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"run32.dll": "描述: run32.dll 是应用程序DLL文件运行库相关模块。\n属于: Windows 95 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"scrrun.dll": "描述: scrrun.dll用于阅读和编写脚本和文本文件。\n属于: Microsoft Script Runtime \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"secur32.dll": "描述: secur32.dll是Windows安全特性相关动态链接库。\n属于: Microsoft Windows DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupx.dll": "描述: setupx.dll是WIndows安装程序相关模块。\n属于: Microsoft Windows Setup Functions \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdoc401.dll": "描述: shdoc401.dll是资源管理器文件夹浏览的COM接口相关模块。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdoclc.dll": "描述: shdoclc.dll是为Windows应用程序添加基础文件和网络操作相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdocvw.dll": "描述: shdocvw.dll是为Windows应用程序添加基础文件和网络操作相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shell32.dll": "描述: shell32.dll是Windows壳Shell相关应用程序接口动态链接库文件,用于打开网页和文件。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shfolder.dll": "描述: shfolder.dll是Windows特殊文件夹相关服务模块,例如我的文档。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shlwapi.dll": "描述: shlwapi.dll是UNC和URL地址动态链接库文件,用于注册键值和色彩设置。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"snmpapi.dll": "描述: snmpapi.dll是简单网络管理协议(SNMP)相关模块,用于监视你的LAN局域网网络状态。\n属于: Microsoft SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spoolss.dll": "描述: spoolss.dll是打印机打印相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"svrapi.dll": "描述: svrapi.dll用于监视和管理共享网络资源。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tapi32.dll": "描述: tapi32.dll是Windows排列层相关模块,用于发送消息到Tapisrv.exe。\n属于: Windows Telephony \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"unidrv.dll": "描述: unidrv.dll是通用打印机驱动动态连接库。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"urlmon.dll": "描述: urlmon.dll是微软Microsoft对象链接和嵌入相关模块。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"usbui.dll": "描述: usbui.dll是通用程序界面应用程序接口,用于管理USB用户界面。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"user32.dll": "描述: user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性。\n属于: Windows User API \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"userenv.dll": "描述: userenv.dll是公用应用程序界面应用程序接口,用于管理用户档案。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vfwwdm32.dll": "描述: vfwwdm32.dll用于Windows应用程序视频进行WDM剪辑驱动相关程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"webcheck.dll": "描述: webcheck.dll是用于对网站进行监视的COM接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wininet.dll": "描述: wininet.dll是Windows应用程序网络相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winmm.dll": "描述: winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄。\n属于: Windows Multimedia \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsock.dll": "描述: winsock.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络相关应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsrv.dll": "描述: winsrv.dll是Windows服务,用于支持32位用户和图形设备接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsta.dll": "描述: winsta.dll是成熟的Windows组件,用于剪切板、全球区域特性和桌面组件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wintrust.dll": "描述: wintrust.dll用于验证第三方应用程序的文件,目录,内存使用,数据签名等。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmaudsdk.dll": "描述: wmaudsdk.dll用于读取、创建和获取.WMA音频格式文件信息。\n属于: Windows Media \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmvcore.dll": "描述: wmvcore.dll是Windows媒体视频回放解码相关动态链接库。\n属于: Windows Media \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wnaspi32.dll": "描述: wnaspi32.dll是高级Advanced SCSI程序接口( ASPI )管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ws2_32.dll": "描述: ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ws2help.dll": "描述: ws2help.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsock32.dll": "描述: wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary"
|
||||
}
|
||||
137
CheckDLL/main.py
Normal file
@@ -0,0 +1,137 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import traceback
|
||||
import subprocess
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../")
|
||||
from Model import *
|
||||
finding = False
|
||||
def ReadNeedDll(lists):
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if not len(lists):
|
||||
item = QtGui.QStandardItem("无")
|
||||
nmodel.appendRow(item)
|
||||
for i in lists:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
needDllList.setModel(nmodel)
|
||||
|
||||
def ReadBadNeedDll(lists):
|
||||
global finding
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if not len(lists):
|
||||
item = QtGui.QStandardItem("无")
|
||||
nmodel.appendRow(item)
|
||||
for i in lists:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
badDllList.setModel(nmodel)
|
||||
finding = True
|
||||
|
||||
def ErrorMsg(message):
|
||||
QtWidgets.QMessageBox.critical(window, "错误", message)
|
||||
|
||||
class ReadDll(QtCore.QThread):
|
||||
readNeed = QtCore.pyqtSignal(list)
|
||||
readBad = QtCore.pyqtSignal(list)
|
||||
error = QtCore.pyqtSignal(str)
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
try:
|
||||
output = subprocess.getoutput(f"python3 '{programPath}/CheckCommand.py' '{sys.argv[1]}' --json")
|
||||
print(output)
|
||||
self.readNeed.emit(json.loads(output))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.error.emit(traceback.format_exc())
|
||||
try:
|
||||
badoutput = subprocess.getoutput(f"python3 '{programPath}/CheckCommand.py' '{sys.argv[1]}' --json -w '{sys.argv[2]}' '{sys.argv[3]}'")
|
||||
print(badoutput)
|
||||
self.readBad.emit(json.loads(badoutput))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.error.emit(traceback.format_exc())
|
||||
|
||||
def GetDll():
|
||||
global read
|
||||
read = ReadDll()
|
||||
read.readNeed.connect(ReadNeedDll)
|
||||
read.readBad.connect(ReadBadNeedDll)
|
||||
read.error.connect(ErrorMsg)
|
||||
read.start()
|
||||
|
||||
def Change():
|
||||
if not finding:
|
||||
return
|
||||
things = badDllList.selectionModel().selectedIndexes()[0].data().lower()
|
||||
repairButton.setEnabled(os.path.exists(f"{programPath}/bash/{things}.sh"))
|
||||
findButton.setEnabled(True)
|
||||
|
||||
def FindDll():
|
||||
global dllMap
|
||||
things = badDllList.selectionModel().selectedIndexes()[0].data().lower()
|
||||
try:
|
||||
dllMap["check"]
|
||||
except:
|
||||
try:
|
||||
with open(f"{programPath}/lists.json", "r") as file:
|
||||
dllMap = json.loads(file.read())
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
return
|
||||
try:
|
||||
QtWidgets.QMessageBox.information(window, f"关于“{things}”", dllMap[things])
|
||||
except:
|
||||
QtWidgets.QMessageBox.information(window, f"关于“{things}”", "无此 Dll 的信息")
|
||||
|
||||
def RepairDll():
|
||||
things = badDllList.selectionModel().selectedIndexes()[0].data().lower()
|
||||
OpenTerminal(f"'{programPath}/../AutoShell/main.py' '{programPath}/bash/{things}.sh'")
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
iconPath = "{}/../deepin-wine-runner.svg".format(programPath)
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
window = QtWidgets.QMainWindow()
|
||||
widget = QtWidgets.QWidget()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
badDllList = QtWidgets.QListView()
|
||||
needDllList = QtWidgets.QListView()
|
||||
badDllList.clicked.connect(Change)
|
||||
findButton = QtWidgets.QPushButton("查询此 Dll 信息")
|
||||
repairButton = QtWidgets.QPushButton("修复此 Dll")
|
||||
findButton.setDisabled(True)
|
||||
repairButton.setDisabled(True)
|
||||
findButton.clicked.connect(FindDll)
|
||||
repairButton.clicked.connect(RepairDll)
|
||||
badDllList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
needDllList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
loadingTips = QtGui.QStandardItemModel(window)
|
||||
loadingTipsItem = QtGui.QStandardItem("正在读取……")
|
||||
loadingTips.appendRow(loadingTipsItem)
|
||||
badDllList.setModel(loadingTips)
|
||||
needDllList.setModel(loadingTips)
|
||||
layout.addWidget(QtWidgets.QLabel("程序需要的 Dll(不太准):"), 0, 0, 1, 1)
|
||||
layout.addWidget(QtWidgets.QLabel("程序缺失的 Dll(不太准):"), 0, 1, 1, 2)
|
||||
layout.addWidget(needDllList, 1, 0)
|
||||
layout.addWidget(badDllList, 1, 1, 1, 2)
|
||||
layout.addWidget(findButton, 2, 1)
|
||||
layout.addWidget(repairButton, 2, 2)
|
||||
widget.setLayout(layout)
|
||||
window.setCentralWidget(widget)
|
||||
window.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
window.setWindowTitle(f"查看程序“{os.path.basename(sys.argv[1])}”缺少的 DLL")
|
||||
window.resize(int(window.frameGeometry().width() * 1.2), int(window.frameGeometry().height() * 1.1))
|
||||
GetDll()
|
||||
window.show()
|
||||
app.exec_()
|
||||
BIN
GetEXEVersion.exe
Executable file
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
245
Icon/PhotoShop.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
409
Icon/腾讯会议.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
237
Icon/腾讯课堂.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
29
IconList.json
Normal file
@@ -0,0 +1,29 @@
|
||||
[
|
||||
[
|
||||
["QQ", "wineBottonPath/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe"],
|
||||
["QQ", "wineBottonPath/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe"],
|
||||
["TIM", "wineBottonPath/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe"],
|
||||
["TIM", "wineBottonPath/drive_c/Program Files (x86)/Tencent/TIM/Bin/TIM.exe"]
|
||||
],
|
||||
[
|
||||
["cmd", "cmd"],
|
||||
["cmd", "cmd.exe"],
|
||||
["cmd", "wineBottonPath/drive_c/windows/system32/cmd.exe"],
|
||||
["Internet Explorer", "iexplore"],
|
||||
["Internet Explorer", "iexplore.exe"],
|
||||
["Internet Explorer", "wineBottonPath/drive_c/Program Files/Internet Explorer/iexplore.exe"],
|
||||
["Internet Explorer", "wineBottonPath/drive_c/Program Files (x86)/Internet Explorer/iexplore.exe"],
|
||||
["微信", "wineBottonPath/drive_c/Program Files/Tencent/WeChat/WeChat.exe"],
|
||||
["微信", "wineBottonPath/drive_c/Program Files (x86)/Tencent/WeChat/WeChat.exe"],
|
||||
["UltraISO", "wineBottonPath/drive_c/Program Files/UltraISO/UltraISO.exe"],
|
||||
["UltraISO", "wineBottonPath/drive_c/Program Files (x86)/UltraISO/UltraISO.exe"],
|
||||
["迅雷", "wineBottonPath/drive_c/Program Files/Thunder Network/MiniThunder/Bin/ThunderMini.exe"],
|
||||
["迅雷", "wineBottonPath/drive_c/Program Files (x86)/Thunder Network/MiniThunder/Bin/ThunderMini.exe"],
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE"],
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE"],
|
||||
["腾讯会议", "wineBottonPath/drive_c/Program Files/Tencent/WeMeet/wemeetapp.exe"],
|
||||
["腾讯会议", "wineBottonPath/drive_c/Program Files (x86)/Tencent/WeMeet/wemeetapp.exe"],
|
||||
["腾讯课堂", "wineBottonPath/drive_c/Program Files/Tencent/EDU/bin/TXEDU.exe"],
|
||||
["腾讯课堂", "wineBottonPath/drive_c/Program Files (x86)/Tencent/EDU/bin/TXEDU.exe"]
|
||||
]
|
||||
]
|
||||
@@ -70,6 +70,8 @@ m m "
|
||||
["deepin-wine5-stable", "deepin-wine5-stable"],
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"]
|
||||
]:
|
||||
if not os.system(f"which {i[1]} > /dev/null"):
|
||||
continue
|
||||
choose = input(f"安装{i[0]}?(添加深度源)[Y/N]").upper()
|
||||
if choose == "Y":
|
||||
print("安装中……")
|
||||
@@ -80,6 +82,10 @@ m m "
|
||||
["deepin-wine", "deepin-wine"],
|
||||
["spark-wine7-devel", "spark-wine7-devel"]
|
||||
]:
|
||||
if not os.system(f"which {i[1]} > /dev/null"):
|
||||
continue
|
||||
choose = input(f"安装{i[0]}?(添加深度、星火源)[Y/N]").upper()
|
||||
if choose == "Y":
|
||||
InstallWithSparkStoreSource(i[1])
|
||||
InstallWithSparkStoreSource(i[1])
|
||||
input("按回车键后退出……")
|
||||
exit()
|
||||
116
InstallWineOnDeepin23Alpha.py
Executable file
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import webbrowser
|
||||
|
||||
def YesOrNo():
|
||||
if input().replace(" ", "").upper() == "N":
|
||||
return False
|
||||
return True
|
||||
|
||||
def InstallWineSpark(wine):
|
||||
print(f"开始安装 {wine}")
|
||||
#os.system("pkexec apt update")
|
||||
if not os.system(f"pkexec aptss install {wine} -y"):
|
||||
print(f"{wine} 安装失败!")
|
||||
PressEnter()
|
||||
else:
|
||||
print("安装完成")
|
||||
|
||||
def InstallWine(wine):
|
||||
print(f"开始安装 {wine}")
|
||||
os.system("pkexec apt update")
|
||||
if not os.system(f"pkexec apt install {wine} -y"):
|
||||
print(f"{wine} 安装失败!")
|
||||
PressEnter()
|
||||
else:
|
||||
print("安装完成")
|
||||
|
||||
def CheckSparkStore():
|
||||
return os.system("which spark-store > /dev/null") + os.system("which aptss > /dev/null")
|
||||
|
||||
def InstallSparkStore():
|
||||
if not CheckSparkStore:
|
||||
return
|
||||
print("按下回车键后打开星火应用商店官网,手动安装完星火应用商店后再次按下回车以继续")
|
||||
webbrowser.open_new_tab("https://spark-app.store/")
|
||||
PressEnter()
|
||||
print("安装星火应用商店后按下回车……")
|
||||
PressEnter()
|
||||
while True:
|
||||
if not os.system("which spark-store > /dev/null"):
|
||||
if not os.system("which aptss > /dev/null"):
|
||||
break
|
||||
print("您暂未安装最新版本的星火应用商店,请更新版本后按下回车")
|
||||
PressEnter()
|
||||
continue
|
||||
print("您暂未安装星火应用商店,请在安装后按下回车")
|
||||
PressEnter()
|
||||
continue
|
||||
|
||||
def InstallDeepinAppStore():
|
||||
print("开始安装官方应用商店")
|
||||
if not os.system("pkexec apt install deepin-app-store -y"):
|
||||
print("安装失败!按回车键后退出")
|
||||
PressEnter()
|
||||
exit()
|
||||
else:
|
||||
print("安装完成")
|
||||
|
||||
def PressEnter():
|
||||
input("按回车键后继续……")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print('''
|
||||
m m "
|
||||
# # # mmm m mm mmm
|
||||
" #"# # # #" # #" #
|
||||
## ##" # # # #""""
|
||||
# # mm#mm # # "#mm"
|
||||
|
||||
|
||||
''')
|
||||
print("后续操作需要有 root 权限")
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
# 敢这样浪不还是 Alpha 源有官方应用商店
|
||||
if os.system("which deepin-home-appstore-client > /dev/null"):
|
||||
print("暂未安装官方应用商店,安装后才能继续,是否安装?[Y/N]")
|
||||
if YesOrNo:
|
||||
InstallDeepinAppStore()
|
||||
deepinWineList = [
|
||||
#"deepin-wine",
|
||||
#"deepin-wine5-stable",
|
||||
"deepin-wine6-stable"
|
||||
]
|
||||
for i in deepinWineList:
|
||||
if not os.system(f"which {i} > /dev/null"):
|
||||
print(f"{i} 已安装")
|
||||
continue
|
||||
print(f"是否安装 {i}?[Y/N]")
|
||||
if YesOrNo:
|
||||
InstallWine(i)
|
||||
sparkWineList = [
|
||||
#"deepin-wine",
|
||||
#"deepin-wine5",
|
||||
#"spark-wine7-devel"
|
||||
]
|
||||
for i in sparkWineList:
|
||||
if not os.system(f"which {i} > /dev/null"):
|
||||
continue
|
||||
print(f"是否安装 {i}?[Y/N]")
|
||||
if YesOrNo:
|
||||
InstallSparkStore()
|
||||
InstallWineSpark(i)
|
||||
print("按回车键退出")
|
||||
PressEnter()
|
||||
exit()
|
||||
12
Makefile
@@ -10,11 +10,20 @@ build:
|
||||
cp -rv VM-source/Windows7X86Auto.iso VM
|
||||
cp -rv VM-source/run.py VM
|
||||
cp -rv wine/ deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv Test/ 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 kill.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallWineOnDeepin23Alpha.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv wrestool deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-easy-packager.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv IconList.json deb/opt/apps/deepin-wine-runner
|
||||
cp -rv GetEXEVersion.exe deb/opt/apps/deepin-wine-runner
|
||||
echo "[]" > deb/opt/apps/deepin-wine-runner/wine/winelist.json
|
||||
rm -rfv deb/opt/apps/deepin-wine-runner/wine/winelist.json
|
||||
cp -rv req deb/opt/apps/deepin-wine-runner
|
||||
cp -rv BuildDesktop.py 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
|
||||
@@ -46,12 +55,13 @@ build:
|
||||
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 CheckDLL 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 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
|
||||
|
||||
BIN
Model/__pycache__/__init__.cpython-37.pyc
Executable file → Normal file
47
README.md
@@ -1,15 +1,16 @@
|
||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||
<h1 align="center">Wine 运行器 2.4.0</h1>
|
||||
<h1 align="center">Wine 运行器 2.5.0</h1>
|
||||
<hr>
|
||||
|
||||
## 介绍
|
||||
一个图形化了以下命令的程序
|
||||
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
|
||||
它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。
|
||||
此外,它还简化了如下命令,让你可以更简便地使用Wine:
|
||||
```bash
|
||||
env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
|
||||
```
|
||||
让你可以简易方便的使用 wine
|
||||
是使用 Python3 的 PyQt5 构建的
|
||||
(自己美术功底太差,图标只能在网络上找了)
|
||||
(测试平台:deepin 20.7.1;UOS 家庭版 21.3.1;Ubuntu 22.04;Ubuntu 20.04;UOS 专业版 1050;openkylin)
|
||||

|
||||
而打包器可以方便的把您的 wine 容器打包成 deb 包供他人使用,程序创建的 deb 构建临时文件夹目录树如下:
|
||||
@@ -101,7 +102,45 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
||||
最后一个是最终生成的包的版本号,版本号命名规则:应用版本号+deepin+数字
|
||||

|
||||
|
||||
## 更新日志
|
||||
## 更新日志
|
||||
### 2.5.0.1(2022年11月25日)
|
||||
**※1、修复已知问题**
|
||||
|
||||
### 2.5.0(2022年11月25日)
|
||||
**※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);**
|
||||
**※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;**
|
||||
**※3、支持多图标的程序打包;**
|
||||
**※4、修复了安装更多 Wine 换源换了个寂寞的问题;**
|
||||
**※5、修复安装更多 Wine 重新安装后列表丢失的问题;**
|
||||
**※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;**
|
||||
**※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;**
|
||||
**※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;**
|
||||
**※9、支持移除指定的 .desktop 快捷方式;**
|
||||
**※10、新增日志分析功能以及导出、上传日志功能;**
|
||||
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||
12、优化文案、新增友链;
|
||||
13、提供了部分组件的测试功能。
|
||||

|
||||
|
||||
### 2.4.1.1(2022年11月21日)
|
||||
**※1、修复已知问题**
|
||||
|
||||
### 2.4.1(2022年11月06日)
|
||||
**※1、不基于生态适配活动脚本的打包器支持只生成制作容器的 7z 包**
|
||||
**※2、两个打包器的容器自动删除脚本添加 kill.sh**
|
||||
**※3、Wine 运行器支持杀死对应容器进程**
|
||||
**※4、容器自动配置脚本和 Wine 安装器支持切换源**
|
||||
5、非生态适配脚本打包器追加运行参数改为 --uri XXX 而非直接 XXX
|
||||
6、两个打包器新增星火应用商店投稿入口
|
||||
7、优化开启 Windows 虚拟机功能在未安装 VirtualBox 时的提示
|
||||
8、Reg Shot 版本从 1.8.3-beta1V5 升级到 1.9.0
|
||||
9、Geek Uninstaller 版本从 1.5.1.161 升级到 1.5.1.163
|
||||
10、容器自动配置脚本添加 installother 命令、修复返回值传递问题
|
||||
11、不显示 pip 安装库的提示信息(因为不是很核心的库)
|
||||
12、非基于生态适配活动脚本的打包器默认勾选卸载该 deb 后自动删除容器、使用统信活动容器清理脚本、使用星火 wine helper
|
||||
13、优化文案
|
||||

|
||||
|
||||
### 2.4.0(2022年10月25日)
|
||||
**※1、新增 VB Runtime 组件安装工具**
|
||||
**※2、优化自动配置容器搜索功能,搜索不区分大小写**
|
||||
|
||||
BIN
Test/net.exe
Executable file
BIN
Test/netandie.exe
Executable file
BIN
Test/vb.exe
Executable file
84
TestShell/arm-postinst.sh
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
|
||||
#DEB_PATH=/opt/apps/aaa
|
||||
DEB_PATH=.
|
||||
if [ -f $DEB_PATH/files/wined3d.dll.so ] && [ -d "/usr/lib/nvidia" ];then
|
||||
mv $DEB_PATH/files/wined3d.dll.so $DEB_PATH/files/dlls
|
||||
fi
|
||||
|
||||
KUNPENG="0x48"
|
||||
cpu_vendor=$(lscpu | grep Vendor | awk '{print $3}')
|
||||
KIRIN=`cat /proc/cpuinfo | grep Kirin`
|
||||
if [ ! -z "$KIRIN" ];then
|
||||
mv $DEB_PATH/files/*.so $DEB_PATH/files/dlls
|
||||
fi
|
||||
|
||||
## check if the cpu support arm32 instruction or not, 126 means unsupported
|
||||
/opt/deepin-box86/box86 -v
|
||||
CHECK_ARM32=$?
|
||||
|
||||
IMAGE_VER=10deepin3
|
||||
IMAGE_DIR=/opt/deepin-wine-exagear-images/debian-buster
|
||||
ARCHIVE_FILE=files.7z
|
||||
|
||||
download_image() {
|
||||
pushd /var/cache/apt/archives >/dev/null
|
||||
apt download deepin-wine-exagear-images
|
||||
dpkg -x deepin-wine-exagear-images*.deb /
|
||||
rm deepin-wine-exagear-images*.deb
|
||||
echo $IMAGE_VER > $IMAGE_DIR/VERSION
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
move_box86_runsh() {
|
||||
if [[ -f $DEB_PATH/files/run_with_exagear.sh ]]; then
|
||||
echo 单图标
|
||||
mv $DEB_PATH/files/run_with_exagear.sh $DEB_PATH/files/run.sh
|
||||
else
|
||||
echo 多图标
|
||||
for shell_path in $(ls $DEB_PATH/files/*_with_exagear.sh)
|
||||
do
|
||||
name=${shell_path#$DEB_PATH/files/}
|
||||
name=${name%_with_exagear.sh}
|
||||
mv $shell_path $DEB_PATH/files/$name.sh
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
move_exagear_runsh() {
|
||||
if [[ -f $DEB_PATH/files/run_with_exagear.sh ]]; then
|
||||
echo 单图标
|
||||
mv $DEB_PATH/files/run_with_box86.sh $DEB_PATH/files/run.sh
|
||||
else
|
||||
echo 多图标
|
||||
for shell_path in $(ls $DEB_PATH/files/*_with_box86.sh)
|
||||
do
|
||||
name=${shell_path#$DEB_PATH/files/}
|
||||
name=${name%_with_box86.sh}
|
||||
mv $shell_path $DEB_PATH/files/$name.sh
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$KUNPENG" == "$cpu_vendor" ]] || [[ $CHECK_ARM32 != 0 ]];then
|
||||
echo "use exagear as emulator..."
|
||||
if [ ! -d /opt/exagear/bin ];then
|
||||
mkdir /opt/exagear/bin -p
|
||||
fi
|
||||
|
||||
if [ ! -e /opt/exagear/bin/ubt_x32a64_al ];then
|
||||
cp $DEB_PATH/files/exa/ubt_x32a64_al /opt/exagear/bin/ubt_x32a64_al
|
||||
fi
|
||||
|
||||
if [ ! -e /opt/exagear/bin/ubt_x64a64_al ];then
|
||||
cp $DEB_PATH/files/exa/ubt_x64a64_al /opt/exagear/bin/ubt_x64a64_al
|
||||
fi
|
||||
move_exagear_runsh
|
||||
mv $DEB_PATH/files/exa/wineserver /opt/deepin-wine6-stable/bin/wineserver
|
||||
else
|
||||
echo "use box86 as emulator..."
|
||||
move_box86_runsh
|
||||
mv $DEB_PATH/files/run_with_box86.sh $DEB_PATH/files/run.sh
|
||||
fi
|
||||
|
||||
true
|
||||
@@ -85,6 +85,9 @@ class Ui_MainWindow(object):
|
||||
self.action_2.setCheckable(True)
|
||||
self.action_2.setChecked(False)
|
||||
self.action_2.setObjectName("action_2")
|
||||
self.action_3 = QtWidgets.QAction(MainWindow)
|
||||
self.action_3.setCheckable(True)
|
||||
self.action_3.setObjectName("action_3")
|
||||
self.menu.addAction(self.openFile)
|
||||
self.menu.addSeparator()
|
||||
self.menu.addAction(self.exitProgram)
|
||||
@@ -93,6 +96,7 @@ class Ui_MainWindow(object):
|
||||
self.menu_2.addAction(self.actionGithub)
|
||||
self.menu_2.addAction(self.action_IPv6)
|
||||
self.menu_2.addAction(self.action_2)
|
||||
self.menu_2.addAction(self.action_3)
|
||||
self.menu_2.addAction(self.action)
|
||||
self.menubar.addAction(self.menu.menuAction())
|
||||
self.menubar.addAction(self.menu_2.menuAction())
|
||||
@@ -121,4 +125,5 @@ class Ui_MainWindow(object):
|
||||
self.action_IPv6.setText(_translate("MainWindow", "备用源1(只限IPv6用户)"))
|
||||
self.action.setText(_translate("MainWindow", "本地测试源(127.0.0.1)"))
|
||||
self.action_2.setText(_translate("MainWindow", "备用源2"))
|
||||
self.action_3.setText(_translate("MainWindow", "备用源3"))
|
||||
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
<addaction name="actionGithub"/>
|
||||
<addaction name="action_IPv6"/>
|
||||
<addaction name="action_2"/>
|
||||
<addaction name="action_3"/>
|
||||
<addaction name="action"/>
|
||||
</widget>
|
||||
<addaction name="menu"/>
|
||||
@@ -191,6 +192,14 @@
|
||||
<string>备用源2</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_3">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>备用源3</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
BIN
Wine运行器和Wine打包器傻瓜式使用教程(小白专用)20221126-V2.pdf
Normal file
BIN
__pycache__/InstallVisualBasicRuntime.cpython-37.pyc
Executable file → Normal file
BIN
__pycache__/InstallVisualCPlusPlus.cpython-37.pyc
Executable file → Normal file
BIN
arm-package.7z
Executable file → Normal file
@@ -1,5 +1,5 @@
|
||||
Package: spark-deepin-wine-runner
|
||||
Version: 2.4.1
|
||||
Version: 2.6.0~alpha1
|
||||
Maintainer: gfdgd xi <3025613752@qq.com>, 为什么您不喜欢熊出没和阿布呢
|
||||
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner, https://github.com/gfdgd-xi/deep-wine-runner, https://gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
||||
Architecture: all
|
||||
@@ -9,19 +9,21 @@ Recommends: winbind, wimtools
|
||||
Section: utils
|
||||
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
|
||||
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
|
||||
Installed-Size: 29616
|
||||
Installed-Size: 21844
|
||||
Description: gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的 wine 运行器
|
||||
2.4.1 更新内容:
|
||||
※1、不基于生态适配活动脚本的打包器支持只生成制作容器的 7z 包
|
||||
※2、两个打包器的容器自动删除脚本添加 kill.sh
|
||||
※3、Wine 运行器支持杀死对应容器进程
|
||||
※4、容器自动配置脚本和 Wine 安装器支持切换源
|
||||
5、非生态适配脚本打包器追加运行参数改为 --uri XXX 而非直接 XXX
|
||||
6、两个打包器新增星火应用商店投稿入口
|
||||
7、优化开启 Windows 虚拟机功能在未安装 VirtualBox 时的提示
|
||||
8、Reg Shot 版本从 1.8.3-beta1V5 升级到 1.9.0
|
||||
9、Geek Uninstaller 版本从 1.5.1.161 升级到 1.5.1.163
|
||||
10、容器自动配置脚本添加 installother 命令、修复返回值传递问题
|
||||
11、不显示 pip 安装库的提示信息(因为不是很核心的库)
|
||||
更新时间:2022年11月06日
|
||||
2.5.0 更新内容:
|
||||
※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);
|
||||
※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;
|
||||
※3、支持多图标的程序打包;
|
||||
※4、修复了安装更多 Wine 换源换了个寂寞的问题;
|
||||
※5、修复安装更多 Wine 重新安装后列表丢失的问题;
|
||||
※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;
|
||||
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
||||
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
||||
※9、支持移除指定的 .desktop 快捷方式;
|
||||
※10、新增日志分析功能以及导出、上传日志功能;
|
||||
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||
12、优化文案、新增友链;
|
||||
13、提供了部分组件的测试功能。
|
||||
更新时间:2022年11月25日
|
||||
作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
|
||||
@@ -9,8 +9,22 @@
|
||||
#################################################################################################################
|
||||
# 非强制性的必应组件,所以成功不成功都行
|
||||
echo 安装组件
|
||||
python3 -m pip install --upgrade pynput --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null | true
|
||||
python3 -m pip install --upgrade pynput --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true
|
||||
echo 执行完成
|
||||
echo 移除旧组件
|
||||
if [ -d /opt/apps/deepin-wine-runner/arm-package ]; then
|
||||
rm -rf /opt/apps/deepin-wine-runner/arm-package
|
||||
fi
|
||||
if [ -d /opt/apps/deepin-wine-runner/dlls-arm ]; then
|
||||
rm -rf /opt/apps/deepin-wine-runner/dlls-arm
|
||||
fi
|
||||
if [ -d /opt/apps/deepin-wine-runner/exa ]; then
|
||||
rm -rf /opt/apps/deepin-wine-runner/exa
|
||||
fi
|
||||
if [ -d /opt/apps/deepin-wine-runner/dxvk ]; then
|
||||
rm -rf /opt/apps/deepin-wine-runner/dxvk
|
||||
fi
|
||||
echo 移除完成
|
||||
# 如果为非 X86 PC,可以删除掉一些无用组件(主要是用不了)
|
||||
if [ `arch` != "x86_64" ]; then
|
||||
echo 非X86架构,删除对非X86架构无用的组件
|
||||
@@ -33,7 +47,10 @@ if [ `arch` != "x86_64" ]; then
|
||||
rm -rf /opt/apps/deepin-wine-runner/AllInstall.py
|
||||
rm -rf /opt/apps/deepin-wine-runner/InstallNewWineHQ.sh
|
||||
fi
|
||||
# 到时候切换 gpg 源会方便很多
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FD6EEA1F20CD4B27 > /dev/null 2>&1 | true
|
||||
apt update > /dev/null 2>&1 | true
|
||||
# 设置目录权限,让用户可读可写,方便后续删除组件
|
||||
chmod 777 -R /opt/apps/deepin-wine-runner
|
||||
# 向服务器返回安装数加1(不显示内容且忽略错误)
|
||||
curl https://304626p927.goho.co/spark-deepin-wine-runner/Install.php?Version=2.4.1 -s > /dev/null | true
|
||||
curl https://304626p927.goho.co/spark-deepin-wine-runner/Install.php?Version=2.5.0 -s > /dev/null 2>&1 | true
|
||||
|
||||
@@ -57,30 +57,37 @@ 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")
|
||||
if os.system("which wine > /dev/null"):
|
||||
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install wine -y")
|
||||
if os.system("which deepin-wine > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine -y")
|
||||
if os.system("which deepin-wine5 > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine5(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if os.system("which deepin-wine5-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine5-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine5-stable -y")
|
||||
if os.system("which deepin-wine6-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine6-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
if os.system("which spark-wine7-devel > /dev/null"):
|
||||
print("请问是否要安装 spark-wine7-devel(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
InstallSparkWine("spark-wine7-devel")
|
||||
if os.system("which ukylin-wine > /dev/null"):
|
||||
print("请问是否要安装 ukylin-wine(需要添加 ukylin 源,但因为可能会导致系统问题,将不会自动添加)?[Y/N]", end=" ")
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install ukylin-wine -y")
|
||||
print("全部完成!")
|
||||
@@ -19,13 +19,20 @@ import req as requests
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
from UI.AutoConfig import *
|
||||
from Model import *
|
||||
try:
|
||||
import PyQt5.QtWebEngineWidgets as QtWebEngineWidgets
|
||||
webeng = True
|
||||
except:
|
||||
print("未安装此依赖库")
|
||||
webeng = False
|
||||
|
||||
urlSourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/auto", # Gitlink 源
|
||||
"https://gitee.com/gfdgd-xi/deep-wine-runner-auto-configuration-script/raw/master/", # Gitee 源
|
||||
"https://gfdgd-xi.github.io/deep-wine-runner-auto-configuration-script/", # Github 源
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/auto/", # 备用源1,纯 IPv6 源
|
||||
"http://120.25.153.144/deep-wine-runner-auto-configuration-script/", # 备用源2,纯 IPv6 源
|
||||
"http://120.25.153.144/deep-wine-runner-auto-configuration-script/", # 备用源2
|
||||
"http://gfdgdxi.free.idcfengye.com/wine-runner-list/auto/", # 备用源 3
|
||||
"http://127.0.0.1/wine-runner-list/auto/" # 本地测试源
|
||||
]
|
||||
urlSources = urlSourcesList[0]
|
||||
@@ -98,6 +105,7 @@ class ProgramRunStatusUpload():
|
||||
|
||||
class InformationWindow():
|
||||
def ShowWindow():
|
||||
#webeng = False
|
||||
# 获取选中项
|
||||
try:
|
||||
choose = ui.searchList.selectionModel().selectedIndexes()[0].data()
|
||||
@@ -110,11 +118,13 @@ class InformationWindow():
|
||||
if i[0] == choose:
|
||||
fileName = i[1]
|
||||
break
|
||||
aboutHtml = ""
|
||||
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
|
||||
aboutHtml = str(about)
|
||||
if not "<" in about:
|
||||
# 非 Html 标签
|
||||
for i in about.splitlines():
|
||||
@@ -145,20 +155,49 @@ class InformationWindow():
|
||||
starHtml = ""
|
||||
if maxHead > 5:
|
||||
for i in range(end):
|
||||
starHtml += f"<img src='{programPath}/Icon/BadStar.svg' width=50>\n"
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/BadStar.svg' width=50>\n"
|
||||
else:
|
||||
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"
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/Star.svg' width=50>\n"
|
||||
else:
|
||||
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>"
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/UnStar.svg' width=50>"
|
||||
else:
|
||||
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()
|
||||
if webeng:
|
||||
informationText = QtWebEngineWidgets.QWebEngineView()
|
||||
print(aboutHtml)
|
||||
if aboutHtml[:7] == "Visit: ":
|
||||
url = aboutHtml[7:].splitlines()[0]
|
||||
print(url)
|
||||
informationText.setUrl(QtCore.QUrl(url.strip()))
|
||||
else:
|
||||
#informationText.linkClicked.connect(lambda: print("a"))
|
||||
try:
|
||||
with open("/tmp/deepin-wine-runner-information.html", "w") as file:
|
||||
file.write(about)
|
||||
informationText.setUrl(QtCore.QUrl("file:///tmp/deepin-wine-runner-information.html"))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
informationText.setHtml(about)
|
||||
#informationText.urlChanged.connect(lambda: informationText.setUrl(QtCore.QUrl("https://gfdgd-xi.github.io")))
|
||||
else:
|
||||
informationText = QtWidgets.QTextBrowser()
|
||||
informationText.setHtml(about)
|
||||
uploadFen = QtWidgets.QPushButton("提交评分")
|
||||
uploadFen.clicked.connect(lambda: ProgramRunStatusUpload.ShowWindow(fileName, choose))
|
||||
informationText.setHtml(about)
|
||||
|
||||
#informationText.setUrl(QtCore.QUrl("https://gfdgd-xi.github.io"))
|
||||
messageLayout.addWidget(informationText)
|
||||
messageLayout.addWidget(uploadFen)
|
||||
message.setWindowTitle(f"关于“{choose}”的介绍")
|
||||
@@ -329,7 +368,7 @@ def readtxt(path):
|
||||
|
||||
def ChangeSources():
|
||||
global urlSources
|
||||
sources = [ui.actionGitlink, ui.actionGitee, ui.actionGithub, ui.action_IPv6, ui.action_2, ui.action]
|
||||
sources = [ui.actionGitlink, ui.actionGitee, ui.actionGithub, ui.action_IPv6, ui.action_2, ui.action_3, ui.action]
|
||||
for i in range(0, len(sources)):
|
||||
if sources[i].isChecked():
|
||||
urlSources = urlSourcesList[i]
|
||||
@@ -372,7 +411,9 @@ if __name__ == "__main__":
|
||||
sourcesGroup.addAction(ui.actionGitlink)
|
||||
sourcesGroup.addAction(ui.actionGitee)
|
||||
sourcesGroup.addAction(ui.actionGithub)
|
||||
sourcesGroup.addAction(ui.action_IPv6)
|
||||
sourcesGroup.addAction(ui.action_2)
|
||||
sourcesGroup.addAction(ui.action_3)
|
||||
sourcesGroup.addAction(ui.action)
|
||||
sourcesGroup.triggered.connect(ChangeSources)
|
||||
sourcesGroup.setExclusive(True)
|
||||
|
||||
122
deb/opt/apps/deepin-wine-runner/BuildDesktop.py
Executable file
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月20日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 PyQt5 构建
|
||||
#################################################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
desktopList = []
|
||||
desktopUsrList = []
|
||||
|
||||
def GetDesktopList(path):
|
||||
for i in os.listdir(path):
|
||||
if os.path.isdir(f"{path}/{i}"):
|
||||
GetDesktopList(f"{path}/{i}")
|
||||
if os.path.isfile(f"{path}/{i}"):
|
||||
try:
|
||||
desktop = {}
|
||||
with open(f"{path}/{i}") as file:
|
||||
things = file.read()
|
||||
for k in things.splitlines():
|
||||
if not "=" in k:
|
||||
continue
|
||||
desktop[k[:k.index("=")].lower()] = k[k.index("=") + 1:]
|
||||
desktopList.append([desktop["Name".lower()], desktop["Icon".lower()], desktop["Exec".lower()], f"{path}/{i}"])
|
||||
except:
|
||||
traceback.print_exc()
|
||||
delButton.setEnabled(len(desktopList))
|
||||
|
||||
class DesktopList(QtCore.QThread):
|
||||
show = QtCore.pyqtSignal(int)
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
if os.path.exists(f"{homePath}/.local/share/applications"):
|
||||
GetDesktopList(f"{homePath}/.local/share/applications")
|
||||
self.show.emit(0)
|
||||
|
||||
def ShowDesktop(temp):
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if not len(desktopList):
|
||||
item = QtGui.QStandardItem("无")
|
||||
nmodel.appendRow(item)
|
||||
y = 0
|
||||
for i in desktopList:
|
||||
#item = QtGui.QStandardItem(QtGui.QIcon(i[1]), i[0])
|
||||
#nmodel.appendRow(item)
|
||||
if os.path.exists(i[1]):
|
||||
nmodel.setItem(y, 0, QtGui.QStandardItem(QtGui.QIcon(i[1]), i[0]))
|
||||
else:
|
||||
nmodel.setItem(y, 0, QtGui.QStandardItem(QtGui.QIcon.fromTheme(i[1]), i[0]))
|
||||
nmodel.setItem(y, 1, QtGui.QStandardItem(i[2]))
|
||||
nmodel.setItem(y, 2, QtGui.QStandardItem(i[3]))
|
||||
y += 1
|
||||
nmodel.setHeaderData(0, QtCore.Qt.Horizontal, "程序名")
|
||||
nmodel.setHeaderData(1, QtCore.Qt.Horizontal, "运行路径")
|
||||
nmodel.setHeaderData(2, QtCore.Qt.Horizontal, ".desktop 文件所在路径")
|
||||
nmodel.setColumnCount(3)
|
||||
desktopListView.setModel(nmodel)
|
||||
|
||||
def GetDesktopThread():
|
||||
global desktop
|
||||
desktop = DesktopList()
|
||||
desktop.show.connect(ShowDesktop)
|
||||
desktop.start()
|
||||
|
||||
def DeleteButton():
|
||||
index = desktopListView.currentIndex().row()
|
||||
if index < 0:
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "未选中任何项")
|
||||
return
|
||||
print(index)
|
||||
print(desktopList[index][3])
|
||||
#desktopListView.rowMoved(index)
|
||||
|
||||
#desktopListView.removeRow(index)
|
||||
try:
|
||||
os.remove(desktopList[index][3])
|
||||
del desktopList[index]
|
||||
ShowDesktop(0)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
homePath = os.getenv("HOME")
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
#GetDesktopList(f"{homePath}/.local/share/applications")
|
||||
#print(desktopList)
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
window = QtWidgets.QMainWindow()
|
||||
widget = QtWidgets.QWidget()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
delButton = QtWidgets.QPushButton("删除指定图标")
|
||||
delButton.clicked.connect(DeleteButton)
|
||||
#desktopListView = QtWidgets.QListView()
|
||||
desktopListView = QtWidgets.QTableView()
|
||||
desktopListView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
desktopListView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)#(QAbstractItemView::SelectRows)
|
||||
layout.addWidget(desktopListView, 0, 0, 1, 4)
|
||||
layout.addWidget(delButton, 1, 3, 1, 1)
|
||||
widget.setLayout(layout)
|
||||
window.setCentralWidget(widget)
|
||||
window.setWindowTitle("图标管理")
|
||||
window.resize(int(window.frameGeometry().width() * 1.5), int(window.frameGeometry().height() * 1.2))
|
||||
window.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
window.show()
|
||||
GetDesktopThread()
|
||||
app.exec_()
|
||||
BIN
deb/opt/apps/deepin-wine-runner/CheckDLL/Check.exe
Executable file
90
deb/opt/apps/deepin-wine-runner/CheckDLL/CheckCommand.py
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月18日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 PyQt5 构建
|
||||
#################################################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print("参数不足")
|
||||
sys.exit(1)
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("帮助:")
|
||||
print("[exe path] [option]")
|
||||
print("--json 以 json 格式输出")
|
||||
print("-w [wine botton] [wine program path]")
|
||||
|
||||
jsonPrint = "--json" in sys.argv
|
||||
if jsonPrint:
|
||||
del sys.argv[sys.argv.index("--json")]
|
||||
lists = []
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
checkDll = False
|
||||
if "-w" in sys.argv:
|
||||
wineCommand = sys.argv.index("-w")
|
||||
wineBotton = os.getenv("HOME")
|
||||
wineProgram = "deepin-wine6-stable"
|
||||
checkDll = True
|
||||
try:
|
||||
wineBotton = sys.argv[wineCommand + 1]
|
||||
wineProgram = sys.argv[wineCommand + 2]
|
||||
except:
|
||||
pass
|
||||
badChar = [
|
||||
"(", "?", "*", "!", ")", "&", "'", "\""
|
||||
]
|
||||
with open(sys.argv[1], "rb") as file:
|
||||
while True:
|
||||
things = file.readline()
|
||||
if things == b"":
|
||||
break
|
||||
for n in [".dll", ".DLL"]:
|
||||
if n.encode() in things:
|
||||
# 提取 DLL 名称
|
||||
for i in str(things[1: -2]).split("\\x"):
|
||||
charBad = False
|
||||
for b in badChar:
|
||||
if b in i:
|
||||
charBad = True
|
||||
if n in i and not charBad and i[0] != "/":
|
||||
name = i[2: ].replace(",{M", "").replace("+", "")
|
||||
# 文件路径合法性检测
|
||||
|
||||
try:
|
||||
dllName = name[:name.index(".dll") + 4]
|
||||
except:
|
||||
try:
|
||||
dllName = name[:name.index(".DLL") + 4]
|
||||
except:
|
||||
dllName = name
|
||||
|
||||
if dllName.lower() == ".dll":
|
||||
continue
|
||||
if dllName in lists:
|
||||
continue
|
||||
if checkDll:
|
||||
if jsonPrint:
|
||||
if os.system(f"WINEPREFIX='{wineBotton}' {wineProgram} '{programPath}/Check.exe' '{dllName}' > /dev/null 2>&1"):
|
||||
lists.append(dllName)
|
||||
continue
|
||||
else:
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wineProgram} '{programPath}/Check.exe' '{dllName}'")
|
||||
lists.append(dllName)
|
||||
elif jsonPrint:
|
||||
lists.append(dllName)
|
||||
continue
|
||||
else:
|
||||
print(dllName)
|
||||
lists.append(dllName)
|
||||
if jsonPrint:
|
||||
print(json.dumps(lists))
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 更新时间:2022年11月19日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
installvcpp 4
|
||||
info 提示 修复完成!重新检测即可
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 更新时间:2022年11月03日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
installother 2
|
||||
info 提示 修复完成!重新检测即可
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 更新时间:2022年11月19日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
installvb 4
|
||||
info 提示 修复完成!重新检测即可
|
||||
451
deb/opt/apps/deepin-wine-runner/CheckDLL/lists.json
Normal file
@@ -0,0 +1,451 @@
|
||||
{
|
||||
"check": "",
|
||||
"aaaamon.dll": "描述: aaaamon.dll是Aaaa监视软件动态链接库文件相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"activeds.dll": "描述: activeds.dll是活动目录服务相关应用程序COM接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"actxprxy.dll": "描述: actxprxy.dll是Marshalingx ActiveX控件COM接口相关文件。\n属于: Windows ActiveX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"adsmsext.dll": "描述: adsmsext.dll是LDAP协议支持相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advert.dll": "描述: advert.dll是一个广告软件相关文件,会在Internet Explorer浏览器上显示广告。\n属于: Aureate \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"amovie.dll": "描述: amovie.ocx是应用在Windows 9x平台的多媒体和视频播放技术相关文件。\n属于: IE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ash.dll": "描述: ash.dll是Bankash木马相关文件,该木马允许攻击者访问你的计算机,窃取密码和个人数据。\n属于: Bankash Trojan \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ati_d3d.dll": "描述: ati_d3d.dll是ATI显示卡3D效果支持相关文件。\n属于: ATI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avicap.dll": "描述: avicap.dll是Windows API应用程序接口,用于截取AVI视频和摄像头及其它视频硬件设备的视频。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avifil32.dll": "描述: avifil32.dll是AVI视频支持相关模块。\n属于: Microsoft AVI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awfxrn32.dll": "描述: awfxrn32.dll是IFAX文件传输接口相关文件。\n属于: 未知N/A \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awlft332.dll": "描述: awlft332.dll是本地传真程序接口相关文件。\n属于: Windows 98,95 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awlhut32.dll": "描述: awlhut32.dll是ASN.1数据编码和解码相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"awutil32.dll": "描述: awutil32.dll是微软Microsoft传真应用程序相关文件。\n属于: Microsoft Fax \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"batmeter.dll": "描述: batmeter.dll是电池状态信息管理相关文件,出现在BatMeterCapabilities、CreateBatMeter、DestroyBatMeter和PowerCapabilities等电池厂家的程序中。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bib.dll": "描述: bib.dll是Adobe Acrobat界面相关文件。\n属于: Adobe Acrobat \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"browselc.dll": "描述: browselc.dll是Windows Shell壳浏览用户界面相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"btvid_32.dll": "描述: btvid_32.dll是Brooktree视频卡I2C和GPIO应用程序接口相关文件。\n属于: Brooktree \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cabinet.dll": "描述: cabinet.dll是Cab压缩包应用程序接口相关文件。\n属于: Microsoft Cabinet File \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"calwin32.dll": "描述: calwin32.dll是NetWare应用程序相关动态链接库文件。\n属于: NetWare \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdaengine.dll": "描述: cdaengine.dll是WildTangent广告间谍软件相关文件。\n属于: WildTangent Spyware \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdosys.dll": "描述: cdosys.dll是应用程序CDO相关文件。\n属于: CDO \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdudflib.dll": "描述: cdudflib.dll是Direct CD光盘刻录软件相关支持文件。\n属于: DirectCD \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cmc.dll": "描述: cmc.dll是MAPI 1.0(Windows消息应用程序接口)公用消息调用相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d32-fw.dll": "描述: d32-fw.dll是雅虎通相关动态链接库文件文件,用于使雅虎通能够透过防火墙。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d8thk.dll": "描述: d3d8.dll是DirectX 8.0的Direct3D显示支持程序,用于支持游戏。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3dim700.dll": "描述: d3dim700.dll是微软Microsoft Direct3D图形系统相关模块。\n属于: Direct3D \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3dxof.dll": "描述: d3dxof.dll是Direct3D文件格式相关文件。\n属于: Direct3D \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dao3032.dll": "描述: dao3032.dll是Microsoft Jet DAO数据访问相关动态链接库文件。\n属于: Microsoft Jet \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dciman32.dll": "描述: dciman32.dll是显示控制界面管理相关文件,用于调制显示性能。\n属于: Display Control Interface Manager \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddrawex.dll": "描述: ddrawex.dll是Direct Draw显示相关模块。\n属于: DirectDraw \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"deskcp16.dll": "描述: deskcp16.dll是Windows 9x操作系统显示配置相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devenum.dll": "描述: devenum.dll是DirectShow相关模块,用于声音输入、声音输出和MIDI设备。\n属于: DirectShow \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devmgr.dll": "描述: devmgr.dll是Windows设备管理相关文件。\n属于: Windows Device Manager \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dispex.dll": "描述: dispex.dll是Visual Basic脚本COM接口相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dnsapi.dll": "描述: dnsapi.dll是DNS客户端应用程序接口API相关文件。\n属于: DNS Client \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dplay.dll": "描述: dplay.dll是DirectPlay播放器的支持文件。\n属于: Microsoft DirectPlay DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dplayx.dll": "描述: dplayx.dll是DirectPlay相关支持文件。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"drmclien.dll": "描述: drmclien.dll是播放包相关系统库文件。\n属于: DRM \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dxtmsft.dll": "描述: dxtmsft.dll是DirectX媒体图像转换相关支持文件。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dxtrans.dll": "描述: dxtrans.dll是DirectX相关转换模块。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ecomwr.dll": "描述: ecomwr.dll是McAfee杀毒软件相关动态链接库文件。\n属于: McAfee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"efsadu.dll": "描述: efsadu.dll是文件加密相关支持模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"encsplsh.dll": "描述: encsplsh.dll是微软Microsoft Encarta百科全书相关文件。\n属于: 未知N/A \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"esent.dll": "描述: esent.dll是VBA相关运行时支持文件。\n属于: VBA \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"expsrv.dll": "描述: expsrv.dll是VBA运行时相关服务文件。\n属于: VBA \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide.dll": "描述: glide.dll是3DFX (Voodoo)图像显示卡相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"googletoolbar1.dll": "描述: googletoolbar1.dll是google.com出品的搜索工具条相关文件。\n属于: Google Searching Facility \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gpsb2.dll": "描述: gpsB2.dll是VX2间谍软件相关程序。\n属于: VX2 Spyware Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hid.dll": "描述: hid.dll是USB的HID相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hotplug.dll": "描述: hotplug.dll是微软Microsoft Windows安全硬件移除相关文件,用于例如PCMCIA设备。\n属于: Microsoft Windows Opearting System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hpdcmon.dll": "描述: hpdcmon.dll是惠普HP打印机语言监视支持文件。\n属于: HP Printers \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iccvid.dll": "描述: iccvid.dll是Cinepak视频解码相关文件。\n属于: Cinepak Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icm32.dll": "描述: icm32.dll是显示器色彩调节和计算相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icqcore.dll": "描述: icqcore.dll是ICQ即时通讯软件图形用户界面相关文件。\n属于: ICQ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icqmapi.dll": "描述: icqmapi.dll是ICQ即时通讯软件消息相关应用程序接口文件。\n属于: ICQ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idapi32.dll": "描述: idapi32.dll是Borland数据库系统相关文件。\n属于: Borland Database Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idq.dll": "描述: idq.dll是ISAPI索引相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iedkcs32.dll": "描述: iedkcs32.dll是微软Microsoft Internet Explorer浏览器用户个性化相关文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ifc22.dll": "描述: ifc22.dll是罗技Logitech鼠标增强相关文件。\n属于: iFeel TouchSence Logitech mouse \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iforce2.dll": "描述: iforce2.dll是力反馈游戏手柄相关文件。\n属于: Games \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imeshare.dll": "描述: imeshare.dll是微软Microsoft Office输入法相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgcmn.dll": "描述: imgcmn.dll是基本图形相关库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgscan.dll": "描述: imgscan.ocx是ImagEdit扫描控制相关文件\n属于: Microsoft ImagEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imm32.dll": "描述: imm32.dll是微软Microsoft Windows输入法管理相关文件。\n属于: Microsoft Windows (IMM) \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetcomm.dll": "描述: inetcomm.dll是微软即时通讯相关应用程序接口文件。\n属于: Microsoft Internet Messaging API \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetcplc.dll": "描述: inetcplc.dll是Internet控制面板相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetwh32.dll": "描述: inetwh32.dll是Blue Sky软件在线帮助相关文件。\n属于: Blue Sky DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ir50_32.dll": "描述: ir50_32.dll是Intel Indeo视频解码相关文件。\n属于: Indeo video \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"itss.dll": "描述: itss.dll是微软Microsoft储存系统相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jgdw400.dll": "描述: jgdw400.dll是AOL .ART格式文件相关支持文件。\n属于: AOL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jit.dll": "描述: jit.dll是微软Java运行时相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jpeg1x32.dll": "描述: jpeg1x32.dll是JPEG图像相关库文件。\n属于: Microsoft JPEG \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"kbdus.dll": "描述: kbdus.dll是美式键盘相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lmf32v.dll": "描述: lmf32v.dll是Vertical Theories的广告程序。该程序监视你的浏览行为,并回传到其服务器进行分析。该进程也会弹出广告。\n属于: Hyperlinker Spyware Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"loadpowerprofile.dll": "描述: LoadPowerProfile (powrprof.dll)是微软Microsoft Windows 9x电源管理控制面板相关模块。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"localspl.dll": "描述: localspl.dll是本地打印机相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"locwin32.dll": "描述: locwin32.dll是Novell Netware客户端相关文件。\n属于: Novell NetWare Client API \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ls3df.dll": "描述: ls3df.dll是Mafia计算机游戏相关文件。\n属于: Game Mafia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lsasrv.dll": "描述: lsasrv.dll用于本地安全密码验证相关动态链接库文件。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ltwrp10n.dll": "描述: ltwrp10n.dll是Win32 LEADTOOLS图像库文件。\n属于: LEADTOOLS \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lz32.dll": "描述: lz32.dll是LZ解压和压缩相关文件。\n属于: LZ Expand/Compress \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"lzexpand.dll": "描述: lz32.dll是LZ压缩格式解压和压缩相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapistub.dll": "描述: mapistub.dll是Windows NT的MAPI相关文件。\n属于: MAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapobj90.dll": "描述: mapobj90.dll是MapPoint相关软件。它是一个地图和分析工具。\n属于: MapPoint \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxlink3.dll": "描述: maxlink3.dll是Visioneer扫描仪相关库文件。\n属于: 未知N/A \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxrast.dll": "描述: maxrast.dll是Visioneer公司相关库文件,用于支持图像。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxutil.dll": "描述: maxutil.dll是Visioneer扫描仪相关库文件。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mdvmqlt.dll": "描述: mdvmqlt.dll是EA公司Battle Field 1942游戏相关文件。\n属于: Game BattleField \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42loc.dll": "描述: mfc42loc.dll是MFC应用程序本地化资源相关文件。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42u.dll": "描述: mfc42u.dll是微软MFC程序相关动态链接库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfcuia32.dll": "描述: mfcuia32.dll是对象链接与嵌入OLE的ANSI和Unicode对话框支持相关文件。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmcndmgr.dll": "描述: mmcndmgr.dll是MMC Node管理COM接口相关动态链接库文件。\n属于: MMC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmefxe.dll": "描述: mmefxe.ocx是微软多媒体控制相关COM接口文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"moricons.dll": "描述: moricons.dll是Windows NT图标资源文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mplvpx.dll": "描述: mplvpx.dll是微软Microsoft Media Player音乐回放相关动态链接库文件。\n属于: Microsoft Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mprddm.dll": "描述: mprddm.dll微软Microsoft路由和RAS拨号管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msacm.dll": "描述: msacm.dll是微软音频压缩相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscat32.dll": "描述: mscat32.dll是MakeCat.exe相关动态链接库文件。\n属于: MakeCat \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscms.dll": "描述: mscms.dll是微软图像色彩管理系统相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomctl.dll": "描述: mscomctl.ocx是公用ActiveX插件控制模块。\n属于: Windows ActiveX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msconf.dll": "描述: msconf.dll是NetMeeting网络会议程序相关文件。\n属于: Netmeeting \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdart32.dll": "描述: msdart32.dll是对象链接与嵌入数据库访问相关模块。\n属于: OLE DB \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdtcprx.dll": "描述: msdtcprx.dll是微软Microsoft分布式负载平衡相关文件。\n属于: MS DTC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgr3ge.dll": "描述: msgr3ge.dll是微软Office产品德语字符检查支持相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgrru32.dll": "描述: msgrru32.dll是微软Office产品俄语字符检查相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgsvc.dll": "描述: msgsvc.dll是NT信使服务管理相关文件,用于发送和接收信使消息。\n属于: Alerter \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mshtmled.dll": "描述: mshtmled.dll是微软HTML编辑相关模块。\n属于: HTML \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msieftp.dll": "描述: msieftp.dll是微软IE浏览器支持FTP访问相关文件。\n属于: Internet Explorer \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjet40.dll": "描述: msjet40.dll是Microsoft Jet数据库相关文件。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjt3032.dll": "描述: msjt3032.dll是微软Microsoft Jet数据库相关文件。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjter35.dll": "描述: msjter35.dll是微软Microsoft Jet数据库引擎相关文件。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msls31.dll": "描述: msls31.dll是Internet Explorer浏览器和字处理程序Unicode字符支持相关文件。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msnet32.dll": "描述: msnet32.dll是微软Microsoft 32位网络应用程序接口相关文件。\n属于: Microsoft Network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoert2.dll": "描述: msoert2.dll是微软Microsoft Outlook Express动态链接库文件。\n属于: Outlook Express \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msorcl32.dll": "描述: msorcl32.dll是Oracle 微软ODBC数据库相关文件。\n属于: ODBC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mspdb60.dll": "描述: mspdb60.dll是Microsoft Visual Studio编程数据库支持相关文件。.\n属于: Visual Studio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msrating.dll": "描述: msrating.dll是微软Microsoft网络安全等级和本地用户管理相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msrclr40.dll": "描述: msrclr40.dll是DAO 3.6数据库相关文件。\n属于: Microsoft Jet \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msrdo20.dll": "描述: msrdo20.dll是ODBC数据库支持相关文件。\n属于: ODBC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mssp3ge.dll": "描述: mssp3ge.dll是Lingsoft CSAPI字符检查相关文件。\n属于: Lingsoft \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msspel2.dll": "描述: msspel2.dll是Word 6.0字符校对检查相关文件。\n属于: Word \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mswsock.dll": "描述: mswsock.dll是Winsock网络服务相关文件。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mydocs.dll": "描述: mydocs.dll是我的文档文件夹用户解码相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"n32userl.dll": "描述: n32userl.dll是Norton AntiVirus反病毒软件相关模块。\n属于: Norton Antivirus \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netapi.dll": "描述: netapi.dll是Windows网络应用程序接口相关文件,用于访问微软网络。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netdtect.dll": "描述: netdtect.dll是网卡自动检测相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netevent.dll": "描述: netevent.dll是网络错误消息相关提醒模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netman.dll": "描述: netman.dll是网络连接管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netrap.dll": "描述: netrap.dll是网络远程管理协议相关模块。.\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netshell.dll": "描述: netshell.dll是网络连接管理Shell壳程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netwin32.dll": "描述: netwin32.dll是Novell NetWare网络库文件。\n属于: Novell NetWare Net Library \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"newdotnet.dll": "描述: newdotnet.dll是New.net应用程序相关动态链接库文件。\n属于: New.net \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ntdsapi.dll": "描述: ntdsapi.dll是分布式计算机处理环境的目录服务COM接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvqtwk.dll": "描述: NvQTwk.dll是Nvidia显示卡相关库文件。\n属于: Nvidia Graphics Library Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nwcalls.dll": "描述: nwcalls.dll是Novell NetWare应用程序接口相关文件,用于NCP连接文件服务器和客户端计算机。\n属于: NetWare API \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbcbcp.dll": "描述: odbcint.dll是ODBC数据库查询相关模块。\n属于: ODBC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbcint.dll": "描述: odbcint.dll是ODBC数据库查询相关模块。\n属于: Microsoft ODBC Resource DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbcjt32.dll": "描述: odbcint.dll是微软ODBC数据库查询相关模块。\n属于: Microsoft ODBC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole2.dll": "描述: ole2.dll是对象链接与嵌入相关模块。\n属于: Microsoft OLE 2.3.2 16/32 Interoperability Library \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oledlg.dll": "描述: ole2.dll是对象链接与嵌入OLE相关模块,用于公共对话框。\n属于: Microsoft OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p2bbnd.dll": "描述: p2bbnd.dll是Crystal数据报告相关模块。\n属于: Crystal Report \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p2sodbc.dll": "描述: p2sodbc.dll是ODBC数据Crystal报告相关模块。\n属于: Crystal Report \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"passfilt.dll": "描述: passfilt.dll是密码策略和保护相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pdh.dll": "描述: pdh.dll是登陆和硬件统计相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pdm.dll": "描述: pdm.dll是进程脚本调试管理相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"perfctrs.dll": "描述: perfctrs.dll是Windows登陆和硬件统计相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"perfproc.dll": "描述: perfproc.dll是登陆和硬件统计相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pifmgr.dll": "描述: pifmgr.dll是windows图标资源管理相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pnen3260.dll": "描述: pnen3260.dll是RealMedia Player播放器相关模块。\n属于: RealMedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pngu3263.dll": "描述: pngu3263.dll是Realnetworks RealPlayer播放器图形用户界面相关模块。\n属于: RealPlayer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pngu3266.dll": "描述: pngu3266.dll是RealMedia Player播放器相关模块。\n属于: RealMedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pperr.dll": "描述: pperr.dll是Visioneer 5300 USB接口扫描器设备相关模块。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"printui.dll": "描述: printui.dll是命令行方式安装打印机相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"prismxl.dll": "描述: prismxl.exe是Lanovation PrismXL相关服务,用于进行远程控制。\n属于: Lanovation PrismXL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pstprx32.dll": "描述: pstprx32.dll是微软Microsoft Outlook代理储存管理相关文件。\n属于: Microsoft Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ra32.dll": "描述: ra32.dll是RealAudio音频支持相关文件。\n属于: RealAudio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ragui32.dll": "描述: ragui32.dll是RealAudio音频高级支持文件。\n属于: RealAudio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasapi16.dll": "描述: rasapi16.dll是16位网络拨号应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasman.dll": "描述: rasman.dll是远程控制相关软件模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasscrpt.dll": "描述: rasscrpt.dll是网络拨号脚本相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"regsvr32.dll": "描述: regsvr32.dll是DLL添加辅助相关文件,用于注册和反注册DLL文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rmoc3260.dll": "描述: rmoc3260.dll是RealPlayer和Windows Media Player媒体回放相关COM接口文件。\n属于: Real Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rnaui.dll": "描述: rnaui.dll是网络拨号设置库文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rnr20.dll": "描述: rnr20.dll是微软Microsoft Windows Sockets 2.0的TCP/IP协议相关服务。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpcss.dll": "描述: rpcss.dll是分布式COM服务相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpmn3260.dll": "描述: rpmn3260.dll是RealNetworks公司RealPlayer产品动态链接库文件。\n属于: Real Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rsabase.dll": "描述: rsabase.dll是Windows 2000加密服务相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rsaenh.dll": "描述: rsaenh.dll是微软Microsoft增强加密服务相关文件,用于128位加密。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rtutils.dll": "描述: rtutils.dll是一个追踪API接口,用于输出诊断信息到微软Microsoft Windows NT/Windows 2000路由和远程控制服务。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rupdate.dll": "描述: rupdate.dll是McAfee产品相关文件,用于自动升级。\n属于: McAfee Products \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"samlib.dll": "描述: samlib.dll是安全认证管理应用程序接口API相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sendmail.dll": "描述: sendmail.dll是用于通过网站发送邮件的库文件。\n属于: Microsoft Windows IIS \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sens.dll": "描述: sens.dll是系统事件提醒服务相关库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sensapi.dll": "描述: sensapi.dll是系统事件提醒服务相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupwbv.dll": "描述: setupwbv.dll用于检查并修复Internet Explorer配置。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sfc.dll": "描述: sfc.dll用于校验和监视系统文件变更。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sfcfiles.dll": "描述: sfcfiles.dll是系统文件监视和验证相关程序。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sh31w32.dll": "描述: sh31w32.dll用于内存利用情况。\n属于: SmartHeap \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shell.dll": "描述: shell.dll是Windows Shell壳应用程序接口相关库文件,用于打开网页和文件。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shimgvw.dll": "描述: shimgvw.dll用于图像显示的COM接口程序。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"softpub.dll": "描述: softpub.dll是用于支持加密的动态链接库文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"speer.dll": "描述: Speer.dll是Solid Peer间谍软件相关文件。\n属于: Solid Peer spyware \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spin32.dll": "描述: spin32.ocx是Visual Basic语言的ActiveX控件。\n属于: Microsoft Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spmsg.dll": "描述: spmsg.dll是用于显示service packs补丁包消息的文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sqlsrv32.dll": "描述: sqlsrv32.dll是用于微软SQL服务ODBC驱动相关文件。\n属于: Microsoft SQL Server ODBC Driver \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ss32x25.dll": "描述: ss32x25.ocx是FarPoint技术相关文件,用于显示控制。\n属于: FarPoint \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"stclient.dll": "描述: stclient.dll是COM+配置安全客户端相关文件。\n属于: Microsoft COM+ \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"stobject.dll": "描述: stobject.dll是资源文件,用于图标等。\n属于: Microsoft Systray \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"storprop.dll": "描述: storprop.dll是用于更改DVD读取区域相关动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"streamci.dll": "描述: streamci.dll是安装流媒体硬件设备相关文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"sysmon.dll": "描述: sysmon.ocx是系统性能监视的ActiveX控件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"system86.dll": "描述: system86.dll是内存分配库文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tapi.dll": "描述: tapi.dll是微软Windows电话服务相关模块。\n属于: Windows Telephony \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tdc.dll": "描述: tdc.ocx是Visual Basic应用程序相关表列数据ActiveX控件模块。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"thumbvw.dll": "描述: thumbvw.dll是文档缩略图察看相关动态链接库文件,用于在资源管理器中察看文档、JPEG文件等。\n属于: Thumbnail View \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tl32v20.dll": "描述: tl32v20.dll是DiskKeeper软件保护锁相关文件。\n属于: DiskKeeper \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"toolhelp.dll": "描述: toolhelp.dll是Windows默认数组应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"traffic.dll": "描述: traffic.dll是微软飞行模拟软件第三方模块。\n属于: Flight Simulator \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tsd32.dll": "描述: tsd32.dll是音频编码和解码相关文件。\n属于: TrueSpeech \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"txfaux.dll": "描述: txfaux.dll是微软Microsoft分布式处理相关文件。\n属于: MSDTC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"unrar.dll": "描述: unrar.dll是RAR压缩包解压相关文件。\n属于: UnRAR \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"url.dll": "描述: url.dll是Internet快捷壳扩展相关应用程序接口文件。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"usp10.dll": "描述: usp10.dll是字符显示脚本应用程序接口相关文件。\n属于: Uniscribe \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb5stkit.dll": "描述: vb5stkit.dll是VB应用程序创建快捷方式应用程序接口相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vba332.dll": "描述: vba322.dll是Microsoft Office自动控制相关模块。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbajet32.dll": "描述: vbajet32.dll是Visual Basic应用程序开发相关文件。\n属于: VBA \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ver.dll": "描述: ver.dll是Windows版本检测应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"version.dll": "描述: version.dll是Windows NT系统版本检测应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vfpodbc.dll": "描述: vfpodbc.dll是Visual FoxPro应用程序ODBC数据管理应用程序接口相关文件。\n属于: ODBC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vsnetutils.dll": "描述: vsnetutils.dll是ZoneLabs ZoneAlarm防火墙软件相关文件。\n属于: ZoneAlarm \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab32res.dll": "描述: wab32res.dll是微软地址薄相关文件,用于Outlook和Outlook Express储存Email邮件地址和其它联系信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"webhits.dll": "描述: webhits.dll是网络服务应用程序接口相关模块,用于统计点击率高的HTML页面。\n属于: ISAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"win87em.dll": "描述: win87em.dll是Windows应用程序浮点运算相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winnls.dll": "描述: winnls.dll是特殊字符输入扩展相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winplay.dll": "描述: winplay.dll是游戏软件多媒体播放解码回放相关文件。\n属于: Game \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winscard.dll": "描述: winscard.dll是个人计算机对智能卡读取相关程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wkssvc.dll": "描述: wkssvc.dll是本地系统进行远程文件打印相关服务文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wldap32.dll": "描述: wldap32.dll是LDAP应用程序接口相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wlnotify.dll": "描述: wlnotify.dll是对Windows事件提醒相关应用程序接口,例如Windows登陆、关机、注销等。\n属于: Winlogon \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmicore.dll": "描述: wmicore.dll是WMI服务相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmmutil.dll": "描述: wmmutil.dll是Windows Movie Maker影像处理程序支持文件。\n属于: Windows Movie Maker \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wow32.dll": "描述: wow32.dll是16位代码调用32位代码应用程序接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wshom.dll": "描述: wshom.ocx是Windows本地脚本对象运行时相关文件。\n属于: Windows Script Host \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsnmp32.dll": "描述: wsnmp32.dll是SNMP管理应用程序接口,用于发送和接收SNMP精灵的请求。\n属于: WinSNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wtsapi32.dll": "描述: wtsapi32.dll是终端服务的应用程序接口,用于包括:(1) 管理终端服务,(2)设置和恢复终端服务用户的配置信息,(3)应用终端服务虚拟频道。\n属于: Windows Terminal Server \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wuv3is.dll": "描述: wuv3is.dll是Windows Update升级相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xolehlp.dll": "描述: xolehlp.dll是Microsoft分布式平衡负载相关应用程序接口文件。\n属于: MSDTC \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ac1st15.dll": "描述: ac1st15.dll是AutoCAD、AutoCAD LT、KeyPLANTING和KeySCAPE等软件动态链接库,该文件是Autodesk公司出品。\n属于: AutoCAD \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"binkw32.dll": "描述: binkw32.dll是BINK视频解码器相关进程,用于压缩视频回放,例如游戏中的视频。\n属于: Bink Video Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bwcc.dll": "描述: bwcc.dll是Borland Windows控件相关动态链接库文件。\n属于: Borland C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bwcc32.dll": "描述: bwcc32.dll是Borland Windows控件相关动态链接库文件。\n属于: Borland C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cards.dll": "描述: cards.dll是Windows纸牌游戏相关文件。\n属于: Game Windows Solitare \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cctrust.dll": "描述: cctrust.dll是Symantec公司ccTrust公用客户端动态链接库文件。\n属于: Symantec Products \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cd_clint.dll": "描述: cd_clint.dll是Cydoor公司动态链接库文件。\n属于: CYDOOR \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdonts.dll": "描述: cdonts.dll协同数据对象界面相关文件。\n属于: CDO \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cncs232.dll": "描述: cncs232.dll是Europress和IMSI公司多媒体库文件,用于支持它们的游戏。\n属于: Games Multimedia Fusion \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cncs32.dll": "描述: cncs32.dll是create游戏图像相关动态链接库文件。\n属于: Game Factory \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"core.dll": "描述: core.dll是SuperScape 3D Viewer察看器相关动态链接库。\n属于: Viscape Universal \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d9.dll": "描述: d3d9.dll是DirectX 9的动态链接库,用于支持Windows多媒体和游戏。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"disktool.dll": "描述: disktool.dll是DiskTool软件动态链接库文件,它是一款系统管理软件用于监视磁盘状态和避免数据文件储存问题。\n属于: Disktool \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"eax.dll": "描述: eax.dll是EAX环绕音效特性相关库文件。\n属于: EAX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"egnsengine.dll": "描述: egnsengine.dll是Gator GAIN间谍软件相关文件。\n属于: Gator GAIN \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"fm20.dll": "描述: fm20.dll是微软表单创建相关动态链接库文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gapi32.dll": "描述: gapi32.dll是微软邮件协议相关文件。\n属于: Microsoft Exchange \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide2x.dll": "描述: glide2x.dll是3DFX (Voodoo)显示卡Glide 3D驱动程序相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide3x.dll": "描述: glide3x.dll是3DFX (Voodoo)显示卡Glide 3D驱动程序相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glu32.dll": "描述: glide2x.dll是OpenGL图像相关动态链接库文件。\n属于: Microsoft OpenGL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hhctrl.dll": "描述: hhctrl.ocx是Microsoft帮助文档界面相关文件。\n属于: Microsoft HTML Help Control \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idle.dll": "描述: idle.dll是Microsoft Visual C++无功分量部分相关文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iepeers.dll": "描述: iepeers.dll是微软Microsoft Internet Explorer浏览器库文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ijl15.dll": "描述: ijl15.dll是IntelJPG图像压缩相关库文件。\n属于: Intel JPEG Library \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgedit.dll": "描述: imgedit.ocx是微软图像处理相关文件。\n属于: Microsoft ImagEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jscript.dll": "描述: jscript.dll是Microsoft JavaScript脚本支持相关文件。\n属于: Microsoft JScript \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"libeay32.dll": "描述: libeay32.dll是OpenSSL加密特性相关文件,用于通过网络加密传输。\n属于: OpenSSL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxcodec.dll": "描述: maxcodec.dll是ScanSoft PaperPort软件图像压缩和解压相关模块。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxkernl.dll": "描述: maxkernl.dll是ScanSoft PaperPort Visioneer扫描仪相关库文件。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc30.dll": "描述: mfc30.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc40.dll": "描述: mfc40.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42.dll": "描述: mfc42.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42d.dll": "描述: mfc42d.dll是MFCDLL共享库文件,用于支持调试版本的MFC程序。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc70.dll": "描述: mfc70.dll是微软Microsoft MFC程序相关库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfcans32.dll": "描述: mfcans32.dll用于对对象链接和嵌入OLE的Unicode和MBCS字符支持。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfco42d.dll": "描述: mfco42d.dll是MFC OLE调试版本动态链接库文件。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mhputilu.dll": "描述: mhputilu.dll是微软Microsoft Picture It图像软件动态链接库文件。\n属于: Microsoft Picture It! Publishing 2001 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mlang.dll": "描述: mlang.dll是多语言支持动态链接库文件。用于转换网络字符集为Unicode。\n属于: IE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mplapx.dll": "描述: mplapx.dll是微软Microsoft Media Player音乐回放相关模块。\n属于: Microsoft Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mrtrate.dll": "描述: mrtrate.dll是Intuit Quicken动态链接库文件。\n属于: Rate Sensing Manager \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomm32.dll": "描述: mscomm32.ocx是ActiveX公用控制模块,用于例如Visual Basic 6.0程序的MSComm控制。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdxm.dll": "描述: msdxm.ocx是Windows Media Player播放器ActiveX控制相关文件。\n属于: Windows Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mshtml.dll": "描述: mshtml.dll是HTML解释器相关模块。\n属于: HTML \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjet35.dll": "描述: msjet35.dll是微软Microsoft Jet数据引擎主要文件。该文件用于向Microsoft Access数据库读写数据。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mso9.dll": "描述: mso9.dll是微软Microsoft Office 2000办公软件套装的一部分。\n属于: Office 2000 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mso97.dll": "描述: mso97.dll是微软Microsoft Office 2000软件套装的一部分。\n属于: Office 2000 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoe.dll": "描述: msoe.dll是Outlook Express邮件程序相关模块。\n属于: Outlook Express \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mss32.dll": "描述: mss32.dll是Miles声音播放系统库文件,用于WinAMP等多媒体程序音乐回放和声音特效。\n属于: WinAmp \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msscript.dll": "描述: msscript.ocx是Visual Basic 6.0应用程序脚本控制的一部分,用于运行时库。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mssp232.dll": "描述: mssp232.dll是微软Microsoft Office软件字符检查相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msspell3.dll": "描述: msspell3.dll是文档字符检查相关模块。\n属于: Word \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msstdfmt.dll": "描述: msstdfmt.dll是微软标准数据格式对象相关动态链接库文件。\n属于: Visual Studio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvbvm50.dll": "描述: msvbvm50.dll是微软Microsoft Visual Basic虚拟机相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvbvm60.dll": "描述: msvbvm60.dll是微软Microsoft Visual Basic虚拟机相关模块。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcirt.dll": "描述: msvcirt.dll是微软C语言程序运行库相关文件,用于例如打印。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcirtd.dll": "描述: msvcirtd.dll是用户选择进行调试版本编译时所使用的运行库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp50.dll": "描述: msvcp50.dll是标准的C运行库相关程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp60.dll": "描述: msvcp60.dll是标准的C运行库程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp70.dll": "描述: msvcp70.dll是.Net的C运行库相关文件。\n属于: Microsoft .NET \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcr70.dll": "描述: msvcr70.dll是微软C运行库相关程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt.dll": "描述: msvcrt.dll是标准的微软C运行库文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt10.dll": "描述: msvcrt10.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt20.dll": "描述: msvcrt20.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt40.dll": "描述: msvcrt40.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrtd.dll": "描述: msvcrtd.dll是微软编译程序调试版本相关文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvfw32.dll": "描述: msvfw32.dll是微软BMP位图压缩和解压缩相关文件,用于Microsoft Video视频。\n属于: Microsoft Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mswinsck.dll": "描述: mswinsck.ocx是Visual Basic语言的socket编程相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msxml.dll": "描述: msxml.dll是Internet Explorer 4.0或更高版本的浏览器相关文件,用于解释XML文档。\n属于: XML \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"npdocbox.dll": "描述: NPDocBox.dll是Adobe Acrobat插件相关文件,为Netware和Internet Explorer浏览器安装。\n属于: Adobe Acrobat \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvcpl.dll": "描述: nvcpl.dll是NVIDIA显示卡相关动态链接库文件。\n属于: NVIDIA drivers \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvcpldaemon.dll": "描述: NvCplDaemon (NvQTwk.dll)是Nvdia显示卡相关文件。\n属于: NVidia Graphics Library Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvmctray.dll": "描述: nvmctray.dll是NVidia显示卡相关文件。\n属于: NVidia Multimedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvmediacenter.dll": "描述: nvmctray.dll是NVidia显示卡相关文件。\n属于: NVidia Multimedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nwnp32.dll": "描述: nwnp32.dll是Novell NetWare网络支持相关链接库文件。\n属于: Novell Network \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbc32.dll": "描述: odbc32.dll是ODBC数据库查询相关文件。\n属于: ODBC DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oleacc.dll": "描述: oleacc.dll是微软Microsoft Active Accessibility相关动态链接库文件。\n属于: Microsoft Active Accessibility \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oleaut32.dll": "描述: oleaut32.dll是对象链接与嵌入OLE相关文件。\n属于: Microsoft OLE DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"omi9.dll": "描述: omi9.dll是邮件程序MAPI特性相关文件,用于例如Outlook。\n属于: Microsoft MAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"opengl32.dll": "描述: opengl32.dll是微软OpenGL特性相关动态链接库文件。\n属于: Microsoft OpenGL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oscore.dll": "描述: oscore.dll是AOL即时通讯软件相关文件。\n属于: AOL Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p5dll.dll": "描述: p5dll.dll是P5Device相关动态链接库文件。\n属于: P5Device \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pcdlib32.dll": "描述: pcdlib32.dll是柯达Kodak产品相关文件,用于设备数据传输。\n属于: Kodak Photo \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pcre.dll": "描述: pcre.dll是Perl语言相关库文件。\n属于: Perl \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pgsdk.dll": "描述: pgsdk.dll是微软图形SDK开发包相关动态链接库文件。\n属于: Microsoft Presentation Graphics SDK \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pncrt.dll": "描述: pncrt.dll是C语言开发界面相关运行时文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pstprx.dll": "描述: pstprx.dll是Windows CE Outlook数据同步相关文件。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"quartz.dll": "描述: quartz.dll是DirectShow相关库文件,是DirectX的一部分。\n属于: Microsoft DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"riched20.dll": "描述: riched20.dll是字符编辑器相关文件。\n属于: RichEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"riched32.dll": "描述: riched32.dll是字符编辑器相关文件。\n属于: RichEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"richtx32.dll": "描述: richtx32.ocx是微软Microsoft字符编辑器控制相关程序,用于字符对话框对象高级编辑。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"schannel.dll": "描述: schannel.dll是Internet Explorer 3.x或者4.x浏览器128位加密相关文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setup.dll": "描述: setup.dll是流行的安装程序相关支持文件。\n属于: TextBridge Pro 96 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupapi.dll": "描述: setupapi.dll是流行的安装程序支持相关文件。\n属于: Microsoft Windows Setup \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"smackw32.dll": "描述: smackw32.dll是Smacker视频解码器相关文件。\n属于: Games Media Smacker \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"storm.dll": "描述: storm.dll是暴雪游戏相关动态链接库文件,出现在StarCraft和Diablo等游戏中。\n属于: Games Blizzard \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"symstore.dll": "描述: symstore.dll是Symantec公司设置相关动态链接库文件。\n属于: Symantec \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tabctl32.dll": "描述: tabctl32.ocx是一个ActiveX控制模块,用于SSTab控制和Tabbed对话框控制。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"threed32.dll": "描述: threed32.ocx是Sheridon 3D控制对象相关文件,用于渲染3D图像。\n属于: Sheridon \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"topsearch.dll": "描述: topsearch.dll是Kazaa.exe的间谍软件相关文件。\n属于: Kazaa \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tsbyuv.dll": "描述: tsbyuv.dll是东芝Toshiba视频播放解码器相关程序。\n属于: Toshiba Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"twain.dll": "描述: twain.dll是静态图像应用程序接口相关文件。\n属于: Twain Source Manager \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb40016.dll": "描述: vb40016.dll是Visual Basic运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb40032.dll": "描述: vb40032.dll是Visual Basic运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb6fr.dll": "描述: vb6fr.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb6stkit.dll": "描述: vb6stkit.dll是Visual Basic应用程序接口API相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun100.dll": "描述: vbrun100.dll是Visual Basic语言运行时相关程序。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun200.dll": "描述: vbrun200.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun300.dll": "描述: vbrun300.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbscript.dll": "描述: vbscript.dll是VBScript脚本相关支持文件。\n属于: VBScript \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vsutil.dll": "描述: vsutil.dll是ZoneLabs ZoneAlarm软件相关文件。\n属于: ZoneAlarm \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab.dll": "描述: wab.dll是微软Microsoft地址薄相关文件,用于储存Outlook和Outlook Express的Email地址和其它信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab32.dll": "描述: wab32.dll是微软Microsoft地址薄相关文件,用于储存Outlook和Outlook Express的Email邮件地址和其它联系信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"weputil.dll": "描述: weputil.dll是Windows娱乐包的相关文件。\n属于: Windows Entertainment Pack \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winaspi.dll": "描述: winaspi.dll是ASPI驱动相关文件,用于控制CD-ROM驱动器、CD/DVD刻录机,支持相关CD刻录备份软件,\n属于: ASPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winaspi32.dll": "描述: winaspi32.dll是ASPI驱动相关文件,用于控制CD-ROM驱动器、CD/DVD刻录机,支持相关CD刻录备份软件,\n属于: ASPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"window.dll": "描述: window.dll是Unreal游戏程序相关文件,用于显示或者配置DirectX设置对话框。\n属于: Games Unreal \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wing.dll": "描述: wing.dll是Windows应用程序图形显示库文件,用以取代DirectX。\n属于: Windows Graphics \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wing32.dll": "描述: wing32.dll是Windows应用程序图形显示库文件,用以取代DirectX。\n属于: Windows Graphics \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsock32n.dll": "描述: wsock32n.dl是SOCKS网络协议相关文件。\n属于: Windows Winsock \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xmlparse.dll": "描述: xmlparse.dll是Yahoo!雅虎通即时通讯软件XML解释器文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xmltok.dll": "描述: xmltok.dll是XSLT引擎解码相关文件。\n属于: XSLT \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ygxa_2.dll": "描述: ygxa_2.dll是Yahoo!雅虎通即时通讯软件图形用户界面相关文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"yml.dll": "描述: yml.dll是Yahoo!雅虎通应用程序相关库文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"zlib.dll": "描述: zlib.dll是ZLIB压缩库相关文件,用于Windows应用程序压缩和解压缩。\n属于: ZLIB \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advapi32.dll": "描述: advapi32.dll是一个高级API应用程序接口服务库的一部分,用于支持非常多的API应用程序接口,包括安全和注册的调用。\n属于: Windows NT 4.0 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advpack.dll": "描述: advpack.dll用于帮助硬件和软件读取和验证.INF文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"asycfilt.dll": "描述: asycfilt.dll是Microsoft OLE (对象链接和嵌入)特性相关DLL文件。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"atl.dll": "描述: atl.dll文件用于支持ATL特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avicap32.dll": "描述: avicap32.dll是Windows API应用程序接口相关模块,用于对摄像头和其它视频硬件进行AVI电影和视频的截取。\n属于: Windows NT 4.0 \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"browseui.dll": "描述: browseui.dll用于浏览器UI界面的管理。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"comctl32.dll": "描述: comctl32.dll是Windows应用程序公用GUI图形用户界面模块。\n属于: Windows NT \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"comdlg32.dll": "描述: comdlg32.dll是Windows应用程序公用对话框模块,用于例如打开文件对话框。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"commctrl.dll": "描述: commctrl.dll是Windows应用程序公用GUI图形用户界面模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cpuinf32.dll": "描述: cpuinf32.dll是CPU信息获取相关模块,用于获取例如CPU速度和CPU ID。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"crtdll.dll": "描述: crtdll.dll是标准C语言库,用于例如打印机,内存等。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"crypt32.dll": "描述: crypt32.dll是Windows加密API应用程序接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ctl3d.dll": "描述: ctl3d.dll是Windows应用程序公用GUI图形用户界面3D显示模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ctl3d32.dll": "描述: ctl3d32.dll是Windows应用程序公用GUI图形用户界面3D维显示模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d8.dll": "描述: d3d8.dll是DirectX的3D显示部分控制模块,在DirectX 8.0中被安装。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dbghelp.dll": "描述: dbghelp.dll是symbol引擎及相关模块,用于Windows图形。\n属于: Windows Image \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddeml.dll": "描述: ddeml.dll是exchange数据交换管理相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddraw.dll": "描述: ddraw.dll是DirectX的DLL文件,用于绘制多媒体应用程序的2D图形。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devcon32.dll": "描述: devcon32.dll是设备配置管理动态链接库。用于提供COM库支持SoundFont和EFX特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dhcpcsvc.dll": "描述: dhcpcsvc.dll是Windows DHCP客户端服务模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dinput.dll": "描述: dinput.dll是DirectX的DLL文件,用于支持DirectInput输入。该文件用于支持多媒体输入设备,例如游戏手柄\n属于: DirectX DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dinput8.dll": "描述: dinput.dll是DirectX的DLL文件,用于DirectInput输入。该文件用于支持多媒体输入设备,例如游戏手柄。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dsound.dll": "描述: dsound.dll是DirectX的DLL文件,用于支持Direct Sound声音特性。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"framedyn.dll": "描述: framedyn.dll是framework链接库文件,\n属于: Windows WMI \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"fxscfgwz.dll": "描述: fxscfgwz.dll是Windows 2000传真配置相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gdi32.dll": "描述: gdi32.dll是Windows GDI图形用户界面相关程序,用于辅助创建组建。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gdiplus.dll": "描述: gdiplus.dll是GDI图形设备接口图形界面相关模块。\n属于: Microsoft GDI+ \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hal.dll": "描述: hal.dll是Windows硬件提取层模块,该用于用于解决硬件的复杂性。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icmp.dll": "描述: icmp.dll是Windows 2000产品相关模块,用于网络ICMP请求。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iconlib.dll": "描述: iconlib.dll是微软Microsoft图标管理程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imagehlp.dll": "描述: imagehlp.dll是Windows调试辅助动态链接库相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetmib1.dll": "描述: inetmib1.dll是Windows NT的简单网络管理协议SNMP相关模块。\n属于: Windows SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iphlpapi.dll": "描述: iphlpapi.dll是Windows IP辅助API应用程序接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"kernel.dll": "描述: kernel.dll是在旧版本Windows操作系统中重要的一个DLL动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ksuser.dll": "描述: ksuser.dll is a library which transports latency sensitive, time-stamped data between user perhiperals and system perhiperals\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapi32.dll": "描述: mapi32.dll是Windows Messaging即时通讯软件API应用程序接口(MAPI)。\n属于: MAPI \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mgmtapi.dll": "描述: mgmtapi.dll是微软Microsoft简单网络管理应用程序接口API模块。\n属于: SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmsystem.dll": "描述: mmsystem.dll是多媒体管理模块,用于支持16位多媒体应用程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mpr.dll": "描述: mpr.dll是Windws操作系统网络通讯相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mprapi.dll": "描述: mprapi.dll是Windows 2000路由管理模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msacm32.dll": "描述: msacm32.dll是32位应用程序音频压缩模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msafd.dll": "描述: msafd.dll是微软Microsoft Windows操作系统 Sockets 2.0传输服务相关模块。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomct2.dll": "描述: mscomct2.ocx是ActiveX插件公用管理模块。\n属于: Windows ActiveX \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscoree.dll": "描述: mscoree.dll是.NET Framework相关组件。\n属于: Microsoft .NET \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgina.dll": "描述: msgina.dll是WIndows登陆认证策略相关模块。该模块用于完成所有用户登陆和验证功能。\n属于: GINA \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msi.dll": "描述: msi.dll是Windows安装程序MSI(Microsoft Installer)相关模块。\n属于: Windows Installer \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msimg32.dll": "描述: msimg32.dll是Windows图形设备接口GDI相关模块,用于支持新的API应用程序接口和GDI32相关特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjava.dll": "描述: msjava.dll是Java程序COM接口支持相关模块。\n属于: Microsoft JVM \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msnp32.dll": "描述: msnp32.dll是微软网络协议相关动态链接库。\n属于: Microsoft networks \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoss.dll": "描述: msoss.dll是Microsoft Trust ASN信任机制相关应用程序接口API模块,用于加密和解密特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netapi32.dll": "描述: netapi32.dll是Windows网络应用程序接口,用于支持访问微软网络。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"newdev.dll": "描述: newdev.dll是添加系统新硬件设备相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ntdll.dll": "描述: ntdll.dll是NT操作系统重要的模块。\n属于: Windows NT \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oc25.dll": "描述: oc25.dll是对象链接和嵌入OLE运行时模块。\n属于: Microsoft OLE Control runtime DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole2nls.dll": "描述: ole2.dll是对象链接和嵌入OLE相关模块,用于支持多语言。\n属于: Microsoft OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole32.dll": "描述: ole32.dll是对象链接和嵌入相关模块。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"olepro32.dll": "描述: olepro32.dll是对象链接和嵌入OLE特性相关模块。\n属于: Microsoft OLE Property Support DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pidgen.dll": "描述: pidgen.dll是Windows操作系统重要的模块,用于管理产品序列号。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pjlmon.dll": "描述: pjlmon.dll是PJL打印机监视相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"powrprof.dll": "描述: powrprof.dll是微软Microsoft Windows电源管理配置工具相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"psapi.dll": "描述: psapi.dll是Windows系统进程状态支持模块。\n属于: Process Status Helper \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasapi32.dll": "描述: rasapi32.dll是远程访问应用程序接口(RAS),用于Windows应用程序对调制解调器的控制。\n属于: Remote Access API \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpcrt4.dll": "描述: rpcrt4.dll是远程程序调用(RPC)应用程序接口API,用于WIndows应用程序对网络和Internet连接。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"run32.dll": "描述: run32.dll 是应用程序DLL文件运行库相关模块。\n属于: Windows 95 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"scrrun.dll": "描述: scrrun.dll用于阅读和编写脚本和文本文件。\n属于: Microsoft Script Runtime \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"secur32.dll": "描述: secur32.dll是Windows安全特性相关动态链接库。\n属于: Microsoft Windows DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupx.dll": "描述: setupx.dll是WIndows安装程序相关模块。\n属于: Microsoft Windows Setup Functions \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdoc401.dll": "描述: shdoc401.dll是资源管理器文件夹浏览的COM接口相关模块。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdoclc.dll": "描述: shdoclc.dll是为Windows应用程序添加基础文件和网络操作相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdocvw.dll": "描述: shdocvw.dll是为Windows应用程序添加基础文件和网络操作相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shell32.dll": "描述: shell32.dll是Windows壳Shell相关应用程序接口动态链接库文件,用于打开网页和文件。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shfolder.dll": "描述: shfolder.dll是Windows特殊文件夹相关服务模块,例如我的文档。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shlwapi.dll": "描述: shlwapi.dll是UNC和URL地址动态链接库文件,用于注册键值和色彩设置。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"snmpapi.dll": "描述: snmpapi.dll是简单网络管理协议(SNMP)相关模块,用于监视你的LAN局域网网络状态。\n属于: Microsoft SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spoolss.dll": "描述: spoolss.dll是打印机打印相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"svrapi.dll": "描述: svrapi.dll用于监视和管理共享网络资源。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tapi32.dll": "描述: tapi32.dll是Windows排列层相关模块,用于发送消息到Tapisrv.exe。\n属于: Windows Telephony \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"unidrv.dll": "描述: unidrv.dll是通用打印机驱动动态连接库。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"urlmon.dll": "描述: urlmon.dll是微软Microsoft对象链接和嵌入相关模块。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"usbui.dll": "描述: usbui.dll是通用程序界面应用程序接口,用于管理USB用户界面。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"user32.dll": "描述: user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性。\n属于: Windows User API \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"userenv.dll": "描述: userenv.dll是公用应用程序界面应用程序接口,用于管理用户档案。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vfwwdm32.dll": "描述: vfwwdm32.dll用于Windows应用程序视频进行WDM剪辑驱动相关程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"webcheck.dll": "描述: webcheck.dll是用于对网站进行监视的COM接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wininet.dll": "描述: wininet.dll是Windows应用程序网络相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winmm.dll": "描述: winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄。\n属于: Windows Multimedia \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsock.dll": "描述: winsock.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络相关应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsrv.dll": "描述: winsrv.dll是Windows服务,用于支持32位用户和图形设备接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsta.dll": "描述: winsta.dll是成熟的Windows组件,用于剪切板、全球区域特性和桌面组件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wintrust.dll": "描述: wintrust.dll用于验证第三方应用程序的文件,目录,内存使用,数据签名等。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmaudsdk.dll": "描述: wmaudsdk.dll用于读取、创建和获取.WMA音频格式文件信息。\n属于: Windows Media \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmvcore.dll": "描述: wmvcore.dll是Windows媒体视频回放解码相关动态链接库。\n属于: Windows Media \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wnaspi32.dll": "描述: wnaspi32.dll是高级Advanced SCSI程序接口( ASPI )管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ws2_32.dll": "描述: ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ws2help.dll": "描述: ws2help.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsock32.dll": "描述: wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary"
|
||||
}
|
||||
137
deb/opt/apps/deepin-wine-runner/CheckDLL/main.py
Normal file
@@ -0,0 +1,137 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import traceback
|
||||
import subprocess
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
# 加入路径
|
||||
import os
|
||||
import sys
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
sys.path.append(f"{programPath}/../")
|
||||
from Model import *
|
||||
finding = False
|
||||
def ReadNeedDll(lists):
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if not len(lists):
|
||||
item = QtGui.QStandardItem("无")
|
||||
nmodel.appendRow(item)
|
||||
for i in lists:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
needDllList.setModel(nmodel)
|
||||
|
||||
def ReadBadNeedDll(lists):
|
||||
global finding
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
if not len(lists):
|
||||
item = QtGui.QStandardItem("无")
|
||||
nmodel.appendRow(item)
|
||||
for i in lists:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
badDllList.setModel(nmodel)
|
||||
finding = True
|
||||
|
||||
def ErrorMsg(message):
|
||||
QtWidgets.QMessageBox.critical(window, "错误", message)
|
||||
|
||||
class ReadDll(QtCore.QThread):
|
||||
readNeed = QtCore.pyqtSignal(list)
|
||||
readBad = QtCore.pyqtSignal(list)
|
||||
error = QtCore.pyqtSignal(str)
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
try:
|
||||
output = subprocess.getoutput(f"python3 '{programPath}/CheckCommand.py' '{sys.argv[1]}' --json")
|
||||
print(output)
|
||||
self.readNeed.emit(json.loads(output))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.error.emit(traceback.format_exc())
|
||||
try:
|
||||
badoutput = subprocess.getoutput(f"python3 '{programPath}/CheckCommand.py' '{sys.argv[1]}' --json -w '{sys.argv[2]}' '{sys.argv[3]}'")
|
||||
print(badoutput)
|
||||
self.readBad.emit(json.loads(badoutput))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.error.emit(traceback.format_exc())
|
||||
|
||||
def GetDll():
|
||||
global read
|
||||
read = ReadDll()
|
||||
read.readNeed.connect(ReadNeedDll)
|
||||
read.readBad.connect(ReadBadNeedDll)
|
||||
read.error.connect(ErrorMsg)
|
||||
read.start()
|
||||
|
||||
def Change():
|
||||
if not finding:
|
||||
return
|
||||
things = badDllList.selectionModel().selectedIndexes()[0].data().lower()
|
||||
repairButton.setEnabled(os.path.exists(f"{programPath}/bash/{things}.sh"))
|
||||
findButton.setEnabled(True)
|
||||
|
||||
def FindDll():
|
||||
global dllMap
|
||||
things = badDllList.selectionModel().selectedIndexes()[0].data().lower()
|
||||
try:
|
||||
dllMap["check"]
|
||||
except:
|
||||
try:
|
||||
with open(f"{programPath}/lists.json", "r") as file:
|
||||
dllMap = json.loads(file.read())
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
return
|
||||
try:
|
||||
QtWidgets.QMessageBox.information(window, f"关于“{things}”", dllMap[things])
|
||||
except:
|
||||
QtWidgets.QMessageBox.information(window, f"关于“{things}”", "无此 Dll 的信息")
|
||||
|
||||
def RepairDll():
|
||||
things = badDllList.selectionModel().selectedIndexes()[0].data().lower()
|
||||
OpenTerminal(f"'{programPath}/../AutoShell/main.py' '{programPath}/bash/{things}.sh'")
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
iconPath = "{}/../deepin-wine-runner.svg".format(programPath)
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
window = QtWidgets.QMainWindow()
|
||||
widget = QtWidgets.QWidget()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
badDllList = QtWidgets.QListView()
|
||||
needDllList = QtWidgets.QListView()
|
||||
badDllList.clicked.connect(Change)
|
||||
findButton = QtWidgets.QPushButton("查询此 Dll 信息")
|
||||
repairButton = QtWidgets.QPushButton("修复此 Dll")
|
||||
findButton.setDisabled(True)
|
||||
repairButton.setDisabled(True)
|
||||
findButton.clicked.connect(FindDll)
|
||||
repairButton.clicked.connect(RepairDll)
|
||||
badDllList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
needDllList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
loadingTips = QtGui.QStandardItemModel(window)
|
||||
loadingTipsItem = QtGui.QStandardItem("正在读取……")
|
||||
loadingTips.appendRow(loadingTipsItem)
|
||||
badDllList.setModel(loadingTips)
|
||||
needDllList.setModel(loadingTips)
|
||||
layout.addWidget(QtWidgets.QLabel("程序需要的 Dll(不太准):"), 0, 0, 1, 1)
|
||||
layout.addWidget(QtWidgets.QLabel("程序缺失的 Dll(不太准):"), 0, 1, 1, 2)
|
||||
layout.addWidget(needDllList, 1, 0)
|
||||
layout.addWidget(badDllList, 1, 1, 1, 2)
|
||||
layout.addWidget(findButton, 2, 1)
|
||||
layout.addWidget(repairButton, 2, 2)
|
||||
widget.setLayout(layout)
|
||||
window.setCentralWidget(widget)
|
||||
window.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
window.setWindowTitle(f"查看程序“{os.path.basename(sys.argv[1])}”缺少的 DLL")
|
||||
window.resize(int(window.frameGeometry().width() * 1.2), int(window.frameGeometry().height() * 1.1))
|
||||
GetDll()
|
||||
window.show()
|
||||
app.exec_()
|
||||
326
deb/opt/apps/deepin-wine-runner/Icon/Internet Explorer.svg
Executable file
|
After Width: | Height: | Size: 17 KiB |
245
deb/opt/apps/deepin-wine-runner/Icon/PhotoShop.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
409
deb/opt/apps/deepin-wine-runner/Icon/腾讯会议.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
237
deb/opt/apps/deepin-wine-runner/Icon/腾讯课堂.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
@@ -70,6 +70,8 @@ m m "
|
||||
["deepin-wine5-stable", "deepin-wine5-stable"],
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"]
|
||||
]:
|
||||
if not os.system(f"which {i[1]} > /dev/null"):
|
||||
continue
|
||||
choose = input(f"安装{i[0]}?(添加深度源)[Y/N]").upper()
|
||||
if choose == "Y":
|
||||
print("安装中……")
|
||||
@@ -80,6 +82,10 @@ m m "
|
||||
["deepin-wine", "deepin-wine"],
|
||||
["spark-wine7-devel", "spark-wine7-devel"]
|
||||
]:
|
||||
if not os.system(f"which {i[1]} > /dev/null"):
|
||||
continue
|
||||
choose = input(f"安装{i[0]}?(添加深度、星火源)[Y/N]").upper()
|
||||
if choose == "Y":
|
||||
InstallWithSparkStoreSource(i[1])
|
||||
InstallWithSparkStoreSource(i[1])
|
||||
input("按回车键后退出……")
|
||||
exit()
|
||||
116
deb/opt/apps/deepin-wine-runner/InstallWineOnDeepin23Alpha.py
Executable file
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import webbrowser
|
||||
|
||||
def YesOrNo():
|
||||
if input().replace(" ", "").upper() == "N":
|
||||
return False
|
||||
return True
|
||||
|
||||
def InstallWineSpark(wine):
|
||||
print(f"开始安装 {wine}")
|
||||
#os.system("pkexec apt update")
|
||||
if not os.system(f"pkexec aptss install {wine} -y"):
|
||||
print(f"{wine} 安装失败!")
|
||||
PressEnter()
|
||||
else:
|
||||
print("安装完成")
|
||||
|
||||
def InstallWine(wine):
|
||||
print(f"开始安装 {wine}")
|
||||
os.system("pkexec apt update")
|
||||
if not os.system(f"pkexec apt install {wine} -y"):
|
||||
print(f"{wine} 安装失败!")
|
||||
PressEnter()
|
||||
else:
|
||||
print("安装完成")
|
||||
|
||||
def CheckSparkStore():
|
||||
return os.system("which spark-store > /dev/null") + os.system("which aptss > /dev/null")
|
||||
|
||||
def InstallSparkStore():
|
||||
if not CheckSparkStore:
|
||||
return
|
||||
print("按下回车键后打开星火应用商店官网,手动安装完星火应用商店后再次按下回车以继续")
|
||||
webbrowser.open_new_tab("https://spark-app.store/")
|
||||
PressEnter()
|
||||
print("安装星火应用商店后按下回车……")
|
||||
PressEnter()
|
||||
while True:
|
||||
if not os.system("which spark-store > /dev/null"):
|
||||
if not os.system("which aptss > /dev/null"):
|
||||
break
|
||||
print("您暂未安装最新版本的星火应用商店,请更新版本后按下回车")
|
||||
PressEnter()
|
||||
continue
|
||||
print("您暂未安装星火应用商店,请在安装后按下回车")
|
||||
PressEnter()
|
||||
continue
|
||||
|
||||
def InstallDeepinAppStore():
|
||||
print("开始安装官方应用商店")
|
||||
if not os.system("pkexec apt install deepin-app-store -y"):
|
||||
print("安装失败!按回车键后退出")
|
||||
PressEnter()
|
||||
exit()
|
||||
else:
|
||||
print("安装完成")
|
||||
|
||||
def PressEnter():
|
||||
input("按回车键后继续……")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print('''
|
||||
m m "
|
||||
# # # mmm m mm mmm
|
||||
" #"# # # #" # #" #
|
||||
## ##" # # # #""""
|
||||
# # mm#mm # # "#mm"
|
||||
|
||||
|
||||
''')
|
||||
print("后续操作需要有 root 权限")
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
# 敢这样浪不还是 Alpha 源有官方应用商店
|
||||
if os.system("which deepin-home-appstore-client > /dev/null"):
|
||||
print("暂未安装官方应用商店,安装后才能继续,是否安装?[Y/N]")
|
||||
if YesOrNo:
|
||||
InstallDeepinAppStore()
|
||||
deepinWineList = [
|
||||
#"deepin-wine",
|
||||
#"deepin-wine5-stable",
|
||||
"deepin-wine6-stable"
|
||||
]
|
||||
for i in deepinWineList:
|
||||
if not os.system(f"which {i} > /dev/null"):
|
||||
print(f"{i} 已安装")
|
||||
continue
|
||||
print(f"是否安装 {i}?[Y/N]")
|
||||
if YesOrNo:
|
||||
InstallWine(i)
|
||||
sparkWineList = [
|
||||
#"deepin-wine",
|
||||
#"deepin-wine5",
|
||||
#"spark-wine7-devel"
|
||||
]
|
||||
for i in sparkWineList:
|
||||
if not os.system(f"which {i} > /dev/null"):
|
||||
continue
|
||||
print(f"是否安装 {i}?[Y/N]")
|
||||
if YesOrNo:
|
||||
InstallSparkStore()
|
||||
InstallWineSpark(i)
|
||||
print("按回车键退出")
|
||||
PressEnter()
|
||||
exit()
|
||||
BIN
deb/opt/apps/deepin-wine-runner/Test/net.exe
Executable file
BIN
deb/opt/apps/deepin-wine-runner/Test/netandie.exe
Executable file
BIN
deb/opt/apps/deepin-wine-runner/Test/vb.exe
Executable file
@@ -85,6 +85,9 @@ class Ui_MainWindow(object):
|
||||
self.action_2.setCheckable(True)
|
||||
self.action_2.setChecked(False)
|
||||
self.action_2.setObjectName("action_2")
|
||||
self.action_3 = QtWidgets.QAction(MainWindow)
|
||||
self.action_3.setCheckable(True)
|
||||
self.action_3.setObjectName("action_3")
|
||||
self.menu.addAction(self.openFile)
|
||||
self.menu.addSeparator()
|
||||
self.menu.addAction(self.exitProgram)
|
||||
@@ -93,6 +96,7 @@ class Ui_MainWindow(object):
|
||||
self.menu_2.addAction(self.actionGithub)
|
||||
self.menu_2.addAction(self.action_IPv6)
|
||||
self.menu_2.addAction(self.action_2)
|
||||
self.menu_2.addAction(self.action_3)
|
||||
self.menu_2.addAction(self.action)
|
||||
self.menubar.addAction(self.menu.menuAction())
|
||||
self.menubar.addAction(self.menu_2.menuAction())
|
||||
@@ -121,4 +125,5 @@ class Ui_MainWindow(object):
|
||||
self.action_IPv6.setText(_translate("MainWindow", "备用源1(只限IPv6用户)"))
|
||||
self.action.setText(_translate("MainWindow", "本地测试源(127.0.0.1)"))
|
||||
self.action_2.setText(_translate("MainWindow", "备用源2"))
|
||||
self.action_3.setText(_translate("MainWindow", "备用源3"))
|
||||
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
<addaction name="actionGithub"/>
|
||||
<addaction name="action_IPv6"/>
|
||||
<addaction name="action_2"/>
|
||||
<addaction name="action_3"/>
|
||||
<addaction name="action"/>
|
||||
</widget>
|
||||
<addaction name="menu"/>
|
||||
@@ -191,6 +192,14 @@
|
||||
<string>备用源2</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_3">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>备用源3</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
@@ -33,10 +33,10 @@ def button1_cl():
|
||||
if path != "":
|
||||
e6_text.setText(path)
|
||||
|
||||
def button2_cl():
|
||||
def button2_cl(number):
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(widget, QtCore.QCoreApplication.translate("U", "选择图标文件"), get_home(), "PNG图标(*.png);;SVG图标(*.svg);;全部文件(*.*)")[0]
|
||||
if path != "":
|
||||
e9_text.setText(path)
|
||||
mapLink[number].setText(path)
|
||||
|
||||
def button4_cl():
|
||||
path = QtWidgets.QFileDialog.getSaveFileName(widget, QtCore.QCoreApplication.translate("U", "保存 deb 包"), get_home(), "deb 文件(*.deb);;所有文件(*.*)", "{}_{}_i386.deb".format(e1_text.text(), e2_text.text()))[0]
|
||||
@@ -62,6 +62,8 @@ def disabled_or_NORMAL_all(choose):
|
||||
button4.setDisabled(choose)
|
||||
button5.setDisabled(choose)
|
||||
option1_text.setDisabled(choose)
|
||||
desktopIconTab.setDisabled(choose)
|
||||
build7z.setDisabled(choose)
|
||||
chooseWineHelperValue.setDisabled(choose)
|
||||
wineVersion.setDisabled(choose)
|
||||
debArch.setDisabled(choose)
|
||||
@@ -237,6 +239,11 @@ def make_deb(build=False):
|
||||
def label13_text_change(thing):
|
||||
label13_text.setText(f"<p align='center'>当前 deb 打包情况:{thing}</p>")
|
||||
|
||||
def ReplaceText(string: str, lists: list):
|
||||
for i in lists:
|
||||
string = string.replace(i[0], i[1])
|
||||
return string
|
||||
|
||||
class make_deb_threading(QtCore.QThread):
|
||||
|
||||
signal = QtCore.pyqtSignal(str)
|
||||
@@ -296,19 +303,36 @@ class make_deb_threading(QtCore.QThread):
|
||||
b = e6_text.text()[:-1]
|
||||
else:
|
||||
b = e6_text.text()
|
||||
if e9_text.text() != "":
|
||||
# 获取图片格式(不太准)
|
||||
try:
|
||||
im = Image.open(e9_text.text())
|
||||
imms = im.format.lower()
|
||||
except: # 未知(就直接设置为 svg 后缀)
|
||||
imms = ".svg"
|
||||
a = "/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(e1_text.text(), e1_text.text(), imms)
|
||||
if not os.path.exists(e9_text.text()):
|
||||
self.errorMsg.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
self.disabled_or_NORMAL_all.emit(True)
|
||||
self.label.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
return
|
||||
if desktopIconTab.count() <= 1:
|
||||
if e9_text.text() != "":
|
||||
# 获取图片格式(不太准)
|
||||
try:
|
||||
im = Image.open(e9_text.text())
|
||||
imms = im.format.lower()
|
||||
except: # 未知(就直接设置为 svg 后缀)
|
||||
imms = "svg"
|
||||
a = "/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(e1_text.text(), e1_text.text(), imms)
|
||||
if not os.path.exists(e9_text.text()):
|
||||
self.errorMsg.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
self.disabled_or_NORMAL_all.emit(True)
|
||||
self.label.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
return
|
||||
else:
|
||||
a = []
|
||||
for i in iconUiList:
|
||||
if i[4].text != "":
|
||||
# 获取图片格式(不太准)
|
||||
try:
|
||||
im = Image.open(e9_text.text())
|
||||
imms = im.format.lower()
|
||||
except:
|
||||
imms = ".svg"
|
||||
a.append("/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}-{}.{}".format(e1_text.text(), e1_text.text(), os.path.splitext(os.path.basename(i[0].text().replace("\\", "/")))[0], imms))
|
||||
if not os.path.exists(i[4].text()):
|
||||
self.errorMsg.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
self.disabled_or_NORMAL_all.emit(True)
|
||||
self.label.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
return
|
||||
if not os.path.exists(e6_text.text()):
|
||||
print("aa")
|
||||
self.errorMsg.emit("路径填写错误,无法继续构建 deb 包")
|
||||
@@ -362,13 +386,13 @@ fi"""][int(rmBash.isChecked())],
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
|
||||
BOTTLENAME="{e5_text.text()}"
|
||||
APPVER="{e2_text.text()}"
|
||||
EXEC_PATH="{e7_text.text()}"
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
|
||||
export MIME_TYPE=""
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
export APPRUN_CMD="{wine[wineVersion.currentText()]}"
|
||||
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
||||
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||
DISABLE_ATTACH_FILE_DIALOG=""
|
||||
EXPORT_ENVS=""
|
||||
|
||||
@@ -433,16 +457,16 @@ Get_Dist_Name()
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
####用于比较版本?未实装
|
||||
BOTTLENAME="{e5_text.text()}"
|
||||
APPVER="{e2_text.text()}"
|
||||
EXEC_PATH="{e7_text.text()}"
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
##### 软件在wine中的启动路径
|
||||
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||
export MIME_TYPE=""
|
||||
#####没什么用
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
||||
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
||||
export APPRUN_CMD="{wine[wineVersion.currentText()]}"
|
||||
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||
#####wine启动指令,建议
|
||||
EXPORT_ENVS=""
|
||||
|
||||
@@ -527,60 +551,25 @@ fi"""
|
||||
# ARM64 通用 wine 打包配置文件
|
||||
"Wine": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ",
|
||||
"Architecture": "arm64",
|
||||
"Depends": "zenity, com.deepin-wine6-stable.deepin(>=6.0deepin31), deepin-wine-exagear-images(>=10deepin4), com.deepin-box86.deepin(>=0.2.3deepin21), deepin-elf-verify (>= 1.1.1-1), p7zip-full, fonts-wqy-microhei, fonts-noto-cjk",
|
||||
"postinst": f"""#!/bin/bash
|
||||
"Depends": "com.deepin-wine6-stable.deepin (>= 6.0deepin31), com.wine-helper.deepin (>= 0.0.8), com.deepin-box86.deepin (>= 0.2.6deepin3), deepin-elf-verify (>= 1.1.1-1)",
|
||||
"postinst": f"""#!/bin/sh
|
||||
|
||||
DEB_PATH=/opt/apps/{e1_text.text()}
|
||||
if [ -f $DEB_PATH/files/wined3d.dll.so ] && [ -d "/usr/lib/nvidia" ];then
|
||||
mv $DEB_PATH/files/wined3d.dll.so $DEB_PATH/files/dlls
|
||||
ACTIVEX_NAME=""
|
||||
|
||||
if [ -f "/opt/apps/{e1_text.text()}/files/install.sh" ];then
|
||||
/opt/apps/{e1_text.text()}/files/install.sh -i
|
||||
fi
|
||||
|
||||
KUNPENG="0x48"
|
||||
cpu_vendor=$(lscpu | grep Vendor | awk '{{print $3}}')
|
||||
KIRIN=`cat /proc/cpuinfo | grep Kirin`
|
||||
if [ ! -z "$KIRIN" ];then
|
||||
mv $DEB_PATH/files/*.so $DEB_PATH/files/dlls
|
||||
fi
|
||||
|
||||
## check if the cpu support arm32 instruction or not, 126 means unsupported
|
||||
/opt/deepin-box86/box86 -v
|
||||
CHECK_ARM32=$?
|
||||
|
||||
IMAGE_VER=10deepin3
|
||||
IMAGE_DIR=/opt/deepin-wine-exagear-images/debian-buster
|
||||
ARCHIVE_FILE=files.7z
|
||||
|
||||
download_image() {{
|
||||
pushd /var/cache/apt/archives >/dev/null
|
||||
apt download deepin-wine-exagear-images
|
||||
dpkg -x deepin-wine-exagear-images*.deb /
|
||||
rm deepin-wine-exagear-images*.deb
|
||||
echo $IMAGE_VER > $IMAGE_DIR/VERSION
|
||||
popd >/dev/null
|
||||
}}
|
||||
|
||||
if [[ "$KUNPENG" == "$cpu_vendor" ]] || [[ $CHECK_ARM32 != 0 ]];then
|
||||
echo "use exagear as emulator..."
|
||||
if [ ! -d /opt/exagear/bin ];then
|
||||
mkdir /opt/exagear/bin -p
|
||||
fi
|
||||
|
||||
if [ ! -e /opt/exagear/bin/ubt_x32a64_al ];then
|
||||
cp $DEB_PATH/files/exa/ubt_x32a64_al /opt/exagear/bin/ubt_x32a64_al
|
||||
fi
|
||||
|
||||
if [ ! -e /opt/exagear/bin/ubt_x64a64_al ];then
|
||||
cp $DEB_PATH/files/exa/ubt_x64a64_al /opt/exagear/bin/ubt_x64a64_al
|
||||
fi
|
||||
mv $DEB_PATH/files/run_with_exagear.sh $DEB_PATH/files/run.sh
|
||||
mv $DEB_PATH/files/exa/wineserver /opt/deepin-wine6-stable/bin/wineserver
|
||||
else
|
||||
echo "use box86 as emulator..."
|
||||
mv $DEB_PATH/files/run_with_box86.sh $DEB_PATH/files/run.sh
|
||||
if [ -n "$ACTIVEX_NAME" ]; then
|
||||
if [ ! -d "/usr/lib/mozilla/plugins" ];then
|
||||
mkdir -p /usr/lib/mozilla/plugins
|
||||
fi
|
||||
cp /usr/lib/pipelight/libpipelight.so /usr/lib/mozilla/plugins/libpipelight-${{ACTIVEX_NAME}}.so
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
fi
|
||||
|
||||
# Make sure the script returns 0
|
||||
true
|
||||
|
||||
""",
|
||||
# 因为 arm 不依赖 helper,所以要自带 kill.sh
|
||||
"kill.sh": """#!/bin/bash
|
||||
@@ -862,7 +851,37 @@ else
|
||||
kill_app $APP_NAME
|
||||
fi
|
||||
""",
|
||||
"postrm": f"""#!/bin/bash
|
||||
"postrm": [f"""#!/bin/sh
|
||||
|
||||
ACTIVEX_NAME=""
|
||||
|
||||
if [ -f "/opt/apps/{e1_text.text()}/files/install.sh" ];then
|
||||
/opt/apps/{e1_text.text()}/files/install.sh -r
|
||||
fi
|
||||
|
||||
if [ -n "$ACTIVEX_NAME" ]; then
|
||||
rm /usr/lib/mozilla/plugins/libpipelight-${{ACTIVEX_NAME}}.so
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
fi
|
||||
|
||||
# Make sure the script returns 0
|
||||
true
|
||||
""", f"""#!/bin/sh
|
||||
|
||||
ACTIVEX_NAME=""
|
||||
|
||||
if [ -f "/opt/apps/{e1_text.text()}/files/install.sh" ];then
|
||||
/opt/apps/{e1_text.text()}/files/install.sh -r
|
||||
fi
|
||||
|
||||
if [ -n "$ACTIVEX_NAME" ]; then
|
||||
rm /usr/lib/mozilla/plugins/libpipelight-${{ACTIVEX_NAME}}.so
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
fi
|
||||
|
||||
# Make sure the script returns 0
|
||||
true
|
||||
# Clean Botton
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
|
||||
|
||||
echo "清理卸载残留"
|
||||
@@ -887,224 +906,95 @@ for username in $(ls /home)
|
||||
else
|
||||
echo "非卸载,跳过清理"
|
||||
fi
|
||||
""",
|
||||
"run_with_box86.sh": f"""#!/bin/bash
|
||||
DEB_PATH="/opt/apps/{e1_text.text()}"
|
||||
WINE="/opt/deepin-wine6-stable/bin/wine"
|
||||
WINESERVER="/opt/deepin-wine6-stable/bin/wineserver"
|
||||
EMU="/opt/deepin-box86/box86"
|
||||
EMU_ARGS=
|
||||
EXE="{e7_text.text()}"
|
||||
NEW_VERSION="{e2_text.text()}"
|
||||
BOTTLE="$HOME/.deepinwine/{e5_text.text()}"
|
||||
"""][int(rmBash.isChecked())],
|
||||
|
||||
if command -v zenity >/dev/null 2>&1; then
|
||||
progressbar()
|
||||
{{
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel ||
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close
|
||||
}}
|
||||
# 又又又改
|
||||
"run.sh": f"""#!/bin/bash
|
||||
|
||||
# Copyright (C) 2016 Deepin, Inc.
|
||||
#
|
||||
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
||||
# Peng Hao <penghao@linuxdeepin.com>
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
|
||||
ACTIVEX_NAME=""
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
START_SHELL_PATH="{['/opt/deepinwine/tools/run_v4.sh', '/opt/deepinwine/tools/spark_run_v4.sh'][chooseWineHelperValue.isChecked()]}"
|
||||
export MIME_TYPE=""
|
||||
export MIME_EXEC=""
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
export APPRUN_CMD="deepin-wine6-stable"
|
||||
DISABLE_ATTACH_FILE_DIALOG=""
|
||||
EXPORT_ENVS=""
|
||||
EXEC_NAME="@@@EXEC_NAME@@@"
|
||||
INSTALL_SETUP=""
|
||||
export BOX86_EMU_CMD="/opt/deepin-box86/stable/box86"
|
||||
|
||||
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
|
||||
|
||||
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
|
||||
|
||||
if [ -z "$APPRUN_CMD" ];then
|
||||
export APPRUN_CMD="/opt/deepin-wine6-stable/bin/wine"
|
||||
fi
|
||||
if [ -f "$APPRUN_CMD" ];then
|
||||
wine_path=$(dirname $APPRUN_CMD)
|
||||
wine_path=$(realpath "$wine_path/../")
|
||||
export WINEDLLPATH=$wine_path/lib:$wine_path/lib64
|
||||
else
|
||||
progressbar()
|
||||
{{
|
||||
cat -
|
||||
}}
|
||||
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
|
||||
fi
|
||||
|
||||
reconstruct_bottle_symlink() {{
|
||||
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
|
||||
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Desktop ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Desktop
|
||||
ln -s $HOME/Desktop $BOTTLE/drive_c/users/$USER/Desktop
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Documents ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Documents
|
||||
ln -s $HOME/Documents $BOTTLE/drive_c/users/$USER/Documents
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Downloads ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Downloads
|
||||
ln -s $HOME/Downloads $BOTTLE/drive_c/users/$USER/Downloads
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Documents" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
ln -s $HOME/Documents "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Music" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
ln -s $HOME/Music "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
fi
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Videos" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
ln -s $HOME/Videos "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
fi
|
||||
_SetRegistryValue()
|
||||
{{
|
||||
env WINEPREFIX="$BOTTLEPATH" $APPRUN_CMD reg ADD "$1" /v "$2" /t "$3" /d "$4" /f
|
||||
}}
|
||||
|
||||
if [ ! -d "$HOME/.deepinwine" ];then
|
||||
mkdir -p "$HOME/.deepinwine"
|
||||
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
fi
|
||||
|
||||
if [ -f $BOTTLE/VERSION ];then
|
||||
old_version=`cat $BOTTLE/VERSION`
|
||||
if [ "$old_version" != "$NEW_VERSION" ];then
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINESERVER -k
|
||||
rm -rf $BOTTLE
|
||||
if [ -n "$EXPORT_ENVS" ];then
|
||||
export $EXPORT_ENVS
|
||||
fi
|
||||
|
||||
# 打包安装程序的情况
|
||||
if [[ -z "$EXEC_PATH" ]] && [[ -n "$INSTALL_SETUP" ]];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" -c
|
||||
BOTTLEPATH="$HOME/.deepinwine/$BOTTLENAME"
|
||||
EXEC_PATH=$(find "$BOTTLEPATH" -name $EXEC_NAME | head -1)
|
||||
if [ -z "$EXEC_PATH" ];then
|
||||
_SetRegistryValue "HKCU\\Software\\Wine\\DllOverrides" winemenubuilder.exe REG_SZ
|
||||
WINEPREFIX="$BOTTLEPATH" $APPRUN_CMD "$ARCHIVE_FILE_DIR/$INSTALL_SETUP"
|
||||
EXEC_PATH=$(find "$BOTTLEPATH" -name $EXEC_NAME | head -1)
|
||||
|
||||
cp "$ARCHIVE_FILE_DIR/setup.md5sum" "$BOTTLEPATH"
|
||||
fi
|
||||
|
||||
if [ -z "$EXEC_PATH" ];then
|
||||
echo "安装失败退出"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d $BOTTLE ];then
|
||||
|
||||
7z x "$DEB_PATH/files/files.7z" -o"$BOTTLE" -aoa
|
||||
mv "$BOTTLE/drive_c/users/@current_user@" "$BOTTLE/drive_c/users/$USER"
|
||||
sed -i "s#@current_user@#$USER#" $BOTTLE/*.reg
|
||||
reconstruct_bottle_symlink
|
||||
echo $NEW_VERSION > $BOTTLE/VERSION
|
||||
fi
|
||||
|
||||
export WINEPREDLL=$DEB_PATH/files/dlls
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
export WINEDLLPATH=/opt/deepin-wine6-stable/lib
|
||||
ulimit -s 8192
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINE "$EXE" & #--disable-gpu &
|
||||
""",
|
||||
"run_with_exagear.sh": f"""#!/bin/bash
|
||||
DEB_PATH="/opt/apps/{e1_text.text()}"
|
||||
WINE="/opt/deepin-wine6-stable/bin/wine"
|
||||
WINESERVER="/opt/deepin-wine6-stable/bin/wineserver"
|
||||
EMU="/opt/exagear/bin/ubt_x64a64_al"
|
||||
IMAGE_PATH=$HOME/.deepinwine/debian-buster
|
||||
EMU_ARGS="--path-prefix $IMAGE_PATH --utmp-paths-list $IMAGE_PATH/.exagear/utmp-list --vpaths-list $IMAGE_PATH/.exagear/vpaths-list --opaths-list $IMAGE_PATH/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- "
|
||||
EXE="{e7_text.text()}"
|
||||
NEW_VERSION="{e2_text.text()}"
|
||||
BOTTLE="$HOME/.deepinwine/{e5_text.text()}"
|
||||
IMG_ARCHIVE_DIR=/opt/deepin-wine-exagear-images/debian-buster
|
||||
IMAGE_VER="10deepin4"
|
||||
LOCALTIME=`readlink -f /etc/localtime`
|
||||
|
||||
export LC_ALL=$LANG
|
||||
export XMODIFIERS=$XMODIFIERS
|
||||
export DESKTOP_SESSION=deepin
|
||||
|
||||
if command -v zenity >/dev/null 2>&1; then
|
||||
progressbar()
|
||||
{{
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel ||
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close
|
||||
}}
|
||||
|
||||
if [ -n "$EXEC_PATH" ];then
|
||||
if [ -z "${{EXEC_PATH##*.lnk*}}" ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
||||
elif [ -z "${{EXEC_PATH##*.bat}}" ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "cmd" -f /c "$EXEC_PATH" "${{@:2}}"
|
||||
else
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
|
||||
fi
|
||||
elif [ -n "$ACTIVEX_NAME" ] && [ $# -gt 1 ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$1" -f "${{@:2}}"
|
||||
else
|
||||
progressbar()
|
||||
{{
|
||||
cat -
|
||||
}}
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||
fi
|
||||
|
||||
reconstruct_bottle_symlink() {{
|
||||
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Desktop ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Desktop
|
||||
ln -s $HOME/Desktop $BOTTLE/drive_c/users/$USER/Desktop
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Documents ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Documents
|
||||
ln -s $HOME/Documents $BOTTLE/drive_c/users/$USER/Documents
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Downloads ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Downloads
|
||||
ln -s $HOME/Downloads $BOTTLE/drive_c/users/$USER/Downloads
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Documents" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
ln -s $HOME/Documents "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Music" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
ln -s $HOME/Music "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
fi
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Videos" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
ln -s $HOME/Videos "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
fi
|
||||
}}
|
||||
|
||||
extract_image() {{
|
||||
|
||||
progpid=$(ps -ef | grep "zenity --progress --title=${{BOTTLE}}" | grep -v grep)
|
||||
if [ -n "$progpid" ];then
|
||||
echo "one $BOTTLE app is extracting runtime images too."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
7z x "$IMG_ARCHIVE_DIR/files.7z" -o"$IMAGE_PATH" -aoa | progressbar "$BOTTLE" "正在释放环境..."
|
||||
cp /usr/bin/dde-file-manager $IMAGE_PATH/usr/bin/dde-file-manager
|
||||
rm $IMAGE_PATH/etc/localtime
|
||||
ln -s $LOCALTIME $IMAGE_PATH/etc/localtime
|
||||
if [ -d $IMAGE_PATH/etc/resolvconf ];then
|
||||
rm $IMAGE_PATH/etc/resolvconf
|
||||
fi
|
||||
if [ -d /etc/resolvconf ];then
|
||||
cp /etc/resolvconf $IMAGE_PATH/etc/ -rf
|
||||
fi
|
||||
cp /etc/resolv.conf $IMAGE_PATH/etc/
|
||||
cp /etc/hosts $IMAGE_PATH/etc/
|
||||
echo $IMAGE_VER > $IMAGE_PATH/VERSION
|
||||
}}
|
||||
|
||||
get_link_err_nums() {{
|
||||
|
||||
find $IMAGE_PATH -type l ! -exec test -e {{}} \; -print | wc -l
|
||||
}}
|
||||
|
||||
if [ ! -d "$HOME/.deepinwine" ];then
|
||||
mkdir -p "$HOME/.deepinwine"
|
||||
fi
|
||||
|
||||
if [ -f $BOTTLE/VERSION ];then
|
||||
old_version=`cat $BOTTLE/VERSION`
|
||||
if [ "$old_version" != "$NEW_VERSION" ];then
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINESERVER -k
|
||||
rm -rf $BOTTLE
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d $BOTTLE ];then
|
||||
|
||||
7z x "$DEB_PATH/files/files.7z" -o"$BOTTLE" -aoa
|
||||
mv "$BOTTLE/drive_c/users/@current_user@" "$BOTTLE/drive_c/users/$USER"
|
||||
sed -i "s#@current_user@#$USER#" $BOTTLE/*.reg
|
||||
reconstruct_bottle_symlink
|
||||
echo $NEW_VERSION > $BOTTLE/VERSION
|
||||
fi
|
||||
|
||||
## 解压文件
|
||||
if [ ! -e $IMAGE_PATH/VERSION ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
OLD_IMAGE_VER=`cat $IMAGE_PATH/VERSION`
|
||||
if [ "$OLD_IMAGE_VER" != "$IMAGE_VER" ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
echo "======$(get_link_err_nums)===="
|
||||
if [ "$(get_link_err_nums)" -gt "120" ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
## mount /data/ dir to geust
|
||||
if [ -d $IMAGE_PATH ] && [ ! -d $IMAGE_PATH/data ];then
|
||||
mkdir $IMAGE_PATH/data
|
||||
cp $DEB_PATH/files/exa/vpaths-list $IMAGE_PATH/.exagear
|
||||
fi
|
||||
|
||||
export WINEPREDLL=$DEB_PATH/files/dlls
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
export WINEDLLPATH=/opt/deepin-wine6-stable/lib
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINE "$EXE" & #--disable-gpu &
|
||||
""",
|
||||
"info": f'''{{
|
||||
"appid": "{e1_text.text()}",
|
||||
@@ -1166,7 +1056,7 @@ extract_archive()
|
||||
|
||||
BOTTLENAME="{e5_text.text()}"
|
||||
APPVER="{e2_text.text()}"
|
||||
EXEC_PATH="{e7_text.text()}"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
START_SHELL_PATH="{["/opt/deepinwine/tools/run_v4.sh", "/opt/deepinwine/tools/spark_run_v4.sh"][int(chooseWineHelperValue.isChecked())]}"
|
||||
export MIME_TYPE=""
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
@@ -1245,7 +1135,7 @@ fi
|
||||
###############
|
||||
self.label.emit("正在创建文件……")
|
||||
os.mknod("{}/DEBIAN/control".format(debPackagePath))
|
||||
os.mknod("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
#os.mknod("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
#os.mknod("{}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()))
|
||||
os.mknod("{}/opt/apps/{}/info".format(debPackagePath, e1_text.text()))
|
||||
#########!!!!!!!
|
||||
@@ -1289,9 +1179,10 @@ fi
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
self.run_command(f"7z x \"{programPath}/dlls-arm.7z\" -o\"{programPath}\"")
|
||||
os.remove(f"{programPath}/dlls-arm.7z")
|
||||
if not os.path.exists(f"{programPath}/exa"):
|
||||
self.run_command(f"7z x \"{programPath}/exa.7z\" -o\"{programPath}\"")
|
||||
os.remove(f"{programPath}/exa.7z")
|
||||
# 已废弃
|
||||
#if not os.path.exists(f"{programPath}/exa"):
|
||||
# self.run_command(f"7z x \"{programPath}/exa.7z\" -o\"{programPath}\"")
|
||||
# os.remove(f"{programPath}/exa.7z")
|
||||
if not os.path.exists(f"{programPath}/arm-package"):
|
||||
self.run_command(f"7z x \"{programPath}/arm-package.7z\" -o\"{programPath}\"")
|
||||
os.remove(f"{programPath}/arm-package.7z")
|
||||
@@ -1303,8 +1194,12 @@ fi
|
||||
self.run_command(f"cp -rv '{programPath}/arm-package/'* {debPackagePath}/opt/apps/{e1_text.text()}/files/")
|
||||
#self.run_command(f"cp -rv '{programPath}/wined3d.dll.so' {debPackagePath}/opt/apps/{e1_text.text()}/files/")
|
||||
pass
|
||||
if e9_text.text() != "":
|
||||
shutil.copy(e9_text.text(), "{}/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(debPackagePath, e1_text.text(), e1_text.text(), imms))
|
||||
if desktopIconTab.count() <= 1:
|
||||
if e9_text.text() != "":
|
||||
shutil.copy(e9_text.text(), "{}/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(debPackagePath, e1_text.text(), e1_text.text(), imms))
|
||||
else:
|
||||
for i in range(len(a)):
|
||||
shutil.copy(iconUiList[i][4].text(), "{}/{}".format(debPackagePath, a[i]))
|
||||
################
|
||||
# 获取文件大小
|
||||
################
|
||||
@@ -1343,14 +1238,72 @@ Description: {e3_text.text()}
|
||||
write_txt(f"{debPackagePath}/DEBIAN/postinst", debInformation[debArch.currentIndex()]["postinst"])
|
||||
if debInformation[debArch.currentIndex()]["postrm"] != "":
|
||||
write_txt(f"{debPackagePath}/DEBIAN/postrm", debInformation[debArch.currentIndex()]["postrm"])
|
||||
write_txt("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()), '#!/usr/bin/env xdg-open\n[Desktop Entry]\nEncoding=UTF-8\nType=Application\nX-Created-By={}\nCategories={};\nIcon={}\nExec="/opt/apps/{}/files/run.sh" --uri {}\nName={}\nComment={}\nMimeType={}\nGenericName={}\nTerminal=false\nStartupNotify=false\n'.format(e4_text.text(), option1_text.currentText(), a, e1_text.text(), e15_text.text(), e8_text.text(), e3_text.text(), e10_text.text(), e1_text.text()))
|
||||
replaceMap = [
|
||||
["@@@BOTTLENAME@@@", e5_text.text()],
|
||||
["@@@APPVER@@@", e2_text.text()],
|
||||
["@@@EXEC_PATH@@@", e7_text.text()],
|
||||
["@@@DEB_PACKAGE_NAME@@@", e1_text.text()],
|
||||
["@@@APPRUN_CMD@@@", wine[wineVersion.currentText()]],
|
||||
["@@@EXEC_NAME@@@", os.path.basename(e7_text.text().replace("\\", "/"))]
|
||||
]
|
||||
line = "\\"
|
||||
if desktopIconTab.count() <= 1:
|
||||
write_txt("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()), '#!/usr/bin/env xdg-open\n[Desktop Entry]\nEncoding=UTF-8\nType=Application\nX-Created-By={}\nCategories={};\nIcon={}\nExec="/opt/apps/{}/files/run.sh" --uri {}\nName={}\nComment={}\nMimeType={}\nGenericName={}\nTerminal=false\nStartupNotify=false\n'.format(e4_text.text(), option1_text.currentText(), a, e1_text.text(), e15_text.text(), e8_text.text(), e3_text.text(), e10_text.text(), e1_text.text()))
|
||||
else:
|
||||
for i in range(len(iconUiList)):
|
||||
if iconUiList[i][2].text().replace(" ", "") == "":
|
||||
command = f"--uri {iconUiList[i][2].text()}"
|
||||
else:
|
||||
command = iconUiList[i][2].text()
|
||||
write_txt("{}/opt/apps/{}/entries/applications/{}-{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text(), os.path.splitext(os.path.basename(iconUiList[i][0].text().replace("\\", "/")))[0]), f'''#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
X-Created-By={e4_text.text()}
|
||||
Categories={iconUiList[i][1].currentText()};
|
||||
Icon={a[i]}
|
||||
Exec="/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(iconUiList[i][0].text().replace(line, "/")))[0]}.sh" {command}
|
||||
Name={iconUiList[i][3].text()}
|
||||
Comment={e3_text.text()}
|
||||
MimeType={e10_text.text()}
|
||||
GenericName={e1_text.text()}
|
||||
Terminal=false
|
||||
StartupNotify=false
|
||||
''')
|
||||
# 要开始分类讨论了
|
||||
if debArch.currentIndex() == 0:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run.sh", debInformation[debArch.currentIndex()]["run.sh"])
|
||||
if debArch.currentIndex() == 1:
|
||||
if debArch.currentIndex() == 0 or debArch.currentIndex() == 1:
|
||||
if desktopIconTab.count() <= 1:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run.sh", ReplaceText(debInformation[debArch.currentIndex()]["run.sh"], replaceMap))
|
||||
else:
|
||||
for i in iconUiList:
|
||||
replaceMap = [
|
||||
["@@@BOTTLENAME@@@", e5_text.text()],
|
||||
["@@@APPVER@@@", e2_text.text()],
|
||||
["@@@EXEC_PATH@@@", i[0].text()],
|
||||
["@@@DEB_PACKAGE_NAME@@@", e1_text.text()],
|
||||
["@@@APPRUN_CMD@@@", wine[wineVersion.currentText()]],
|
||||
["@@@EXEC_NAME@@@", os.path.basename(i[0].text().replace("\\", "/"))]
|
||||
]
|
||||
line = "\\"
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(i[0].text().replace(line, '/')))[0]}.sh", ReplaceText(debInformation[debArch.currentIndex()]["run.sh"], replaceMap))
|
||||
if debArch.currentIndex() == 1 and False:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/kill.sh", debInformation[debArch.currentIndex()]["kill.sh"])
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_box86.sh", debInformation[debArch.currentIndex()]["run_with_box86.sh"])
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_exagear.sh", debInformation[debArch.currentIndex()]["run_with_exagear.sh"])
|
||||
if desktopIconTab.count() <= 1:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_box86.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_box86.sh"], replaceMap))
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_exagear.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_exagear.sh"], replaceMap))
|
||||
else:
|
||||
# Flag:postrm和postinst均需要改,所以先写一下防止自己忘了
|
||||
for i in iconUiList:
|
||||
replaceMap = [
|
||||
["@@@BOTTLENAME@@@", e5_text.text()],
|
||||
["@@@APPVER@@@", e2_text.text()],
|
||||
["@@@EXEC_PATH@@@", i[0].text()],
|
||||
["@@@DEB_PACKAGE_NAME@@@", e1_text.text()],
|
||||
["@@@APPRUN_CMD@@@", wine[wineVersion.currentText()]],
|
||||
["@@@EXEC_NAME@@@", os.path.basename(i[0].text().replace("\\", "/"))]
|
||||
]
|
||||
#write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(i[0].text().replace(line, '/')))[0]}_with_box86.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_box86.sh"], replaceMap))
|
||||
#write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(i[0].text().replace(line, '/')))[0]}_with_exagear.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_exagear.sh"], replaceMap))
|
||||
write_txt("{}/opt/apps/{}/info".format(debPackagePath, e1_text.text()), debInformation[debArch.currentIndex()]["info"])
|
||||
################
|
||||
# 修改文件权限
|
||||
@@ -1359,11 +1312,11 @@ Description: {e3_text.text()}
|
||||
self.run_command("chmod -Rv 644 {}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 644 {}/opt/apps/{}/info".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 0755 {}/DEBIAN".format(debPackagePath))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/kill.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/run_with_box86.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/run_with_exagear.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/*.sh".format(debPackagePath, e1_text.text()))
|
||||
#self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/kill.sh".format(debPackagePath, e1_text.text()))
|
||||
#self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/*_with_box86.sh".format(debPackagePath, e1_text.text()))
|
||||
#self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/*_with_exagear.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/entries/applications/*.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
################
|
||||
# 构建 deb 包
|
||||
################
|
||||
@@ -1441,13 +1394,15 @@ def ChangeArchCombobox():
|
||||
if debArch.currentIndex() != 0:
|
||||
option = False
|
||||
chooseWineHelperValue.setEnabled(option)
|
||||
if not option:
|
||||
chooseWineHelperValue.setChecked(False)
|
||||
wineVersion.setEnabled(option)
|
||||
useInstallWineArch.setEnabled(option)
|
||||
#rmBash.setEnabled(option)
|
||||
if debArch.currentIndex() == 0:
|
||||
ChangeWine()
|
||||
else:
|
||||
debDepends.setText("zenity, com.deepin-wine6-stable.deepin(>=6.0deepin31), deepin-wine-exagear-images(>=10deepin4), com.deepin-box86.deepin(>=0.2.3deepin21), deepin-elf-verify (>= 1.1.1-1), p7zip-full, fonts-wqy-microhei, fonts-noto-cjk")
|
||||
debDepends.setText("com.deepin-wine6-stable.deepin (>= 6.0deepin31), com.wine-helper.deepin (>= 0.0.8), com.deepin-box86.deepin (>= 0.2.6deepin3), deepin-elf-verify (>= 1.1.1-1)")
|
||||
|
||||
def InstallDeb():
|
||||
os.system(f"xdg-open '{e12_text.text()}'")
|
||||
@@ -1723,7 +1678,54 @@ def ReadDeb(unzip = False):
|
||||
except:
|
||||
print(f"忽略行:{i}")
|
||||
|
||||
def ChangeTapTitle():
|
||||
if desktopIconTab.count() <= 1:
|
||||
desktopIconTab.setTabText(0, "run.sh")
|
||||
return
|
||||
title = os.path.basename(iconUiList[desktopIconTab.currentIndex()][0].text().replace("\\", "/"))
|
||||
desktopIconTab.setTabText(desktopIconTab.currentIndex(), title)
|
||||
|
||||
mapLink = []
|
||||
|
||||
def AddTab():
|
||||
global mapLink
|
||||
button2 = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "浏览……"))
|
||||
e7_text = QtWidgets.QLineEdit()
|
||||
e8_text = QtWidgets.QLineEdit()
|
||||
e9_text = QtWidgets.QLineEdit()
|
||||
e15_text = QtWidgets.QLineEdit()
|
||||
iconTab1 = QtWidgets.QWidget()
|
||||
option1_text = QtWidgets.QComboBox()
|
||||
option1_text.addItems(["Network", "Chat", "Audio", "Video", "Graphics", "Office", "Translation", "Development", "Utility"])
|
||||
option1_text.setCurrentText("Network")
|
||||
number = int(str(len(mapLink)))
|
||||
button2.clicked.connect(lambda: button2_cl(number))
|
||||
mapLink.append(e9_text)
|
||||
#desktopIconTabLayout = QtWidgets.QGridLayout()
|
||||
desktopIconTabLayout = QtWidgets.QGridLayout()
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件路径(※必填):")), 6, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的分类(※必填):")), 7, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件的参数(选填):")), 8, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的名称(※必填):")), 9, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的图标(选填):")), 10, 0, 1, 1)
|
||||
iconTab1.setLayout(desktopIconTabLayout)
|
||||
desktopIconTab.addTab(iconTab1, f"图标{desktopIconTab.count() + 1}")
|
||||
desktopIconTabLayout.addWidget(e7_text, 6, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(option1_text, 7, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e15_text, 8, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e8_text, 9, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e9_text, 10, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(button2, 10, 2, 1, 1)
|
||||
e7_text.textChanged.connect(ChangeTapTitle)
|
||||
iconUiList.append([e7_text, option1_text, e15_text, e8_text, e9_text])
|
||||
print(iconUiList)
|
||||
|
||||
def DelTab():
|
||||
print(desktopIconTab.count())
|
||||
if desktopIconTab.count() <= 1:
|
||||
return
|
||||
del iconUiList[desktopIconTab.currentIndex()]
|
||||
desktopIconTab.removeTab(desktopIconTab.currentIndex())
|
||||
|
||||
###############
|
||||
# 程序信息
|
||||
@@ -1752,6 +1754,7 @@ try:
|
||||
except:
|
||||
pass
|
||||
os.chdir("/")
|
||||
iconUiList = []
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||
version = information["Version"]
|
||||
@@ -1809,13 +1812,15 @@ option1_text.setCurrentText("Network")
|
||||
wineFrame = QtWidgets.QHBoxLayout()
|
||||
chooseWineHelperValue = QtWidgets.QCheckBox(QtCore.QCoreApplication.translate("U", "使用星火wine helper\n(如不勾选默认为deepin-wine-helper)"))
|
||||
button1.clicked.connect(button1_cl)
|
||||
button2.clicked.connect(button2_cl)
|
||||
button2.clicked.connect(lambda: button2_cl(0))
|
||||
mapLink.append(e9_text)
|
||||
button4.clicked.connect(button4_cl)
|
||||
button5.clicked.connect(make_deb)
|
||||
buildDebDir.clicked.connect(lambda: make_deb(True))
|
||||
build7z.clicked.connect(Build7zButton_Clicked)
|
||||
installDeb.clicked.connect(InstallDeb)
|
||||
wineFrame.addWidget(wineVersion)
|
||||
e7_text.textChanged.connect(ChangeTapTitle)
|
||||
# 创建控件
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的包名(※必填):")), 0, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的版本号(※必填):")), 1, 0, 1, 1)
|
||||
@@ -1823,13 +1828,30 @@ widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的维护者(※必填):")), 3, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要解压的 wine 容器的容器名(※必填):")), 4, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要解压的 wine 容器(※必填):")), 5, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件路径(※必填):")), 6, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的分类(※必填):")), 7, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件的参数(选填):")), 8, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的名称(※必填):")), 9, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的图标(选填):")), 10, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "选择打包的 wine 版本(※必选):")), 12, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "打包 deb 的保存路径(※必填):")), 13, 0, 1, 1)
|
||||
desktopIconTab = QtWidgets.QTabWidget()
|
||||
controlWidget = QtWidgets.QWidget()
|
||||
controlWidgetLayout = QtWidgets.QHBoxLayout()
|
||||
desktopIconTabAdd = QtWidgets.QPushButton("+")
|
||||
desktopIconTabDel = QtWidgets.QPushButton("-")
|
||||
controlWidgetLayout.addWidget(desktopIconTabAdd)
|
||||
controlWidgetLayout.addWidget(desktopIconTabDel)
|
||||
controlWidget.setLayout(controlWidgetLayout)
|
||||
desktopIconTabAdd.clicked.connect(AddTab)
|
||||
desktopIconTabDel.clicked.connect(DelTab)
|
||||
iconTab1 = QtWidgets.QWidget()
|
||||
desktopIconTabLayout = QtWidgets.QGridLayout()
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件路径(※必填):")), 6, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的分类(※必填):")), 7, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件的参数(选填):")), 8, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的名称(※必填):")), 9, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的图标(选填):")), 10, 0, 1, 1)
|
||||
iconTab1.setLayout(desktopIconTabLayout)
|
||||
#desktopIconTab.setTabPosition(QtWidgets.QTabWidget.East)
|
||||
desktopIconTab.addTab(iconTab1, "Defult")
|
||||
desktopIconTab.setCornerWidget(controlWidget)
|
||||
widgetLayout.addWidget(desktopIconTab, 8, 0, 6, 3)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "选择打包的 wine 版本(※必选):")), 6, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "打包 deb 的保存路径(※必填):")), 7, 0, 1, 1)
|
||||
widgetLayout.addWidget(e1_text, 0, 1, 1, 1)
|
||||
widgetLayout.addWidget(e2_text, 1, 1, 1, 1)
|
||||
widgetLayout.addWidget(e3_text, 2, 1, 1, 1)
|
||||
@@ -1837,15 +1859,17 @@ widgetLayout.addWidget(e4_text, 3, 1, 1, 1)
|
||||
widgetLayout.addWidget(e5_text, 4, 1, 1, 1)
|
||||
widgetLayout.addWidget(e6_text, 5, 1, 1, 1)
|
||||
widgetLayout.addWidget(button1, 5, 2, 1, 1)
|
||||
widgetLayout.addWidget(e7_text, 6, 1, 1, 1)
|
||||
widgetLayout.addWidget(option1_text, 7, 1, 1, 1)
|
||||
widgetLayout.addWidget(e15_text, 8, 1, 1, 1)
|
||||
widgetLayout.addWidget(e8_text, 9, 1, 1, 1)
|
||||
widgetLayout.addWidget(e9_text, 10, 1, 1, 1)
|
||||
widgetLayout.addWidget(button2, 10, 2, 1, 1)
|
||||
widgetLayout.addLayout(wineFrame, 12, 1, 1, 1)
|
||||
widgetLayout.addWidget(e12_text, 13, 1, 1, 1)
|
||||
widgetLayout.addWidget(button4, 13, 2, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e7_text, 6, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(option1_text, 7, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e15_text, 8, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e8_text, 9, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e9_text, 10, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(button2, 10, 2, 1, 1)
|
||||
iconUiList.append([e7_text, option1_text, e15_text, e8_text, e9_text])
|
||||
print(iconUiList)
|
||||
widgetLayout.addLayout(wineFrame, 6, 1, 1, 1)
|
||||
widgetLayout.addWidget(e12_text, 7, 1, 1, 1)
|
||||
widgetLayout.addWidget(button4, 7, 2, 1, 1)
|
||||
widgetLayout.addLayout(debControlFrame, 16, 1, 1, 1)
|
||||
widgetLayout.addWidget(label13_text, 17, 0, 1, 3)
|
||||
widgetLayout.addWidget(textbox1, 18, 0, 1, 3)
|
||||
|
||||
@@ -27,6 +27,11 @@ import urllib.parse as parse
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
try:
|
||||
import PyQt5.QtWebEngineWidgets as QtWebEngineWidgets
|
||||
bad = False
|
||||
except:
|
||||
bad = True
|
||||
from Model import *
|
||||
|
||||
def PythonLower():
|
||||
@@ -90,7 +95,7 @@ def liulanbutton():
|
||||
|
||||
# 第二个浏览按钮事件
|
||||
def liulanexebutton():
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(widget, "选择 exe 可执行文件", json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/FindExe.json"))["path"], "exe 可执行文件(*.exe);;EXE 可执行文件(*.EXE);;所有文件(*.*)")
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(widget, "选择 exe 可执行文件", json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/FindExe.json"))["path"], "exe 可执行文件(*.exe);;MSI 文件(*.msi);;所有文件(*.*)")
|
||||
if path != "" and path != "()":
|
||||
e2.setEditText(path[0]) # 显示路径
|
||||
write_txt(get_home() + "/.config/deepin-wine-runner/FindExe.json", json.dumps({"path": os.path.dirname(path[0])})) # 写入配置文件
|
||||
@@ -127,6 +132,108 @@ class QT:
|
||||
e1.addItems(findExeHistory)
|
||||
e1.setEditText(findExeHistory[-1])
|
||||
|
||||
repairList = []
|
||||
# Flag: 日志推断解决方案功能
|
||||
class LogChecking():
|
||||
def ShowWindow():
|
||||
global logThread
|
||||
global logWindow
|
||||
global questionList
|
||||
global repairButton
|
||||
logWindow = QtWidgets.QWidget()
|
||||
logWindowLayout = QtWidgets.QGridLayout()
|
||||
questionList = QtWidgets.QListView()
|
||||
repairButton = QtWidgets.QPushButton("一键修复")
|
||||
repairButton.setDisabled(True)
|
||||
repairButton.clicked.connect(LogChecking.RepairButton)
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
item = QtGui.QStandardItem("正在分析中……")
|
||||
questionList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
nmodel.appendRow(item)
|
||||
questionList.setModel(nmodel)
|
||||
logWindowLayout.addWidget(questionList, 0, 0, 3, 1)
|
||||
logWindowLayout.addWidget(repairButton, 0, 2, 1, 1)
|
||||
logWindow.setWindowTitle("分析日志")
|
||||
logWindow.setLayout(logWindowLayout)
|
||||
logThread = LogThreading()
|
||||
logThread.done.connect(LogChecking.Show)
|
||||
logThread.start()
|
||||
logWindow.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
logWindow.resize(int(logWindow.frameGeometry().width() * 1.2), int(logWindow.frameGeometry().height() * 1.2))
|
||||
logWindow.show()
|
||||
|
||||
def RepairButton():
|
||||
index = questionList.currentIndex().row()
|
||||
lists = questionMap[index]
|
||||
print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh")
|
||||
if lists[0] == 1 and os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"):
|
||||
OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'")
|
||||
return
|
||||
if lists[0] == 2:
|
||||
QtWidgets.QMessageBox.information(logWindow, "修复方法", "切换其它 Wine")
|
||||
return
|
||||
if lists[0] == 4:
|
||||
QtWidgets.QMessageBox.information(logWindow, "修复方法", "如是 Deepin Wine 可以尝试切换 WineHQ,\n并且取消勾选运行器主页面菜单栏“程序”=>“设置Wine”,取消勾选“屏蔽 Wine 默认 Mono 和 Gecko 安装器”\n然后尝试在菜单栏的“Wine”=>“在指定 Wine、容器安装组件”=>“在指定 Wine、容器安装 Gecko”来安装 Gecko")
|
||||
return
|
||||
QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题")
|
||||
|
||||
def Show(lists):
|
||||
global questionMap
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
disbledButton = False
|
||||
print(lists)
|
||||
if not len(lists):
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||
disbledButton = True
|
||||
for i in lists:
|
||||
if i[0] == 0:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||
disbledButton = True
|
||||
break
|
||||
if i[0] == 1:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"× 无法调用 Dll:{i[1]}"))
|
||||
if i[0] == 2:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"× 尝试用 Mono 运行非 .net 应用 {i[1]}?"))
|
||||
if i[0] == 3:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"! 无法加载 Gecko,是被禁用或未安装?"))
|
||||
if i[0] == 4:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"× 无法更新 Wine 容器版本,是否还有 Wine 程序运行?"))
|
||||
questionMap = lists[:]
|
||||
repairButton.setDisabled(disbledButton)
|
||||
questionList.setModel(nmodel)
|
||||
|
||||
class LogThreading(QtCore.QThread):
|
||||
done = QtCore.pyqtSignal(list)
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
global logText
|
||||
repairList = []
|
||||
logText = returnText.toPlainText()
|
||||
print(logText.splitlines())
|
||||
for i in logText.splitlines():
|
||||
print(i)
|
||||
checkingText = i.lower()
|
||||
if "err:module:import_dll Library".lower() in checkingText:
|
||||
# Lose Dll
|
||||
repairList.append([1, i[i.index("Library") + 8: i.index("(")].strip()])
|
||||
continue
|
||||
if "err:module:fixup_imports_ilonly".lower() in checkingText:
|
||||
# Lose Dll
|
||||
repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()])
|
||||
continue
|
||||
if "Cannot open assembly".lower() in checkingText and ": File does not contain a valid CIL image.".lower() in checkingText:
|
||||
# Mono
|
||||
repairList.append([2, i.replace(": File does not contain a valid CIL image.", "").replace("Cannot open assembly", "").strip()[1: -1]])
|
||||
if "Could not load wine-gecko. HTML rendering will be disabled.".lower() in checkingText and "Could not find Wine Gecko. HTML rendering will be disabled.".lower() in checkingText:
|
||||
# Disbled Gecko
|
||||
repairList.append([3, ""])
|
||||
if "Your wineserver binary was not upgraded correctly".lower() in checkingText:
|
||||
repairList.append([4, ""])
|
||||
self.done.emit(repairList)
|
||||
|
||||
|
||||
def DisableButton(things):
|
||||
button_r_6.setDisabled(things)
|
||||
button1.setDisabled(things)
|
||||
@@ -165,9 +272,9 @@ class Runexebutton_threading(QtCore.QThread):
|
||||
else:
|
||||
option += "WINEDEBUG=FIXME,ERR,WARN,TRACE,Message "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -226,7 +333,25 @@ StartupNotify=true''')
|
||||
# 写入不进去就别写入了,当什么事情都没发生就行
|
||||
traceback.print_exc()
|
||||
DisableButton(False)
|
||||
|
||||
|
||||
class Temp:
|
||||
webWindow = None
|
||||
|
||||
def OpenUrl(url):
|
||||
print(url.url())
|
||||
# 判断是否可以使用小窗打开
|
||||
if not bad:
|
||||
Temp.webWindow = QtWidgets.QMainWindow()
|
||||
web = QtWebEngineWidgets.QWebEngineView()
|
||||
web.setUrl(url)
|
||||
Temp.webWindow.setWindowTitle("浏览页面")
|
||||
Temp.webWindow.setCentralWidget(web)
|
||||
Temp.webWindow.setWindowIcon(QtGui.QIcon(iconPath))
|
||||
Temp.webWindow.show()
|
||||
return
|
||||
webbrowser.open_new_tab(url.url())
|
||||
|
||||
#QtCore.QUrl().url()
|
||||
|
||||
# 显示“关于这个程序”窗口
|
||||
def about_this_program()->"显示“关于这个程序”窗口":
|
||||
@@ -240,7 +365,12 @@ def about_this_program()->"显示“关于这个程序”窗口":
|
||||
messageLayout = QtWidgets.QGridLayout()
|
||||
messageLayout.addWidget(QtWidgets.QLabel(f"<img width=256 src='{iconPath}'>"), 0, 0, 1, 1, QtCore.Qt.AlignTop)
|
||||
aboutInfo = QtWidgets.QTextBrowser(messageWidget)
|
||||
aboutInfo.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||
#aboutInfo.copyAvailable.connect(lambda: print("b"))
|
||||
aboutInfo.anchorClicked.connect(OpenUrl)
|
||||
aboutInfo.setOpenLinks(False)
|
||||
aboutInfo.setHtml(about)
|
||||
aboutInfo.setOpenExternalLinks(False)
|
||||
messageLayout.addWidget(aboutInfo, 0, 1, 1, 1)
|
||||
ok = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "确定"))
|
||||
ok.clicked.connect(QT.message.close)
|
||||
@@ -288,13 +418,13 @@ def make_desktop_on_launcher():
|
||||
else:
|
||||
option += "WINEDEBUG=FIXME,ERR,WARN,TRACE,Message "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
return
|
||||
os.remove(f"{programPath}/dlls-arm.7z")
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
value = ""
|
||||
if e2.currentText()[:2].upper() == "C:":
|
||||
@@ -348,9 +478,9 @@ def make_desktop_on_desktop():
|
||||
else:
|
||||
wineBottonPath = e1.currentText()
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -438,6 +568,50 @@ def InstallWine():
|
||||
def InstallWineOnDeepin23():
|
||||
threading.Thread(target=OpenTerminal, args=[f"'{programPath}/InstallWineOnDeepin23.py'"]).start()
|
||||
|
||||
class DllWindow():
|
||||
def ShowWindow():
|
||||
global dllMessage
|
||||
global dllInfoMap
|
||||
global textInfo
|
||||
global dllName
|
||||
dllMessage = QtWidgets.QWidget()
|
||||
dllLayout = QtWidgets.QGridLayout()
|
||||
try:
|
||||
dllInfoMap["check"]
|
||||
except:
|
||||
try:
|
||||
with open(f"{programPath}/CheckDLL/lists.json", "r") as file:
|
||||
dllInfoMap = json.loads(file.read())
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(dllMessage, "错误", traceback.format_exc())
|
||||
# UI
|
||||
dllName = QtWidgets.QLineEdit()
|
||||
dllButton = QtWidgets.QPushButton("查询")
|
||||
textInfo = QtWidgets.QTextBrowser()
|
||||
dllButton.clicked.connect(DllWindow.Find)
|
||||
dllLayout.addWidget(QtWidgets.QLabel("Dll 名称:"), 0, 0)
|
||||
dllLayout.addWidget(dllName, 0, 1)
|
||||
dllLayout.addWidget(dllButton, 0, 2)
|
||||
dllLayout.addWidget(textInfo, 1, 0, 1, 3)
|
||||
dllMessage.setWindowTitle(f"{title}——查询 Dll")
|
||||
dllMessage.setLayout(dllLayout)
|
||||
dllMessage.resize(int(dllMessage.frameGeometry().width() * 1.2), int(dllMessage.frameGeometry().height() * 1.1))
|
||||
dllMessage.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
dllMessage.show()
|
||||
|
||||
def Find():
|
||||
dllNameText = dllName.text().strip().lower()
|
||||
if dllNameText[-4:] != ".dll":
|
||||
dllNameText += ".dll"
|
||||
try:
|
||||
textInfo.setText(dllInfoMap[dllNameText])
|
||||
except:
|
||||
textInfo.setText(f"未查询到有关 Dll '{dllNameText}' 有关的内容")
|
||||
|
||||
def InstallWineOnDeepin23Alpha():
|
||||
threading.Thread(target=OpenTerminal, args=[f"'{programPath}/InstallWineOnDeepin23Alpha.py'"]).start()
|
||||
|
||||
def InstallWineHQ():
|
||||
threading.Thread(target=OpenTerminal, args=[f"{programPath}/InstallNewWineHQ.sh"]).start()
|
||||
|
||||
@@ -456,6 +630,31 @@ def OpenWineFontPath():
|
||||
QtWidgets.QMessageBox.information(widget, "提示", QtCore.QCoreApplication.translate("U", "如果安装字体?只需要把字体文件复制到此字体目录\n按下“OK”按钮可以打开字体目录"))
|
||||
os.system("xdg-open \"" + wineBottonPath.replace("\'", "\\\'") + "/drive_c/windows/Fonts\"")
|
||||
|
||||
def GetLoseDll():
|
||||
if e1.currentText() == "":
|
||||
wineBottonPath = setting["DefultBotton"]
|
||||
else:
|
||||
wineBottonPath = e1.currentText()
|
||||
option = ""
|
||||
if setting["MonoGeckoInstaller"]:
|
||||
option += f"WINEDLLOVERRIDES=\"mscoree,mshtml=\" "
|
||||
if setting["Architecture"] != "Auto":
|
||||
option += f"WINEARCH={setting['Architecture']} "
|
||||
if not setting["Debug"]:
|
||||
option += "WINEDEBUG=-all "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
os.system(f"'{programPath}/deepin-wine-runner-create-botton.py' '{wineBottonPath}'")
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
return
|
||||
os.remove(f"{programPath}/dlls-arm.7z")
|
||||
threading.Thread(target=os.system, args=[f"python3 '{programPath}/CheckDLL/main.py' '{e2.currentText()}' '{wineBottonPath}' '{wine[o1.currentText()]}'" + setting["WineOption"]]).start()
|
||||
|
||||
class RunWineProgramThread(QtCore.QThread):
|
||||
signal = QtCore.pyqtSignal(str)
|
||||
showHistory = QtCore.pyqtSignal(str)
|
||||
@@ -478,11 +677,11 @@ class RunWineProgramThread(QtCore.QThread):
|
||||
if not setting["Debug"]:
|
||||
option += "WINEDEBUG=-all "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
os.system(f"'{programPath}/deepin-wine-runner-create-botton.py' '{wineBottonPath}'")
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -519,7 +718,7 @@ runProgram = None
|
||||
def RunWineProgram(wineProgram, history = False, Disbled = True):
|
||||
global runProgram
|
||||
DisableButton(True)
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 UOS exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and not o1.currentText() in untipsWine:
|
||||
DisableButton(False)
|
||||
return
|
||||
@@ -544,9 +743,9 @@ class RunWinetricksThread(QtCore.QThread):
|
||||
if not setting["Debug"]:
|
||||
option += "WINEDEBUG=-all "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -575,11 +774,11 @@ runWinetricks = None
|
||||
def RunWinetricks():
|
||||
global runWinetricks
|
||||
DisableButton(True)
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 UOS exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and not o1.currentText() in untipsWine:
|
||||
DisableButton(False)
|
||||
return
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -1591,6 +1790,39 @@ class ValueCheck():
|
||||
def ChangePath():
|
||||
e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}')
|
||||
|
||||
def UploadLog():
|
||||
if QtWidgets.QMessageBox.question(window, "提示", "您确定要上传吗?上传内容将不会公开,将用于加强日志分析功能") == QtWidgets.QMessageBox.Yes:
|
||||
text = QtWidgets.QInputDialog.getMultiLineText(window, "输入内容", "输入描述信息")
|
||||
try:
|
||||
returnList = requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2xvZw==").decode("utf-8"), {
|
||||
"Log": returnText.toPlainText(),
|
||||
"Wine": wine[o1.currentText()],
|
||||
"Tips": text
|
||||
}).json
|
||||
if returnList["ExitCode"] == 0:
|
||||
QtWidgets.QMessageBox.information(window, "提示", "上传成功!")
|
||||
else:
|
||||
print(returnList)
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||
|
||||
def SaveLog():
|
||||
path = QtWidgets.QFileDialog.getSaveFileName(window, "保存日志", get_home(), "txt文件(*.txt);;html 文件(*.html);;所有文件(*.*))")
|
||||
if not path[1]:
|
||||
return
|
||||
print(path)
|
||||
try:
|
||||
with open(path[0], "w") as file:
|
||||
if path[1] == "html 文件(*.html)":
|
||||
file.write(returnText.toHtml())
|
||||
else:
|
||||
file.write(returnText.toPlainText())
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
|
||||
###########################
|
||||
# 加载配置
|
||||
###########################
|
||||
@@ -1636,11 +1868,14 @@ if not os.path.exists(get_home() + "/.config/deepin-wine-runner/WineSetting.json
|
||||
# 设置变量
|
||||
###########################
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
# 如果要添加其他 wine,请在字典添加其名称和执行路径
|
||||
# 如果要添加其他 wine,请使用安装更多 Wine 功能
|
||||
#############
|
||||
# 检测 Wine
|
||||
#############
|
||||
try:
|
||||
wine = {
|
||||
"基于 UOS box86 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ",
|
||||
"基于 exagear 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- /opt/deepin-wine6-stable/bin/wine ",
|
||||
"基于 UOS exagear 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- /opt/deepin-wine6-stable/bin/wine ",
|
||||
"deepin-wine6 stable": "deepin-wine6-stable",
|
||||
"deepin-wine5 stable": "deepin-wine5-stable",
|
||||
"spark-wine7-devel": "spark-wine7-devel",
|
||||
@@ -1652,11 +1887,13 @@ try:
|
||||
"mono(这不是 wine,但可以实现初步调用运行 .net 应用)": "mono",
|
||||
"基于 linglong 的 deepin-wine6-stable(不推荐)": f"ll-cli run '' --exec '/bin/deepin-wine6-stable'"
|
||||
}
|
||||
untipsWine = ["基于 UOS box86 的 deepin-wine6-stable", "基于 exagear 的 deepin-wine6-stable", "基于 linglong 的 deepin-wine6-stable(不推荐)"]
|
||||
untipsWine = ["基于 exagear 的 deepin-wine6-stable", "基于 UOS box86 的 deepin-wine6-stable", "基于 UOS exagear 的 deepin-wine6-stable", "基于 linglong 的 deepin-wine6-stable(不推荐)"]
|
||||
canUseWine = []
|
||||
if os.path.exists("/opt/deepin-box86/box86"):
|
||||
if os.path.exists("/opt/deepin-box86/box86") and os.path.exists("/opt/deepin-wine6-stable/bin/wine"):
|
||||
canUseWine.append("基于 UOS box86 的 deepin-wine6-stable")
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"):
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al") and os.path.exists("/opt/deepin-wine6-stable/bin/wine"):
|
||||
canUseWine.append("基于 UOS exagear 的 deepin-wine6-stable")
|
||||
if not os.system("which exagear") and os.path.exists("/opt/deepin-wine6-stable/bin/wine"):
|
||||
canUseWine.append("基于 exagear 的 deepin-wine6-stable")
|
||||
for i in wine.keys():
|
||||
if not os.system(f"which '{wine[i]}'"):
|
||||
@@ -1688,8 +1925,11 @@ try:
|
||||
if os.system("which box64") == 0:
|
||||
name = "基于 box64 的 "
|
||||
value = f"box64 "
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"):
|
||||
if os.system("which exagear") == 0:
|
||||
name = "基于 exagear 的 "
|
||||
value = f"exagear "
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"):
|
||||
name = "基于 UOS exagear 的 "
|
||||
value = f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- "
|
||||
except:
|
||||
pass
|
||||
@@ -1756,65 +1996,103 @@ def getFileFolderSize(fileOrFolderPath):
|
||||
def get_now_lang()->"获取当前语言":
|
||||
return os.getenv('LANG')
|
||||
|
||||
def GetVersion():
|
||||
global about
|
||||
global programVersionType
|
||||
# 目前分为几个版本(在 control 文件区分):
|
||||
# 星火版本:~spark
|
||||
# 商店版本:~uos
|
||||
# 编译版本:无版本号
|
||||
# Gitee/Github……:正常版本
|
||||
programVersionTypeLnk = {
|
||||
"spark": "星火应用商店版本",
|
||||
"uos": "deepin/UOS 应用商店版本<带签名>"
|
||||
}
|
||||
programVersionType = "从源码运行的版本"
|
||||
try:
|
||||
if not os.path.exists("/var/lib/dpkg/status"):
|
||||
print("无 dpkg,结束")
|
||||
file = open("/var/lib/dpkg/status", "r")
|
||||
fileName = file.read().splitlines()
|
||||
package = False
|
||||
for i in range(0, len(fileName)):
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner-52":
|
||||
programVersionType = "吾爱专版"
|
||||
window.setWindowTitle(f"{title} 吾爱专版")
|
||||
break
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner":
|
||||
package = True
|
||||
continue
|
||||
if not package:
|
||||
continue
|
||||
if fileName[i].replace(" ", "").replace("\n", "") == "":
|
||||
# 空行,不再考虑
|
||||
break
|
||||
# 搜索版本号
|
||||
# 又需要修复多线程导致的控件问题
|
||||
def AddDockerMenu():
|
||||
global dockers
|
||||
global openFileManager
|
||||
global openTerminal
|
||||
dockers = menu.addMenu("该 Docker 基础管理")
|
||||
openFileManager = QtWidgets.QAction("打开默认文件管理器")
|
||||
openTerminal = QtWidgets.QAction("打开默认终端")
|
||||
openFileManager.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"xdg-open '{get_home()}'"]).start())
|
||||
openTerminal.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"x-terminal-emulator"]).start())
|
||||
dockers.addAction(openFileManager)
|
||||
dockers.addAction(openTerminal)
|
||||
|
||||
class GetVersionThread(QtCore.QThread):
|
||||
signal = QtCore.pyqtSignal(str)
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
global about
|
||||
global window
|
||||
global programVersionType
|
||||
# 目前分为几个版本(在 control 文件区分):
|
||||
# 星火版本:~spark
|
||||
# 商店版本:~uos
|
||||
# 编译版本:无版本号
|
||||
# Gitee/Github……:正常版本
|
||||
# Docker 版本
|
||||
programVersionTypeLnk = {
|
||||
"spark": "星火应用商店版本",
|
||||
"uos": "deepin/UOS 应用商店版本<带签名>"
|
||||
}
|
||||
# 直接判断是不是 Docker 版本
|
||||
if os.path.exists(f"{programPath}/docker.txt") or os.path.exists("/.dockerenv"):
|
||||
programVersionType = "Docker 内置版本"
|
||||
window.setWindowTitle(f"{title} (Docker 内置版本)")
|
||||
self.signal.emit("")
|
||||
else:
|
||||
programVersionType = "从源码运行的版本"
|
||||
try:
|
||||
if fileName[i][:fileName[i].index(":")] == "Version":
|
||||
version = fileName[i][fileName[i].index(":") + 1:].strip()
|
||||
print(f"版本号为:{version}")
|
||||
if not "-" in version:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
if not os.path.exists("/var/lib/dpkg/status"):
|
||||
print("无 dpkg,结束")
|
||||
file = open("/var/lib/dpkg/status", "r")
|
||||
fileName = file.read().splitlines()
|
||||
package = False
|
||||
for i in range(0, len(fileName)):
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner-docker":
|
||||
programVersionType = "Docker 内置版本"
|
||||
window.setWindowTitle(f"{title} (Docker 内置版本)")
|
||||
#AddDockerMenu()
|
||||
self.signal.emit("")
|
||||
break
|
||||
programVersionType = version[version.index("-") + 1:]
|
||||
print(programVersionType)
|
||||
if "-" in programVersionType:
|
||||
# 考虑到如 2.1.0-2-spark 的情况
|
||||
programVersionType = programVersionType[programVersionType.index("-") + 1:]
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner-52":
|
||||
programVersionType = "吾爱专版"
|
||||
window.setWindowTitle(f"{title}(吾爱专版)")
|
||||
break
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner":
|
||||
package = True
|
||||
continue
|
||||
if not package:
|
||||
continue
|
||||
if fileName[i].replace(" ", "").replace("\n", "") == "":
|
||||
# 空行,不再考虑
|
||||
break
|
||||
# 搜索版本号
|
||||
try:
|
||||
programVersionType = programVersionTypeLnk[programVersionType]
|
||||
if fileName[i][:fileName[i].index(":")] == "Version":
|
||||
version = fileName[i][fileName[i].index(":") + 1:].strip()
|
||||
print(f"版本号为:{version}")
|
||||
if not "-" in version:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
break
|
||||
programVersionType = version[version.index("-") + 1:]
|
||||
print(programVersionType)
|
||||
if "-" in programVersionType:
|
||||
# 考虑到如 2.1.0-2-spark 的情况
|
||||
programVersionType = programVersionType[programVersionType.index("-") + 1:]
|
||||
try:
|
||||
programVersionType = programVersionTypeLnk[programVersionType]
|
||||
except:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
break
|
||||
except:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
break
|
||||
traceback.print_exc()
|
||||
continue
|
||||
except:
|
||||
traceback.print_exc()
|
||||
continue
|
||||
except:
|
||||
print("无法读取,当没有处理")
|
||||
print(programVersionType)
|
||||
about = about.replace("@VersionForType@", programVersionType)
|
||||
# 获取程序体积
|
||||
about = about.replace("@programSize@", str(int(getFileFolderSize(programPath) / 1024 / 1024)))
|
||||
print("无法读取,当没有处理")
|
||||
print(programVersionType)
|
||||
about = about.replace("@VersionForType@", programVersionType)
|
||||
# 获取程序体积
|
||||
about = about.replace("@programSize@", str(int(getFileFolderSize(programPath) / 1024 / 1024)))
|
||||
|
||||
def GetVersion():
|
||||
global runVersion
|
||||
runVersion = GetVersionThread()
|
||||
runVersion.signal.connect(AddDockerMenu)
|
||||
runVersion.start()
|
||||
|
||||
programVersionType = ""
|
||||
print(wine)
|
||||
@@ -1828,43 +2106,48 @@ version = information["Version"]
|
||||
goodRunSystem = "常见 Linux 发行版"
|
||||
thankText = ""
|
||||
tips = '''<h4>提示:</h4>
|
||||
1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错;
|
||||
2、wine 32 位和 64 位的容器互不兼容;
|
||||
3、所有的 wine 和 winetricks 均需要自行安装(可以从 菜单栏=>程序 里面进行安装)
|
||||
1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错;
|
||||
2、wine 32 位和 64 位的容器互不兼容;
|
||||
3、所有的 wine 和 winetricks 均需要自行安装(可以从 菜单栏=>程序 里面进行安装);
|
||||
4、本程序支持带参数运行 wine 程序(之前版本也可以),只需要按以下格式即可:
|
||||
exe路径\' 参数 \'
|
||||
即可(单引号需要输入)
|
||||
5、wine 容器如果没有指定,则会默认为 ~/.wine
|
||||
6、如果可执行文件比较大的话,会出现点击“获取该程序运行情况”出现假死的情况,因为正在后台读取 SHA1,只需要等一下即可(读取速度依照您电脑处理速度、读写速度、可执行文件大小等有关)
|
||||
7、对于非 X86 的用户来说,请不要使用本程序自带的 Wine 安装程序和 Windows 虚拟机安装功能(检测到为非 X86 架构会自动禁用)
|
||||
8、如果非 X86 的用户的 UOS 专业版用户想要使用的话,只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序
|
||||
即可(单引号需要输入);
|
||||
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 也必须在被映射的目录内
|
||||
同理需要运行的 EXE 也必须在被映射的目录内;
|
||||
10、如果是使用 Deepin 23 的 Wine 安装脚本,请切记——安装过程会临时添加 Deepin 20 的 apt 源,不要中断安装以及
|
||||
<b>千万不要中断后不删除源的情况下 apt upgrade !!!</b>中断后只需重新打开脚本输入 repair 或者随意安装一个 Wine(会自动执行恢复操作)即可
|
||||
以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示
|
||||
以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示;
|
||||
<code>N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。</code>'''
|
||||
updateThingsString = '''※1、不基于生态适配活动脚本的打包器支持只生成制作容器的 7z 包
|
||||
※2、两个打包器的容器自动删除脚本添加 kill.sh
|
||||
※3、Wine 运行器支持杀死对应容器进程
|
||||
※4、容器自动配置脚本和 Wine 安装器支持切换源
|
||||
5、非生态适配脚本打包器追加运行参数改为 --uri XXX 而非直接 XXX
|
||||
6、两个打包器新增星火应用商店投稿入口
|
||||
7、优化开启 Windows 虚拟机功能在未安装 VirtualBox 时的提示
|
||||
8、Reg Shot 版本从 1.8.3-beta1V5 升级到 1.9.0
|
||||
9、Geek Uninstaller 版本从 1.5.1.161 升级到 1.5.1.163
|
||||
10、容器自动配置脚本添加 installother 命令、修复返回值传递问题
|
||||
11、不显示 pip 安装库的提示信息(因为不是很核心的库)
|
||||
12、非基于生态适配活动脚本的打包器默认勾选卸载该 deb 后自动删除容器、使用统信活动容器清理脚本、使用星火 wine helper
|
||||
13、优化文案
|
||||
updateThingsString = '''※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);
|
||||
※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;
|
||||
※3、支持多图标的程序打包;
|
||||
※4、修复了安装更多 Wine 换源换了个寂寞的问题;
|
||||
※5、修复安装更多 Wine 重新安装后列表丢失的问题;
|
||||
※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;
|
||||
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
||||
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
||||
※9、支持移除指定的 .desktop 快捷方式;
|
||||
※10、新增日志分析功能以及导出、上传日志功能;
|
||||
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||
12、优化文案、新增友链;
|
||||
13、提供了部分组件的测试功能。
|
||||
'''
|
||||
for i in information["Thank"]:
|
||||
thankText += f"{i}\n"
|
||||
updateTime = "2022年11月06日"
|
||||
about = f'''<h1>关于</h1>
|
||||
<p>一个能让Linux用户更加方便运行Windows应用的程序,内置了对wine图形化的支持和各种Wine工具和自制Wine程序打包器、运行库安装工具等等</p>
|
||||
<p>同时也内置了基于VirtualBox制作的小白Windows虚拟机安装工具,可以做到只需要用户下载系统镜像并点击安装即可,无需顾及虚拟机安装、创建、虚拟机的分区等等</p>
|
||||
updateTime = "2022年11月25日"
|
||||
about = f'''<style>
|
||||
a:link, a:active {{
|
||||
text-decoration: none;
|
||||
}}
|
||||
</style>
|
||||
<h1>关于</h1>
|
||||
<p>Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。</p>
|
||||
<p>它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。</p>
|
||||
<p>本程序依照 GPLV3 协议开源</p>
|
||||
<pre>
|
||||
|
||||
@@ -1892,10 +2175,12 @@ Qt 版本:{QtCore.qVersion()}
|
||||
<h1>友谊链接</h1>
|
||||
<pre>星火应用商店:https://spark-app.store/
|
||||
Deepin 官网:https://www.deepin.org
|
||||
Deepin 论坛:https://bbs.deepin.org</pre>
|
||||
Deepin 论坛:https://bbs.deepin.org
|
||||
非官方论坛:https://gfdgdxi.flarum.cloud/</pre>
|
||||
<hr>
|
||||
<h1>©2020~{time.strftime("%Y")} gfdgd xi、为什么您不喜欢熊出没和阿布呢</h1>'''
|
||||
title = "Wine 运行器 {}".format(version)
|
||||
#<h1>©2020~{time.strftime("%Y")} <a href="https://gitee.com/gfdgd-xi">gfdgd xi、为什么您不喜欢熊出没和阿布呢</h1>'''
|
||||
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
||||
try:
|
||||
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9vcGVuL0luc3RhbGwucGhw").decode("utf-8")) + "?Version=" + version]).start()
|
||||
@@ -1908,6 +2193,13 @@ iconListUnBuild = [
|
||||
["TIM", "wineBottonPath/drive_c/Program Files (x86)/Tencent/TIM/Bin/TIM.exe"]
|
||||
]
|
||||
iconList = [
|
||||
["cmd", "cmd"],
|
||||
["cmd", "cmd.exe"],
|
||||
["cmd", "wineBottonPath/drive_c/windows/system32/cmd.exe"],
|
||||
["Internet Explorer", "iexplore"],
|
||||
["Internet Explorer", "iexplore.exe"],
|
||||
["Internet Explorer", "wineBottonPath/drive_c/Program Files/Internet Explorer/iexplore.exe"],
|
||||
["Internet Explorer", "wineBottonPath/drive_c/Program Files (x86)/Internet Explorer/iexplore.exe"],
|
||||
["微信", "wineBottonPath/drive_c/Program Files/Tencent/WeChat/WeChat.exe"],
|
||||
["微信", "wineBottonPath/drive_c/Program Files (x86)/Tencent/WeChat/WeChat.exe"],
|
||||
["UltraISO", "wineBottonPath/drive_c/Program Files/UltraISO/UltraISO.exe"],
|
||||
@@ -1915,7 +2207,11 @@ iconList = [
|
||||
["迅雷", "wineBottonPath/drive_c/Program Files/Thunder Network/MiniThunder/Bin/ThunderMini.exe"],
|
||||
["迅雷", "wineBottonPath/drive_c/Program Files (x86)/Thunder Network/MiniThunder/Bin/ThunderMini.exe"],
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE"],
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE"]
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE"],
|
||||
["腾讯会议", "wineBottonPath/drive_c/Program Files/Tencent/WeMeet/wemeetapp.exe"],
|
||||
["腾讯会议", "wineBottonPath/drive_c/Program Files (x86)/Tencent/WeMeet/wemeetapp.exe"],
|
||||
["腾讯课堂", "wineBottonPath/drive_c/Program Files/Tencent/EDU/bin/TXEDU.exe"],
|
||||
["腾讯课堂", "wineBottonPath/drive_c/Program Files (x86)/Tencent/EDU/bin/TXEDU.exe"]
|
||||
]
|
||||
for i in iconListUnBuild:
|
||||
iconList.append(i)
|
||||
@@ -1934,8 +2230,6 @@ if not get_now_lang() == "zh_CN.UTF-8":
|
||||
app.installTranslator(trans)
|
||||
window = QtWidgets.QMainWindow()
|
||||
window.setWindowTitle(title)
|
||||
# 异同步获取信息
|
||||
threading.Thread(target=GetVersion).start()
|
||||
widget = QtWidgets.QWidget()
|
||||
window.setCentralWidget(widget)
|
||||
mainLayout = QtWidgets.QGridLayout()
|
||||
@@ -2022,6 +2316,10 @@ programManager.addWidget(QtWidgets.QLabel(" "*5), 1, 7, 1, 1)
|
||||
getProgramStatus = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "获取该程序运行情况"))
|
||||
getProgramStatus.clicked.connect(ProgramRunStatusShow.ShowWindow)
|
||||
programManager.addWidget(getProgramStatus, 1, 8, 1, 1)
|
||||
getLoseDll = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "检测静态下程序缺少DLL"))
|
||||
getLoseDll.clicked.connect(GetLoseDll)
|
||||
programManager.addWidget(QtWidgets.QLabel(" "*5), 1, 9, 1, 1)
|
||||
programManager.addWidget(getLoseDll, 1, 10, 1, 1)
|
||||
programManager.addItem(QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum), 1, 9, 1, 1)
|
||||
programManager.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "WINE配置:")), 2, 0, 1, 1)
|
||||
wineConfig = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "配置容器"))
|
||||
@@ -2085,7 +2383,8 @@ mainLayout.addWidget(programRun, 2, 1, 1, 1)
|
||||
menu = window.menuBar()
|
||||
programmenu = menu.addMenu(QtCore.QCoreApplication.translate("U", "程序(&P)"))
|
||||
p1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(&I)"))
|
||||
installWineOnDeepin23 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(只限Deepin23)"))
|
||||
installWineOnDeepin23 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(只限Deepin23 Preview)"))
|
||||
installWineOnDeepin23Alpha = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(只限Deepin23 Alpha)"))
|
||||
installWineHQ = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 WineHQ"))
|
||||
installMoreWine = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装更多 Wine"))
|
||||
p2 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "设置程序(&S)"))
|
||||
@@ -2095,6 +2394,7 @@ cleanProgramUnuse = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "
|
||||
p4 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "退出程序(&E)"))
|
||||
programmenu.addAction(p1)
|
||||
programmenu.addAction(installWineOnDeepin23)
|
||||
programmenu.addAction(installWineOnDeepin23Alpha)
|
||||
programmenu.addAction(installWineHQ)
|
||||
programmenu.addAction(installMoreWine)
|
||||
programmenu.addSeparator()
|
||||
@@ -2107,6 +2407,7 @@ programmenu.addSeparator()
|
||||
programmenu.addAction(p4)
|
||||
p1.triggered.connect(InstallWine)
|
||||
installWineOnDeepin23.triggered.connect(InstallWineOnDeepin23)
|
||||
installWineOnDeepin23Alpha.triggered.connect(InstallWineOnDeepin23Alpha)
|
||||
installWineHQ.triggered.connect(InstallWineHQ)
|
||||
installMoreWine.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"'{programPath}/wine/installwine'"]).start())
|
||||
p2.triggered.connect(ProgramSetting.ShowWindow)
|
||||
@@ -2127,6 +2428,7 @@ w6 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "使用官方 Wine
|
||||
getDllOnInternet = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "从互联网获取DLL"))
|
||||
w7 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "从镜像获取DLL(只支持官方安装镜像,DOS内核如 Windows 95 暂不支持)"))
|
||||
updateGeek = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "从 Geek Uninstaller 官网升级程序"))
|
||||
deletePartIcon = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "删除部分 Wine 程序在启动器的快捷方式"))
|
||||
deleteDesktopIcon = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "删除所有 Wine 程序在启动器的快捷方式"))
|
||||
wineOption.addAction(w1)
|
||||
wineOption.addAction(w2)
|
||||
@@ -2183,22 +2485,34 @@ wineOption.addAction(w10)
|
||||
wineOption.addSeparator()
|
||||
wineOption.addAction(w11)
|
||||
wineOption.addSeparator()
|
||||
wm3 = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "启用/禁用 opengl"))
|
||||
optionCheckDemo = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "组件功能测试"))
|
||||
vbDemo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "测试 Visual Basic 6 程序"))
|
||||
netDemo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "测试 .net framework 程序"))
|
||||
netIEDemo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "测试 .net framework + Internet Explorer 程序"))
|
||||
optionCheckDemo.addAction(vbDemo)
|
||||
optionCheckDemo.addAction(netDemo)
|
||||
optionCheckDemo.addAction(netIEDemo)
|
||||
wineOption.addSeparator()
|
||||
wm3 = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "启用/禁用功能"))
|
||||
ed1 = wm3.addMenu(QtCore.QCoreApplication.translate("U", "启用/禁用 opengl"))
|
||||
wm3_1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "开启 opengl"))
|
||||
wm3_2 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "禁用 opengl"))
|
||||
wm3.addAction(wm3_1)
|
||||
wm3.addAction(wm3_2)
|
||||
wm4 = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 winbind"))
|
||||
ed1.addAction(wm3_1)
|
||||
ed1.addAction(wm3_2)
|
||||
ed2 = wm3.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 winbind"))
|
||||
wm4_1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 winbind"))
|
||||
wm4_2 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "卸载 winbind"))
|
||||
wm4.addAction(wm4_1)
|
||||
wm4.addAction(wm4_2)
|
||||
dxvkMenu = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 DXVK"))
|
||||
ed2.addAction(wm4_1)
|
||||
ed2.addAction(wm4_2)
|
||||
dxvkMenu = wm3.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 DXVK"))
|
||||
installDxvk = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 DXVK"))
|
||||
uninstallDxvk = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "卸载 DXVK"))
|
||||
dxvkMenu.addAction(installDxvk)
|
||||
dxvkMenu.addAction(uninstallDxvk)
|
||||
wineOption.addSeparator()
|
||||
wineOption.addAction(deletePartIcon)
|
||||
wineOption.addAction(deleteDesktopIcon)
|
||||
wineOption.addSeparator()
|
||||
settingWineBottleCreateLink = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "允许/禁止指定 wine 容器生成快捷方式"))
|
||||
enabledWineBottleCreateLink = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "允许指定 wine 容器生成快捷方式"))
|
||||
disbledWineBottleCreateLink = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "禁止指定 wine 容器生成快捷方式"))
|
||||
@@ -2255,6 +2569,7 @@ wm4_1.triggered.connect(lambda: os.system(f"'{programPath}/launch.sh' deepin-ter
|
||||
wm4_2.triggered.connect(lambda: os.system(f"'{programPath}/launch.sh' deepin-terminal -C 'pkexec apt purge winbind -y' --keep-open"))
|
||||
installDxvk.triggered.connect(InstallDXVK)
|
||||
uninstallDxvk.triggered.connect(UninstallDXVK)
|
||||
deletePartIcon.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"python3 '{programPath}/BuildDesktop.py'"]).start())
|
||||
deleteDesktopIcon.triggered.connect(DeleteDesktopIcon)
|
||||
enabledWineBottleCreateLink.triggered.connect(lambda: RunWineProgram("reg' delete 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe '/f"))
|
||||
disbledWineBottleCreateLink.triggered.connect(lambda: RunWineProgram("reg' add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe '/f"))
|
||||
@@ -2265,6 +2580,9 @@ disbledHttpProxy.triggered.connect(DisbledHttpProxy)
|
||||
saveDllOver.triggered.connect(SaveDllList)
|
||||
addDllOver.triggered.connect(AddReg)
|
||||
editDllOver.triggered.connect(lambda: RunWineProgram("winecfg"))
|
||||
vbDemo.triggered.connect(lambda: RunWineProgram(f"{programPath}/Test/vb.exe"))
|
||||
netDemo.triggered.connect(lambda: RunWineProgram(f"{programPath}/Test/net.exe"))
|
||||
netIEDemo.triggered.connect(lambda: RunWineProgram(f"{programPath}/Test/netandie.exe"))
|
||||
|
||||
virtualMachine = menu.addMenu(QtCore.QCoreApplication.translate("U", "虚拟机(&V)"))
|
||||
v1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "使用 Virtualbox 虚拟机运行 Windows 应用"))
|
||||
@@ -2300,6 +2618,20 @@ s1.triggered.connect(lambda: webbrowser.open_new_tab("https://ata.360.net/"))
|
||||
s2.triggered.connect(lambda: webbrowser.open_new_tab("https://s.threatbook.cn/"))
|
||||
s3.triggered.connect(lambda: webbrowser.open_new_tab("https://www.virustotal.com/"))
|
||||
|
||||
log = menu.addMenu(QtCore.QCoreApplication.translate("U", "日志(&L)"))
|
||||
getDllInfo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询 Dll"))
|
||||
checkLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "日志分析"))
|
||||
saveLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "另存为日志"))
|
||||
uploadLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "上传日志"))
|
||||
getDllInfo.triggered.connect(DllWindow.ShowWindow)
|
||||
checkLogText.triggered.connect(LogChecking.ShowWindow)
|
||||
saveLogText.triggered.connect(SaveLog)
|
||||
uploadLogText.triggered.connect(UploadLog)
|
||||
log.addAction(getDllInfo)
|
||||
log.addAction(checkLogText)
|
||||
log.addAction(saveLogText)
|
||||
log.addAction(uploadLogText)
|
||||
|
||||
help = menu.addMenu(QtCore.QCoreApplication.translate("U", "帮助(&H)"))
|
||||
runStatusWebSize = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询程序在 Wine 的运行情况"))
|
||||
h1 = help.addMenu(QtCore.QCoreApplication.translate("U", "程序官网"))
|
||||
@@ -2363,7 +2695,9 @@ h6.triggered.connect(WineRunnerBugUpload)
|
||||
h7.triggered.connect(about_this_program)
|
||||
h8.triggered.connect(lambda: QtWidgets.QMessageBox.aboutQt(widget))
|
||||
hm1_1.triggered.connect(lambda: webbrowser.open_new_tab("https://gitee.com/gfdgd-xi/uengine-runner"))
|
||||
|
||||
# 异同步获取信息
|
||||
#threading.Thread(target=GetVersion).start()
|
||||
GetVersion()
|
||||
# 窗口设置
|
||||
window.resize(widget.frameGeometry().width() * 2, widget.frameGeometry().height())
|
||||
widget.setLayout(mainLayout)
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"Version": "2.4.1",
|
||||
"Version": "2.5.0",
|
||||
"Thank": [
|
||||
"感谢 @牦牛儿苗 进行了龙芯 3a5000 平台的测试与移植",
|
||||
"感谢 @雁舞白沙 优化了程序文案",
|
||||
"感谢 @豪 的程序测试和制作的非官方论坛 https://gfdgdxi.flarum.cloud/",
|
||||
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
||||
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
||||
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
||||
|
||||
@@ -115,8 +115,13 @@ def ReadLocalInformation():
|
||||
ui.localWineList.setModel(nmodel)
|
||||
file.close()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
print("新建空列表")
|
||||
try:
|
||||
with open(f"{programPath}/winelist.json", "w") as file:
|
||||
file.write("[]")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
|
||||
def InstallOtherWine():
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(window, "选择 Wine", os.getenv("~"), "wine(wine);;wine64(wine64);;全部文件(*.*)")
|
||||
@@ -147,14 +152,17 @@ def InstallOtherWine():
|
||||
|
||||
def ChangeSources():
|
||||
global urlSources
|
||||
global internetWineSource
|
||||
sources = [ui.gitlinkAction, ui.ipv6Action, ui.localAction]
|
||||
for i in range(0, len(sources)):
|
||||
if sources[i].isChecked():
|
||||
urlSources = internetWineSourceList[i]
|
||||
internetWineSource = internetWineSourceList[i]
|
||||
# 读取信息
|
||||
ReadLocalInformation()
|
||||
ReadInternetInformation()
|
||||
break
|
||||
print(urlSources)
|
||||
|
||||
# 下面内容均翻译自 C++ 版本
|
||||
def ReadInternetInformation():
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
[]
|
||||
616
deepin-wine-easy-packager.py
Normal file
@@ -0,0 +1,616 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import time
|
||||
import random
|
||||
import xpinyin
|
||||
import traceback
|
||||
import subprocess
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
def ShowText(text: str):
|
||||
if text.replace(" ", "").replace("\n", "") == "":
|
||||
return
|
||||
logText.append(text.replace("\n", ""))
|
||||
|
||||
def ErrorMessage(text: str):
|
||||
QtWidgets.QMessageBox.critical(window, "错误", text)
|
||||
|
||||
def InformationMessage(text: str):
|
||||
QtWidgets.QMessageBox.information(window, "提示", text)
|
||||
|
||||
questionChoose = False
|
||||
questionStatus = False
|
||||
def QuestionMessage(text: str):
|
||||
global questionChoose
|
||||
global questionStatus
|
||||
# 清零
|
||||
questionChoose = False
|
||||
questionStatus = False
|
||||
if QtWidgets.QMessageBox.question(window, "提示", text) == QtWidgets.QMessageBox.Yes:
|
||||
questionChoose = True
|
||||
print(questionChoose)
|
||||
questionStatus = True
|
||||
return
|
||||
questionChoose = False
|
||||
questionStatus = True
|
||||
|
||||
|
||||
def DisbledAndEnabledAll(choose: bool):
|
||||
exePath.setDisabled(choose)
|
||||
browserExeButton.setDisabled(choose)
|
||||
buildButton.setDisabled(choose)
|
||||
|
||||
# 获取用户主目录
|
||||
def get_home():
|
||||
return os.path.expanduser('~')
|
||||
|
||||
def get_desktop_path():
|
||||
try:
|
||||
for line in open(get_home() + "/.config/user-dirs.dirs"): # 以行来读取配置文件
|
||||
desktop_index = line.find("XDG_DESKTOP_DIR=\"") # 寻找是否有对应项,有返回 0,没有返回 -1
|
||||
if desktop_index != -1: # 如果有对应项
|
||||
break # 结束循环
|
||||
if desktop_index == -1: # 如果是提前结束,值一定≠-1,如果是没有提前结束,值一定=-1
|
||||
return -1
|
||||
else:
|
||||
get = line[17:-2] # 截取桌面目录路径
|
||||
get_index = get.find("$HOME") # 寻找是否有对应的项,需要替换内容
|
||||
if get != -1: # 如果有
|
||||
get = get.replace("$HOME", get_home()) # 则把其替换为用户目录(~)
|
||||
return get # 返回目录
|
||||
except:
|
||||
traceback.print_exc()
|
||||
return get_home()
|
||||
|
||||
def CleanPressCompleteDownloadState(option):
|
||||
global pressCompleteDownload
|
||||
pressCompleteDownload = False
|
||||
installCmpleteButton.setEnabled(True)
|
||||
|
||||
# 读取 lnk 文件
|
||||
def GetLnkDesktop(path):
|
||||
lnkList = []
|
||||
for i in os.listdir(path):
|
||||
filePath = f"{path}/{i}"
|
||||
if os.path.islink(filePath):
|
||||
# 忽略 link 链接
|
||||
continue
|
||||
if os.path.isdir(filePath):
|
||||
lists = GetLnkDesktop(filePath)
|
||||
for k in lists:
|
||||
lnkList.append(k)
|
||||
continue
|
||||
if os.path.isfile(filePath) and os.path.splitext(filePath)[1] == ".lnk":
|
||||
with open(filePath, "rb") as file:
|
||||
while True:
|
||||
things = file.readline().lower()
|
||||
if things == b"":
|
||||
break
|
||||
print(things[1: -2].split("\x00".encode("gbk")))
|
||||
for k in things[1: -2].split("\x00".encode("gbk")):
|
||||
if "c:".encode("gbk") in k:
|
||||
print(k.decode("gbk"))
|
||||
lnkList.append([filePath, k.decode("gbk")])
|
||||
return lnkList
|
||||
|
||||
def ReplaceText(string: str, lists: list):
|
||||
for i in lists:
|
||||
string = string.replace(i[0], i[1])
|
||||
return string
|
||||
|
||||
control = '''Package: @@@Package@@@
|
||||
Version: @@@Version@@@
|
||||
Architecture: i386
|
||||
Maintainer: @@@Maintainer@@@
|
||||
Depends: @@@Depends@@@
|
||||
Section: non-free/otherosfs
|
||||
Priority: optional
|
||||
Multi-Arch: foreign
|
||||
Installed-Size: @@@Installed-Size@@@
|
||||
Description: @@@Description@@@
|
||||
'''
|
||||
|
||||
info = f'''{{
|
||||
"appid": "@@@Package@@@",
|
||||
"name": "@@@Name@@@",
|
||||
"version": "@@@Version@@@",
|
||||
"arch": ["i386"],
|
||||
"permissions": {{
|
||||
"autostart": false,
|
||||
"notification": false,
|
||||
"trayicon": true,
|
||||
"clipboard": true,
|
||||
"account": false,
|
||||
"bluetooth": false,
|
||||
"camera": true,
|
||||
"audio_record": true,
|
||||
"installed_apps": false
|
||||
}}
|
||||
}}'''
|
||||
|
||||
postrm = f"""#!/bin/bash
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
|
||||
|
||||
echo "清理卸载残留"
|
||||
CONTAINER_NAME="@@@Package@@@"
|
||||
|
||||
if [ -z $CONTAINER_NAME ];then
|
||||
echo "W: 没有指定容器,跳过清理容器。请手动前往 ~/.deepinwine/ 下删除"
|
||||
exit
|
||||
fi
|
||||
|
||||
/opt/deepinwine/tools/kill.sh $CONTAINER_NAME
|
||||
###这里注意,如果没写CONTAINER_NAME,会把QQ杀了
|
||||
|
||||
for username in $(ls /home)
|
||||
do
|
||||
echo /home/$username
|
||||
if [ -d /home/$username/.deepinwine/$CONTAINER_NAME ]
|
||||
then
|
||||
rm -rf /home/$username/.deepinwine/$CONTAINER_NAME
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "非卸载,跳过清理"
|
||||
fi"""
|
||||
|
||||
runsh = f'''#!/bin/sh
|
||||
|
||||
# Copyright (C) 2016 Deepin, Inc.
|
||||
#
|
||||
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
||||
# Peng Hao <penghao@linuxdeepin.com>
|
||||
#
|
||||
#
|
||||
# Copyright (C) 2022 The Spark Project
|
||||
#
|
||||
#
|
||||
# Modifier shenmo <shenmo@spark-app.store>
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
#######################函数段。下文调用的额外功能会在此处声明
|
||||
|
||||
Get_Dist_Name()
|
||||
{{
|
||||
if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then
|
||||
DISTRO='Deepin'
|
||||
elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then
|
||||
DISTRO='UniontechOS'
|
||||
else
|
||||
DISTRO='OtherOS'
|
||||
fi
|
||||
}}
|
||||
|
||||
|
||||
####获得发行版名称
|
||||
|
||||
#########################预设值段
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
####用于比较版本?未实装
|
||||
BOTTLENAME="@@@Package@@@"
|
||||
APPVER="@@@Version@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
##### 软件在wine中的启动路径
|
||||
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||
export MIME_TYPE=""
|
||||
#####没什么用
|
||||
export DEB_PACKAGE_NAME="@@@Package@@@"
|
||||
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
||||
export APPRUN_CMD="deepin-wine6-stable"
|
||||
#####wine启动指令,建议
|
||||
EXPORT_ENVS=""
|
||||
|
||||
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
|
||||
|
||||
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
|
||||
|
||||
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
|
||||
|
||||
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
|
||||
|
||||
DISABLE_ATTACH_FILE_DIALOG=""
|
||||
##默认为空。若为1,则不使用系统自带的文件选择,而是使用wine的
|
||||
##对于deepin/UOS,大部分的应用都不需要使用wine的,如果有需求(比如wine应用选择的限定种类文件系统的文管不支持)
|
||||
##请填1。
|
||||
##注意:因为非DDE的环境不确定,所以默认会在非Deepin/UOS发行版上禁用这个功能。如果你确认在适配的发行版上可以正常启动,请注释或者删除下面这段
|
||||
|
||||
##############<<<<<<<<<禁用文件选择工具开始
|
||||
Get_Dist_Name
|
||||
#此功能实现参见结尾函数段
|
||||
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then
|
||||
DISABLE_ATTACH_FILE_DIALOG="1"
|
||||
echo "非deepin/UOS,默认关闭系统自带的文件选择工具,使用Wine的"
|
||||
echo "如果你想改变这个行为,请到/opt/apps/$DEB_PACKAGE_NAME/files/$0处修改"
|
||||
echo "To打包者:如果你要打开自带请注意在适配的发行版上进行测试"
|
||||
echo "To用户:打包者没有打开这个功能,这证明启用这个功能可能造成运行问题。如果你要修改这个行为,请确保你有一定的动手能力"
|
||||
fi
|
||||
##############>>>>>>>>>禁用文件选择工具结束
|
||||
|
||||
##############<<<<<<<<<屏蔽mono和gecko安装器开始
|
||||
##默认屏蔽mono和gecko安装器
|
||||
#if [ "$APPRUN_CMD" = "spark-wine7-devel" ];then
|
||||
|
||||
#export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
#echo "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
||||
|
||||
#fi
|
||||
##############>>>>>>>>>屏蔽mono和gecko安装器结束
|
||||
|
||||
#########################执行段
|
||||
|
||||
|
||||
|
||||
|
||||
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
fi
|
||||
|
||||
if [ -n "$EXPORT_ENVS" ];then
|
||||
export $EXPORT_ENVS
|
||||
fi
|
||||
|
||||
if [ -n "$EXEC_PATH" ];then
|
||||
if [ -z "${{EXEC_PATH##*.lnk*}}" ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
||||
else
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
|
||||
fi
|
||||
else
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||
fi'''
|
||||
|
||||
desktopFile = f'''#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
X-Created-By=@@@Maintainer@@@
|
||||
Icon=@@@Icon@@@
|
||||
Exec="/opt/apps/@@@Package@@@/files/run.sh"
|
||||
Name=@@@Name@@@
|
||||
Comment=@@@Description@@@
|
||||
MimeType=
|
||||
GenericName=@@@Package@@@
|
||||
Terminal=false
|
||||
StartupNotify=false'''
|
||||
|
||||
def getFileFolderSize(fileOrFolderPath):
|
||||
"""get size for file or folder"""
|
||||
totalSize = 0
|
||||
if not os.path.exists(fileOrFolderPath):
|
||||
return totalSize
|
||||
if os.path.isfile(fileOrFolderPath):
|
||||
totalSize = os.path.getsize(fileOrFolderPath) # 5041481
|
||||
return totalSize
|
||||
if os.path.isdir(fileOrFolderPath):
|
||||
with os.scandir(fileOrFolderPath) as dirEntryList:
|
||||
for curSubEntry in dirEntryList:
|
||||
curSubEntryFullPath = os.path.join(fileOrFolderPath, curSubEntry.name)
|
||||
if curSubEntry.is_dir():
|
||||
curSubFolderSize = getFileFolderSize(curSubEntryFullPath) # 5800007
|
||||
totalSize += curSubFolderSize
|
||||
elif curSubEntry.is_file():
|
||||
curSubFileSize = os.path.getsize(curSubEntryFullPath) # 1891
|
||||
totalSize += curSubFileSize
|
||||
return totalSize
|
||||
|
||||
|
||||
def WriteTxt(path, things):
|
||||
with open(path, "w") as file:
|
||||
file.write(things)
|
||||
|
||||
def ReadTxt(path):
|
||||
things = ""
|
||||
with open(path, "r") as file:
|
||||
things = file.read()
|
||||
return things
|
||||
|
||||
def GetEXEVersion(exePath):
|
||||
versionPath = f"/tmp/wine-runner-exe-version-{random.randint(0, 1000)}.txt"
|
||||
if os.system(f"deepin-wine6-stable '{programPath}/GetEXEVersion.exe' '{exePath}' '{versionPath}'"):
|
||||
return "1.0.0"
|
||||
try:
|
||||
exeVersion = ReadTxt(versionPath).replace("\n", "")
|
||||
if exeVersion.replace(" ", "") == "":
|
||||
return "1.0.0"
|
||||
return exeVersion
|
||||
except:
|
||||
traceback.print_exc()
|
||||
return "1.0.0"
|
||||
|
||||
def StrToByteToStr(text: str):
|
||||
lists = text.split("\\x")
|
||||
for i in range(len(lists)):
|
||||
lists[i]
|
||||
return text
|
||||
|
||||
def UnUseUpperCharPath(path: str):
|
||||
pathList = []
|
||||
lowerList = path.split("/")[1:]
|
||||
for i in lowerList:
|
||||
path = "/" + "/".join(pathList)
|
||||
before = len(pathList)
|
||||
for k in os.listdir(path):
|
||||
if k.lower() == i.lower():
|
||||
pathList.append(k)
|
||||
break
|
||||
end = len(pathList)
|
||||
if before == end:
|
||||
raise OSError("文件路径不存在")
|
||||
return "/" + "/".join(pathList)
|
||||
|
||||
|
||||
class RunThread(QtCore.QThread):
|
||||
showLogText = QtCore.pyqtSignal(str)
|
||||
error = QtCore.pyqtSignal(str)
|
||||
info = QtCore.pyqtSignal(str)
|
||||
question = QtCore.pyqtSignal(str)
|
||||
disbledAll = QtCore.pyqtSignal(bool)
|
||||
cleanPressState = QtCore.pyqtSignal(bool)
|
||||
def RunCommand(self, command):
|
||||
res = subprocess.Popen([command], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
while res.poll() is None:
|
||||
try:
|
||||
text = res.stdout.readline().decode("utf8")
|
||||
except:
|
||||
text = ""
|
||||
self.showLogText.emit(text)
|
||||
print(text, end="")
|
||||
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def GetEXEVersion(self, exePath):
|
||||
versionPath = f"/tmp/wine-runner-exe-version-{random.randint(0, 1000)}.txt"
|
||||
self.RunCommand(f"deepin-wine6-stable '{programPath}/GetEXEVersion.exe' '{exePath}' '{versionPath}'")
|
||||
try:
|
||||
exeVersion = ReadTxt(versionPath).replace("\n", "")
|
||||
if exeVersion.replace(" ", "") == "":
|
||||
return "1.0.0"
|
||||
return exeVersion
|
||||
except:
|
||||
traceback.print_exc()
|
||||
return "1.0.0"
|
||||
|
||||
def QuestionMsg(self, text):
|
||||
global questionStatus
|
||||
questionStatus = False
|
||||
self.question.emit(text)
|
||||
while not questionStatus:
|
||||
time.sleep(0.1)
|
||||
print(questionChoose)
|
||||
return questionChoose
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
self.disbledAll.emit(True)
|
||||
if not self.QuestionMsg("在此过程中,需要回答一系列的问题以进行打包,点击确定继续"):
|
||||
self.disbledAll.emit(False)
|
||||
return
|
||||
bottlePath = f"/tmp/deepin-wine-runner-bottle-{random.randint(0, 10000)}"
|
||||
# 清空容器以保证能正常使用
|
||||
if os.path.exists(bottlePath):
|
||||
self.RunCommand(f"rm -rfv '{bottlePath}'")
|
||||
############# 后面将全部调用 deepin wine6 stable 进行操作
|
||||
exeName = os.path.basename(exePath.text())
|
||||
# 暂定
|
||||
debPackageName = "spark-" + xpinyin.Pinyin().get_pinyin(os.path.splitext(exeName)[0].replace(" ", "")).lower().replace("--", "-").replace(" ", "")
|
||||
debPackageVersion = "1.0.0"
|
||||
programIconPath = f"/opt/apps/{debPackageName}/entries/icons/hicolor/scalable/apps/{debPackageName}.png"
|
||||
debMaintainer = os.getlogin()
|
||||
debBuildPath = f"/tmp/deepin-wine-packager-builder-{debPackageName}-{random.randint(0, 1000)}"
|
||||
bottlePackagePath = f"{debBuildPath}/opt/apps/{debPackageName}/files/files.7z"
|
||||
desktopPath = get_desktop_path()
|
||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/DEBIAN'")
|
||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/files'")
|
||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/entries/applications'")
|
||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/entries/icons/hicolor/scalable/apps/'")
|
||||
############## 运行 EXE
|
||||
if self.QuestionMsg("请问此可执行文件是安装包还是绿色软件?是安装包请按 Yes,绿色软件按 No"):
|
||||
# 清空无益处的 lnk 文件
|
||||
lnkPath = f"{bottlePath}/drive_c/ProgramData/Microsoft/Windows/Start Menu/Programs"
|
||||
self.RunCommand(f"rm -rfv '{lnkPath}'")
|
||||
self.RunCommand(f"mkdir -pv '{bottlePath}'")
|
||||
self.RunCommand(f"chmod 777 -Rv '{bottlePath}'")
|
||||
# 禁止生成 .desktop 文件
|
||||
self.RunCommand(f"WINEPREFIX='{bottlePath}' deepin-wine6-stable 'reg' 'add' 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe '/f'")
|
||||
# 安装包
|
||||
global pressCompleteDownload
|
||||
pressCompleteDownload = False
|
||||
installCmpleteButton.setEnabled(True)
|
||||
self.RunCommand(f"WINEPREFIX='{bottlePath}' deepin-wine6-stable '{exePath.text()}' &") # 非堵塞线程
|
||||
|
||||
# 安装锁,锁解除后才可继续
|
||||
while not pressCompleteDownload:
|
||||
time.sleep(0.1)
|
||||
# 杀死容器内应用
|
||||
self.RunCommand(f"'{programPath}/kill.sh' '{os.path.basename(bottlePath)}'")
|
||||
# 识别 lnk
|
||||
lnkList = GetLnkDesktop(lnkPath)
|
||||
if len(lnkList) <= 0:
|
||||
self.error.emit("无法识别到任何 lnk 快捷方式")
|
||||
self.disbledAll.emit(False)
|
||||
return
|
||||
# 选择最优 lnk
|
||||
secondChooseList = []
|
||||
for k in lnkList:
|
||||
lnkPath = k[0].lower()
|
||||
if "卸载" in lnkPath or "uninstall" in lnkPath or "update" in lnkPath or "网页" in lnkPath or "websize" in lnkPath:
|
||||
continue
|
||||
secondChooseList.append(k)
|
||||
if len(secondChooseList) <= 0:
|
||||
secondChooseList = lnkList
|
||||
rightLnk = secondChooseList[0]
|
||||
miniLenge = len(rightLnk[1])
|
||||
for k in secondChooseList:
|
||||
# 择优选择路径最短一项
|
||||
if len(k[1]) < miniLenge:
|
||||
rightLnk = k
|
||||
miniLenge = len(rightLnk[1])
|
||||
folderExePath = os.path.dirname(rightLnk[1].replace("\\", "/").replace("c:/", bottlePath))
|
||||
exePathInBottle = rightLnk[1]
|
||||
exeName = os.path.splitext(os.path.basename(folderExePath))[0]
|
||||
exePathInSystem = rightLnk[1].replace("\\", "/").replace("c:", f"{bottlePath}/drive_c")
|
||||
debPackageVersion = self.GetEXEVersion(exePathInBottle)
|
||||
cpNow = False
|
||||
for i in iconList:
|
||||
path = i.replace("wineBottonPath", bottlePath).lower()
|
||||
if path == exePathInSystem.lower():
|
||||
self.RunCommand(f"cp -rv '{UnUseUpperCharPath(path)}' '{debBuildPath}/{programIconPath}'")
|
||||
cpNow = True
|
||||
break
|
||||
if not cpNow:
|
||||
self.RunCommand(f"'{programPath}/wrestool' '{UnUseUpperCharPath(exePathInSystem)}' -x -t 14 > '{debBuildPath}/{programIconPath}'")
|
||||
else:
|
||||
#/home/gfdgd_xi/Desktop/新建文件夹1/BeCyIconGrabber.exe
|
||||
# 绿色软件
|
||||
self.RunCommand(f"mkdir -pv '{bottlePath}'")
|
||||
self.RunCommand(f"chmod 777 -Rv '{bottlePath}'")
|
||||
self.RunCommand(f"WINEPREFIX='{bottlePath}' deepin-wine6-stable exit")
|
||||
folderExePath = os.path.dirname(exePath.text())
|
||||
exePathInBottle = f"c:/Program Files/{os.path.basename(folderExePath)}/{exeName}"
|
||||
exeName = os.path.splitext(os.path.basename(os.path.basename(exePath.text())))[0]
|
||||
self.RunCommand(f"'{programPath}/wrestool' '{exePathInBottle}' -x -t 14 > '{debBuildPath}/{programIconPath}'")
|
||||
debPackageVersion = self.GetEXEVersion(exePathInBottle)
|
||||
# 拷贝文件到容器
|
||||
self.RunCommand(f"cp -rv '{folderExePath}' '{bottlePath}/drive_c/Program Files'")
|
||||
debDescription = f"{exeName} By Deepin Wine 6 Stable And Build By Wine Runner"
|
||||
debDepends = "deepin-wine6-stable, spark-dwine-helper | store.spark-app.spark-dwine-helper, fonts-wqy-microhei, fonts-wqy-zenhei"
|
||||
############ 处理容器
|
||||
# 对用户目录进行处理
|
||||
os.chdir(bottlePath)
|
||||
self.RunCommand("sed -i \"s#$USER#@current_user@#\" ./*.reg")
|
||||
os.chdir(f"{bottlePath}/drive_c/users")
|
||||
# 如果缩放文件 scale.txt 存在,需要移除以便用户自行调节缩放设置
|
||||
if os.path.exists(f"{bottlePath}/scale.txt"):
|
||||
self.RunCommand(f"rm -rfv '{bottlePath}/scale.txt'")
|
||||
# 删除因为脚本失误导致用户目录嵌套(如果存在)
|
||||
if os.path.exists(f"{bottlePath}/drive_c/users/@current_user@/@current_user@"):
|
||||
self.RunCommand(f"rm -rfv '{bottlePath}/drive_c/users/@current_user@/@current_user@'")
|
||||
self.RunCommand(f"mv -fv '{os.getlogin()}' @current_user@")
|
||||
self.RunCommand(f"rm -fv '{bottlePath}/drive_c/users/@current_user@/我的'*")
|
||||
self.RunCommand(f"rm -fv '{bottlePath}/drive_c/users/@current_user@/My '*")
|
||||
self.RunCommand(f"rm -fv '{bottlePath}/drive_c/users/@current_user@/Desktop'")
|
||||
self.RunCommand(f"rm -fv '{bottlePath}/drive_c/users/@current_user@/Downloads'")
|
||||
self.RunCommand(f"rm -fv '{bottlePath}/drive_c/users/@current_user@/Templates'")
|
||||
########### 打包容器
|
||||
self.RunCommand(f"7z a '{bottlePackagePath}' '{bottlePath}/'*")
|
||||
########### 生成文件内容
|
||||
buildProgramSize = getFileFolderSize(debBuildPath)
|
||||
replaceMap = [
|
||||
["@@@Package@@@", debPackageName],
|
||||
["@@@Version@@@", debPackageVersion],
|
||||
["@@@Maintainer@@@", debMaintainer],
|
||||
["@@@Depends@@@", debDepends],
|
||||
["@@@Description@@@", debDescription],
|
||||
["@@@Installed-Size@@@", str(buildProgramSize)],
|
||||
["@@@Name@@@", exeName],
|
||||
["@@@EXEC_PATH@@@", exePathInBottle],
|
||||
["@@@Icon@@@", programIconPath]
|
||||
]
|
||||
debControl = ReplaceText(control, replaceMap)
|
||||
debPostrm = ReplaceText(postrm, replaceMap)
|
||||
debInfo = ReplaceText(info, replaceMap)
|
||||
debRunSh = ReplaceText(runsh, replaceMap)
|
||||
debDesktop = ReplaceText(desktopFile, replaceMap)
|
||||
########### 写入文件
|
||||
WriteTxt(f"{debBuildPath}/opt/apps/{debPackageName}/entries/applications/{debPackageName}.desktop", debDesktop)
|
||||
WriteTxt(f"{debBuildPath}/opt/apps/{debPackageName}/files/run.sh", debRunSh)
|
||||
WriteTxt(f"{debBuildPath}/opt/apps/{debPackageName}/info", debInfo)
|
||||
WriteTxt(f"{debBuildPath}/DEBIAN/control", debControl)
|
||||
WriteTxt(f"{debBuildPath}/DEBIAN/postrm", debPostrm)
|
||||
########### 赋值权限
|
||||
self.RunCommand(f"chmod -Rv 644 '{debBuildPath}/opt/apps/{debPackageName}/info'")
|
||||
self.RunCommand(f"chmod -Rv 0755 '{debBuildPath}/DEBIAN'")
|
||||
self.RunCommand(f"chmod -Rv 755 '{debBuildPath}/opt/apps/{debPackageName}/files/'*.sh")
|
||||
self.RunCommand(f"chmod -Rv 755 '{debBuildPath}/opt/apps/{debPackageName}/entries/applications/'*.desktop")
|
||||
########### 打包 deb
|
||||
print(debPackageVersion)
|
||||
self.RunCommand(f"dpkg -b '{debBuildPath}' '{desktopPath}/{debPackageName}_{debPackageVersion}_i386.deb'")
|
||||
self.info.emit("打包完成!")
|
||||
self.disbledAll.emit(False)
|
||||
########### 移除临时文件
|
||||
#self.RunCommand(f"rm -rfv '{debBuildPath}' > /dev/null")
|
||||
#self.RunCommand(f"rm -rfv '{bottlePath}' > /dev/null")
|
||||
except:
|
||||
#self.RunCommand(f"rm -rfv '{debBuildPath}' > /dev/null")
|
||||
#self.RunCommand(f"rm -rfv '{bottlePath}' > /dev/null")
|
||||
# 若打包出现任何错误
|
||||
traceback.print_exc()
|
||||
self.error.emit(f"打包错误,详细详细如下:{traceback.format_exc()}")
|
||||
self.showLogText.emit(traceback.format_exc())
|
||||
self.disbledAll.emit(False)
|
||||
|
||||
#/home/gfdgd_xi/Downloads/XPcalc.exe
|
||||
def RunBuildThread():
|
||||
global buildThread
|
||||
buildThread = RunThread()
|
||||
buildThread.showLogText.connect(ShowText)
|
||||
buildThread.error.connect(ErrorMessage)
|
||||
buildThread.info.connect(InformationMessage)
|
||||
buildThread.question.connect(QuestionMessage)
|
||||
buildThread.disbledAll.connect(DisbledAndEnabledAll)
|
||||
buildThread.cleanPressState.connect(CleanPressCompleteDownloadState)
|
||||
buildThread.start()
|
||||
|
||||
pressCompleteDownload = False
|
||||
|
||||
def PressCompleteDownload():
|
||||
global pressCompleteDownload
|
||||
pressCompleteDownload = True
|
||||
installCmpleteButton.setDisabled(True)
|
||||
|
||||
def BrowserExe():
|
||||
filePath = QtWidgets.QFileDialog.getOpenFileName(window, "选择 exe", get_home(), "可执行文件(*.exe);;所有文件(*.*)")
|
||||
if filePath[0] != "" or filePath[0] != None:
|
||||
exePath.setText(filePath[0])
|
||||
|
||||
if __name__ == "__main__":
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
information = json.loads(ReadTxt(f"{programPath}/information.json"))
|
||||
iconListUnBuild = json.loads(ReadTxt(f"{programPath}/IconList.json"))[0]
|
||||
iconList = json.loads(ReadTxt(f"{programPath}/IconList.json"))[1]
|
||||
for i in iconListUnBuild:
|
||||
iconList.append(i)
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
version = information["Version"]
|
||||
window = QtWidgets.QMainWindow()
|
||||
widget = QtWidgets.QWidget()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
exePath = QtWidgets.QLineEdit()
|
||||
browserExeButton = QtWidgets.QPushButton("浏览……")
|
||||
logText = QtWidgets.QTextBrowser()
|
||||
logText.setStyleSheet("""
|
||||
background-color: black;
|
||||
color: white;
|
||||
""")
|
||||
controlLayout = QtWidgets.QHBoxLayout()
|
||||
buildButton = QtWidgets.QPushButton("现在打包……")
|
||||
installCmpleteButton = QtWidgets.QPushButton("安装程序执行完成")
|
||||
browserExeButton.clicked.connect(BrowserExe)
|
||||
buildButton.clicked.connect(RunBuildThread)
|
||||
installCmpleteButton.clicked.connect(PressCompleteDownload)
|
||||
installCmpleteButton.setDisabled(True)
|
||||
controlLayout.addWidget(buildButton)
|
||||
controlLayout.addWidget(installCmpleteButton)
|
||||
layout.addWidget(QtWidgets.QLabel("选择 EXE:"), 0, 0)
|
||||
layout.addWidget(exePath, 0, 1)
|
||||
layout.addWidget(browserExeButton, 0, 2)
|
||||
layout.addLayout(controlLayout, 1, 1)
|
||||
layout.addWidget(logText, 2, 0, 1, 3)
|
||||
widget.setLayout(layout)
|
||||
window.setCentralWidget(widget)
|
||||
window.setWindowTitle(f"Wine 运行器 {version}——简易打包器")
|
||||
window.show()
|
||||
sys.exit(app.exec_())
|
||||
# ./wrestool ../Desktop/deep-wine-runner/geek.exe -x -t 14 > a.png
|
||||
# Flag:
|
||||
# 1、不想打包了,强制终止功能
|
||||
# 2、版本号自动识别
|
||||
# 3、包名自动识别
|
||||
@@ -33,10 +33,10 @@ def button1_cl():
|
||||
if path != "":
|
||||
e6_text.setText(path)
|
||||
|
||||
def button2_cl():
|
||||
def button2_cl(number):
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(widget, QtCore.QCoreApplication.translate("U", "选择图标文件"), get_home(), "PNG图标(*.png);;SVG图标(*.svg);;全部文件(*.*)")[0]
|
||||
if path != "":
|
||||
e9_text.setText(path)
|
||||
mapLink[number].setText(path)
|
||||
|
||||
def button4_cl():
|
||||
path = QtWidgets.QFileDialog.getSaveFileName(widget, QtCore.QCoreApplication.translate("U", "保存 deb 包"), get_home(), "deb 文件(*.deb);;所有文件(*.*)", "{}_{}_i386.deb".format(e1_text.text(), e2_text.text()))[0]
|
||||
@@ -62,6 +62,8 @@ def disabled_or_NORMAL_all(choose):
|
||||
button4.setDisabled(choose)
|
||||
button5.setDisabled(choose)
|
||||
option1_text.setDisabled(choose)
|
||||
desktopIconTab.setDisabled(choose)
|
||||
build7z.setDisabled(choose)
|
||||
chooseWineHelperValue.setDisabled(choose)
|
||||
wineVersion.setDisabled(choose)
|
||||
debArch.setDisabled(choose)
|
||||
@@ -201,9 +203,36 @@ def Build7zButton_Clicked():
|
||||
QT.thread.start()
|
||||
|
||||
def make_deb(build=False):
|
||||
global bottleNameLock
|
||||
clean_textbox1_things()
|
||||
disabled_or_NORMAL_all(False)
|
||||
if e1_text.text() == "" or e2_text.text() == "" or e3_text.text() == "" or e4_text.text() == "" or e5_text.text() == "" or e6_text.text() == "" or e7_text.text() == "" or e8_text.text() == "" or e12_text.text() == "":
|
||||
badComplete = False
|
||||
# 规范检测
|
||||
if e1_text.text().lower() != e1_text.text():
|
||||
if QtWidgets.QMessageBox.warning(window, "提示", f"包名 {e1_text.text()} 似乎不符合规范,可能会导致打包后的包无法投稿到应用商店,是否继续?\n可参考 deb 安装包打包标准", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) == QtWidgets.QMessageBox.No:
|
||||
disabled_or_NORMAL_all(True)
|
||||
label13_text_change("用户已取消")
|
||||
return
|
||||
for i in range(len(iconUiList)):
|
||||
if os.path.splitext(iconUiList[i][4].text())[1] == ".ico":
|
||||
if QtWidgets.QMessageBox.warning(window, "提示", f"图标 {iconUiList[i][4].text()} 似乎为 ico 格式,可能会导致打包后的程序在启动器的图标无法正常显示,是否继续?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) == QtWidgets.QMessageBox.No:
|
||||
disabled_or_NORMAL_all(True)
|
||||
label13_text_change("用户已取消")
|
||||
return
|
||||
if os.path.exists(iconUiList[i][0].text()) and not "c:" in iconUiList[i][0].text().lower():
|
||||
if not e6_text.text() in iconUiList[i][0].text():
|
||||
if QtWidgets.QMessageBox.warning(window, "提示", f"路径 {iconUiList[i][0].text()} 似乎不符合规范且不位于容器内,可能会导致打包后的程序无法运行,是否继续?\n可参考 Windows 下的文件路径", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) == QtWidgets.QMessageBox.No:
|
||||
disabled_or_NORMAL_all(True)
|
||||
label13_text_change("用户已取消")
|
||||
return
|
||||
if QtWidgets.QMessageBox.warning(window, "提示", f"路径 {iconUiList[i][0].text()} 似乎不符合规范,可能会导致打包后的程序无法运行,是否继续?\n可参考 Windows 下的文件路径", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) == QtWidgets.QMessageBox.No:
|
||||
disabled_or_NORMAL_all(True)
|
||||
label13_text_change("用户已取消")
|
||||
return
|
||||
for k in [0, 3]:
|
||||
if iconUiList[i][k].text().replace(" ", "") == "":
|
||||
badComplete = True
|
||||
if badComplete or e1_text.text() == "" or e2_text.text() == "" or e3_text.text() == "" or e4_text.text() == "" or e5_text.text() == "" or e6_text.text() == "" or e7_text.text() == "" or e8_text.text() == "" or e12_text.text() == "":
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "必填信息没有填写完整,无法继续构建 deb 包")
|
||||
disabled_or_NORMAL_all(True)
|
||||
label13_text_change("必填信息没有填写完整,无法继续构建 deb 包")
|
||||
@@ -230,6 +259,7 @@ def make_deb(build=False):
|
||||
QT.thread.errorMsg.connect(ErrorMsg)
|
||||
QT.thread.infoMsg.connect(InfoMsg)
|
||||
QT.thread.disabled_or_NORMAL_all.connect(disabled_or_NORMAL_all)
|
||||
bottleNameLock = False
|
||||
QT.thread.start()
|
||||
#thread.start()
|
||||
|
||||
@@ -237,8 +267,12 @@ def make_deb(build=False):
|
||||
def label13_text_change(thing):
|
||||
label13_text.setText(f"<p align='center'>当前 deb 打包情况:{thing}</p>")
|
||||
|
||||
class make_deb_threading(QtCore.QThread):
|
||||
def ReplaceText(string: str, lists: list):
|
||||
for i in lists:
|
||||
string = string.replace(i[0], i[1])
|
||||
return string
|
||||
|
||||
class make_deb_threading(QtCore.QThread):
|
||||
signal = QtCore.pyqtSignal(str)
|
||||
label = QtCore.pyqtSignal(str)
|
||||
getSavePath = QtCore.pyqtSignal(str)
|
||||
@@ -296,19 +330,36 @@ class make_deb_threading(QtCore.QThread):
|
||||
b = e6_text.text()[:-1]
|
||||
else:
|
||||
b = e6_text.text()
|
||||
if e9_text.text() != "":
|
||||
# 获取图片格式(不太准)
|
||||
try:
|
||||
im = Image.open(e9_text.text())
|
||||
imms = im.format.lower()
|
||||
except: # 未知(就直接设置为 svg 后缀)
|
||||
imms = ".svg"
|
||||
a = "/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(e1_text.text(), e1_text.text(), imms)
|
||||
if not os.path.exists(e9_text.text()):
|
||||
self.errorMsg.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
self.disabled_or_NORMAL_all.emit(True)
|
||||
self.label.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
return
|
||||
if desktopIconTab.count() <= 1:
|
||||
if e9_text.text() != "":
|
||||
# 获取图片格式(不太准)
|
||||
try:
|
||||
im = Image.open(e9_text.text())
|
||||
imms = im.format.lower()
|
||||
except: # 未知(就直接设置为 svg 后缀)
|
||||
imms = "svg"
|
||||
a = "/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(e1_text.text(), e1_text.text(), imms)
|
||||
if not os.path.exists(e9_text.text()):
|
||||
self.errorMsg.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
self.disabled_or_NORMAL_all.emit(True)
|
||||
self.label.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
return
|
||||
else:
|
||||
a = []
|
||||
for i in iconUiList:
|
||||
if i[4].text != "":
|
||||
# 获取图片格式(不太准)
|
||||
try:
|
||||
im = Image.open(e9_text.text())
|
||||
imms = im.format.lower()
|
||||
except:
|
||||
imms = ".svg"
|
||||
a.append("/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}-{}.{}".format(e1_text.text(), e1_text.text(), os.path.splitext(os.path.basename(i[0].text().replace("\\", "/")))[0], imms))
|
||||
if not os.path.exists(i[4].text()):
|
||||
self.errorMsg.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
self.disabled_or_NORMAL_all.emit(True)
|
||||
self.label.emit("图标的路径填写错误,无法进行构建 deb 包")
|
||||
return
|
||||
if not os.path.exists(e6_text.text()):
|
||||
print("aa")
|
||||
self.errorMsg.emit("路径填写错误,无法继续构建 deb 包")
|
||||
@@ -362,13 +413,13 @@ fi"""][int(rmBash.isChecked())],
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
|
||||
BOTTLENAME="{e5_text.text()}"
|
||||
APPVER="{e2_text.text()}"
|
||||
EXEC_PATH="{e7_text.text()}"
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
|
||||
export MIME_TYPE=""
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
export APPRUN_CMD="{wine[wineVersion.currentText()]}"
|
||||
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
||||
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||
DISABLE_ATTACH_FILE_DIALOG=""
|
||||
EXPORT_ENVS=""
|
||||
|
||||
@@ -433,16 +484,16 @@ Get_Dist_Name()
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
####用于比较版本?未实装
|
||||
BOTTLENAME="{e5_text.text()}"
|
||||
APPVER="{e2_text.text()}"
|
||||
EXEC_PATH="{e7_text.text()}"
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
##### 软件在wine中的启动路径
|
||||
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||
export MIME_TYPE=""
|
||||
#####没什么用
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
||||
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
||||
export APPRUN_CMD="{wine[wineVersion.currentText()]}"
|
||||
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||
#####wine启动指令,建议
|
||||
EXPORT_ENVS=""
|
||||
|
||||
@@ -527,60 +578,25 @@ fi"""
|
||||
# ARM64 通用 wine 打包配置文件
|
||||
"Wine": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ",
|
||||
"Architecture": "arm64",
|
||||
"Depends": "zenity, com.deepin-wine6-stable.deepin(>=6.0deepin31), deepin-wine-exagear-images(>=10deepin4), com.deepin-box86.deepin(>=0.2.3deepin21), deepin-elf-verify (>= 1.1.1-1), p7zip-full, fonts-wqy-microhei, fonts-noto-cjk",
|
||||
"postinst": f"""#!/bin/bash
|
||||
"Depends": "com.deepin-wine6-stable.deepin (>= 6.0deepin31), com.wine-helper.deepin (>= 0.0.8), com.deepin-box86.deepin (>= 0.2.6deepin3), deepin-elf-verify (>= 1.1.1-1)",
|
||||
"postinst": f"""#!/bin/sh
|
||||
|
||||
DEB_PATH=/opt/apps/{e1_text.text()}
|
||||
if [ -f $DEB_PATH/files/wined3d.dll.so ] && [ -d "/usr/lib/nvidia" ];then
|
||||
mv $DEB_PATH/files/wined3d.dll.so $DEB_PATH/files/dlls
|
||||
ACTIVEX_NAME=""
|
||||
|
||||
if [ -f "/opt/apps/{e1_text.text()}/files/install.sh" ];then
|
||||
/opt/apps/{e1_text.text()}/files/install.sh -i
|
||||
fi
|
||||
|
||||
KUNPENG="0x48"
|
||||
cpu_vendor=$(lscpu | grep Vendor | awk '{{print $3}}')
|
||||
KIRIN=`cat /proc/cpuinfo | grep Kirin`
|
||||
if [ ! -z "$KIRIN" ];then
|
||||
mv $DEB_PATH/files/*.so $DEB_PATH/files/dlls
|
||||
fi
|
||||
|
||||
## check if the cpu support arm32 instruction or not, 126 means unsupported
|
||||
/opt/deepin-box86/box86 -v
|
||||
CHECK_ARM32=$?
|
||||
|
||||
IMAGE_VER=10deepin3
|
||||
IMAGE_DIR=/opt/deepin-wine-exagear-images/debian-buster
|
||||
ARCHIVE_FILE=files.7z
|
||||
|
||||
download_image() {{
|
||||
pushd /var/cache/apt/archives >/dev/null
|
||||
apt download deepin-wine-exagear-images
|
||||
dpkg -x deepin-wine-exagear-images*.deb /
|
||||
rm deepin-wine-exagear-images*.deb
|
||||
echo $IMAGE_VER > $IMAGE_DIR/VERSION
|
||||
popd >/dev/null
|
||||
}}
|
||||
|
||||
if [[ "$KUNPENG" == "$cpu_vendor" ]] || [[ $CHECK_ARM32 != 0 ]];then
|
||||
echo "use exagear as emulator..."
|
||||
if [ ! -d /opt/exagear/bin ];then
|
||||
mkdir /opt/exagear/bin -p
|
||||
fi
|
||||
|
||||
if [ ! -e /opt/exagear/bin/ubt_x32a64_al ];then
|
||||
cp $DEB_PATH/files/exa/ubt_x32a64_al /opt/exagear/bin/ubt_x32a64_al
|
||||
fi
|
||||
|
||||
if [ ! -e /opt/exagear/bin/ubt_x64a64_al ];then
|
||||
cp $DEB_PATH/files/exa/ubt_x64a64_al /opt/exagear/bin/ubt_x64a64_al
|
||||
fi
|
||||
mv $DEB_PATH/files/run_with_exagear.sh $DEB_PATH/files/run.sh
|
||||
mv $DEB_PATH/files/exa/wineserver /opt/deepin-wine6-stable/bin/wineserver
|
||||
else
|
||||
echo "use box86 as emulator..."
|
||||
mv $DEB_PATH/files/run_with_box86.sh $DEB_PATH/files/run.sh
|
||||
if [ -n "$ACTIVEX_NAME" ]; then
|
||||
if [ ! -d "/usr/lib/mozilla/plugins" ];then
|
||||
mkdir -p /usr/lib/mozilla/plugins
|
||||
fi
|
||||
cp /usr/lib/pipelight/libpipelight.so /usr/lib/mozilla/plugins/libpipelight-${{ACTIVEX_NAME}}.so
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
fi
|
||||
|
||||
# Make sure the script returns 0
|
||||
true
|
||||
|
||||
""",
|
||||
# 因为 arm 不依赖 helper,所以要自带 kill.sh
|
||||
"kill.sh": """#!/bin/bash
|
||||
@@ -862,7 +878,37 @@ else
|
||||
kill_app $APP_NAME
|
||||
fi
|
||||
""",
|
||||
"postrm": f"""#!/bin/bash
|
||||
"postrm": [f"""#!/bin/sh
|
||||
|
||||
ACTIVEX_NAME=""
|
||||
|
||||
if [ -f "/opt/apps/{e1_text.text()}/files/install.sh" ];then
|
||||
/opt/apps/{e1_text.text()}/files/install.sh -r
|
||||
fi
|
||||
|
||||
if [ -n "$ACTIVEX_NAME" ]; then
|
||||
rm /usr/lib/mozilla/plugins/libpipelight-${{ACTIVEX_NAME}}.so
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
fi
|
||||
|
||||
# Make sure the script returns 0
|
||||
true
|
||||
""", f"""#!/bin/sh
|
||||
|
||||
ACTIVEX_NAME=""
|
||||
|
||||
if [ -f "/opt/apps/{e1_text.text()}/files/install.sh" ];then
|
||||
/opt/apps/{e1_text.text()}/files/install.sh -r
|
||||
fi
|
||||
|
||||
if [ -n "$ACTIVEX_NAME" ]; then
|
||||
rm /usr/lib/mozilla/plugins/libpipelight-${{ACTIVEX_NAME}}.so
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
fi
|
||||
|
||||
# Make sure the script returns 0
|
||||
true
|
||||
# Clean Botton
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
|
||||
|
||||
echo "清理卸载残留"
|
||||
@@ -887,224 +933,95 @@ for username in $(ls /home)
|
||||
else
|
||||
echo "非卸载,跳过清理"
|
||||
fi
|
||||
""",
|
||||
"run_with_box86.sh": f"""#!/bin/bash
|
||||
DEB_PATH="/opt/apps/{e1_text.text()}"
|
||||
WINE="/opt/deepin-wine6-stable/bin/wine"
|
||||
WINESERVER="/opt/deepin-wine6-stable/bin/wineserver"
|
||||
EMU="/opt/deepin-box86/box86"
|
||||
EMU_ARGS=
|
||||
EXE="{e7_text.text()}"
|
||||
NEW_VERSION="{e2_text.text()}"
|
||||
BOTTLE="$HOME/.deepinwine/{e5_text.text()}"
|
||||
"""][int(rmBash.isChecked())],
|
||||
|
||||
if command -v zenity >/dev/null 2>&1; then
|
||||
progressbar()
|
||||
{{
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel ||
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close
|
||||
}}
|
||||
# 又又又改
|
||||
"run.sh": f"""#!/bin/bash
|
||||
|
||||
# Copyright (C) 2016 Deepin, Inc.
|
||||
#
|
||||
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
||||
# Peng Hao <penghao@linuxdeepin.com>
|
||||
|
||||
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
||||
|
||||
ACTIVEX_NAME=""
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
START_SHELL_PATH="{['/opt/deepinwine/tools/run_v4.sh', '/opt/deepinwine/tools/spark_run_v4.sh'][chooseWineHelperValue.isChecked()]}"
|
||||
export MIME_TYPE=""
|
||||
export MIME_EXEC=""
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
export APPRUN_CMD="deepin-wine6-stable"
|
||||
DISABLE_ATTACH_FILE_DIALOG=""
|
||||
EXPORT_ENVS=""
|
||||
EXEC_NAME="@@@EXEC_NAME@@@"
|
||||
INSTALL_SETUP=""
|
||||
export BOX86_EMU_CMD="/opt/deepin-box86/stable/box86"
|
||||
|
||||
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
|
||||
|
||||
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
|
||||
|
||||
if [ -z "$APPRUN_CMD" ];then
|
||||
export APPRUN_CMD="/opt/deepin-wine6-stable/bin/wine"
|
||||
fi
|
||||
if [ -f "$APPRUN_CMD" ];then
|
||||
wine_path=$(dirname $APPRUN_CMD)
|
||||
wine_path=$(realpath "$wine_path/../")
|
||||
export WINEDLLPATH=$wine_path/lib:$wine_path/lib64
|
||||
else
|
||||
progressbar()
|
||||
{{
|
||||
cat -
|
||||
}}
|
||||
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
|
||||
fi
|
||||
|
||||
reconstruct_bottle_symlink() {{
|
||||
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
|
||||
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Desktop ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Desktop
|
||||
ln -s $HOME/Desktop $BOTTLE/drive_c/users/$USER/Desktop
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Documents ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Documents
|
||||
ln -s $HOME/Documents $BOTTLE/drive_c/users/$USER/Documents
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Downloads ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Downloads
|
||||
ln -s $HOME/Downloads $BOTTLE/drive_c/users/$USER/Downloads
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Documents" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
ln -s $HOME/Documents "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Music" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
ln -s $HOME/Music "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
fi
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Videos" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
ln -s $HOME/Videos "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
fi
|
||||
_SetRegistryValue()
|
||||
{{
|
||||
env WINEPREFIX="$BOTTLEPATH" $APPRUN_CMD reg ADD "$1" /v "$2" /t "$3" /d "$4" /f
|
||||
}}
|
||||
|
||||
if [ ! -d "$HOME/.deepinwine" ];then
|
||||
mkdir -p "$HOME/.deepinwine"
|
||||
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
fi
|
||||
|
||||
if [ -f $BOTTLE/VERSION ];then
|
||||
old_version=`cat $BOTTLE/VERSION`
|
||||
if [ "$old_version" != "$NEW_VERSION" ];then
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINESERVER -k
|
||||
rm -rf $BOTTLE
|
||||
if [ -n "$EXPORT_ENVS" ];then
|
||||
export $EXPORT_ENVS
|
||||
fi
|
||||
|
||||
# 打包安装程序的情况
|
||||
if [[ -z "$EXEC_PATH" ]] && [[ -n "$INSTALL_SETUP" ]];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" -c
|
||||
BOTTLEPATH="$HOME/.deepinwine/$BOTTLENAME"
|
||||
EXEC_PATH=$(find "$BOTTLEPATH" -name $EXEC_NAME | head -1)
|
||||
if [ -z "$EXEC_PATH" ];then
|
||||
_SetRegistryValue "HKCU\\Software\\Wine\\DllOverrides" winemenubuilder.exe REG_SZ
|
||||
WINEPREFIX="$BOTTLEPATH" $APPRUN_CMD "$ARCHIVE_FILE_DIR/$INSTALL_SETUP"
|
||||
EXEC_PATH=$(find "$BOTTLEPATH" -name $EXEC_NAME | head -1)
|
||||
|
||||
cp "$ARCHIVE_FILE_DIR/setup.md5sum" "$BOTTLEPATH"
|
||||
fi
|
||||
|
||||
if [ -z "$EXEC_PATH" ];then
|
||||
echo "安装失败退出"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d $BOTTLE ];then
|
||||
|
||||
7z x "$DEB_PATH/files/files.7z" -o"$BOTTLE" -aoa
|
||||
mv "$BOTTLE/drive_c/users/@current_user@" "$BOTTLE/drive_c/users/$USER"
|
||||
sed -i "s#@current_user@#$USER#" $BOTTLE/*.reg
|
||||
reconstruct_bottle_symlink
|
||||
echo $NEW_VERSION > $BOTTLE/VERSION
|
||||
fi
|
||||
|
||||
export WINEPREDLL=$DEB_PATH/files/dlls
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
export WINEDLLPATH=/opt/deepin-wine6-stable/lib
|
||||
ulimit -s 8192
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINE "$EXE" & #--disable-gpu &
|
||||
""",
|
||||
"run_with_exagear.sh": f"""#!/bin/bash
|
||||
DEB_PATH="/opt/apps/{e1_text.text()}"
|
||||
WINE="/opt/deepin-wine6-stable/bin/wine"
|
||||
WINESERVER="/opt/deepin-wine6-stable/bin/wineserver"
|
||||
EMU="/opt/exagear/bin/ubt_x64a64_al"
|
||||
IMAGE_PATH=$HOME/.deepinwine/debian-buster
|
||||
EMU_ARGS="--path-prefix $IMAGE_PATH --utmp-paths-list $IMAGE_PATH/.exagear/utmp-list --vpaths-list $IMAGE_PATH/.exagear/vpaths-list --opaths-list $IMAGE_PATH/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- "
|
||||
EXE="{e7_text.text()}"
|
||||
NEW_VERSION="{e2_text.text()}"
|
||||
BOTTLE="$HOME/.deepinwine/{e5_text.text()}"
|
||||
IMG_ARCHIVE_DIR=/opt/deepin-wine-exagear-images/debian-buster
|
||||
IMAGE_VER="10deepin4"
|
||||
LOCALTIME=`readlink -f /etc/localtime`
|
||||
|
||||
export LC_ALL=$LANG
|
||||
export XMODIFIERS=$XMODIFIERS
|
||||
export DESKTOP_SESSION=deepin
|
||||
|
||||
if command -v zenity >/dev/null 2>&1; then
|
||||
progressbar()
|
||||
{{
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel ||
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close
|
||||
}}
|
||||
|
||||
if [ -n "$EXEC_PATH" ];then
|
||||
if [ -z "${{EXEC_PATH##*.lnk*}}" ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
||||
elif [ -z "${{EXEC_PATH##*.bat}}" ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "cmd" -f /c "$EXEC_PATH" "${{@:2}}"
|
||||
else
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
|
||||
fi
|
||||
elif [ -n "$ACTIVEX_NAME" ] && [ $# -gt 1 ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$1" -f "${{@:2}}"
|
||||
else
|
||||
progressbar()
|
||||
{{
|
||||
cat -
|
||||
}}
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||
fi
|
||||
|
||||
reconstruct_bottle_symlink() {{
|
||||
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Desktop ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Desktop
|
||||
ln -s $HOME/Desktop $BOTTLE/drive_c/users/$USER/Desktop
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Documents ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Documents
|
||||
ln -s $HOME/Documents $BOTTLE/drive_c/users/$USER/Documents
|
||||
fi
|
||||
if [ -L $BOTTLE/drive_c/users/$USER/Downloads ]; then
|
||||
rm -f $BOTTLE/drive_c/users/$USER/Downloads
|
||||
ln -s $HOME/Downloads $BOTTLE/drive_c/users/$USER/Downloads
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Documents" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
ln -s $HOME/Documents "$BOTTLE/drive_c/users/$USER/My Documents"
|
||||
fi
|
||||
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Music" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
ln -s $HOME/Music "$BOTTLE/drive_c/users/$USER/My Music"
|
||||
fi
|
||||
if [ -L "$BOTTLE/drive_c/users/$USER/My Videos" ]; then
|
||||
rm -f "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
ln -s $HOME/Videos "$BOTTLE/drive_c/users/$USER/My Videos"
|
||||
fi
|
||||
}}
|
||||
|
||||
extract_image() {{
|
||||
|
||||
progpid=$(ps -ef | grep "zenity --progress --title=${{BOTTLE}}" | grep -v grep)
|
||||
if [ -n "$progpid" ];then
|
||||
echo "one $BOTTLE app is extracting runtime images too."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
7z x "$IMG_ARCHIVE_DIR/files.7z" -o"$IMAGE_PATH" -aoa | progressbar "$BOTTLE" "正在释放环境..."
|
||||
cp /usr/bin/dde-file-manager $IMAGE_PATH/usr/bin/dde-file-manager
|
||||
rm $IMAGE_PATH/etc/localtime
|
||||
ln -s $LOCALTIME $IMAGE_PATH/etc/localtime
|
||||
if [ -d $IMAGE_PATH/etc/resolvconf ];then
|
||||
rm $IMAGE_PATH/etc/resolvconf
|
||||
fi
|
||||
if [ -d /etc/resolvconf ];then
|
||||
cp /etc/resolvconf $IMAGE_PATH/etc/ -rf
|
||||
fi
|
||||
cp /etc/resolv.conf $IMAGE_PATH/etc/
|
||||
cp /etc/hosts $IMAGE_PATH/etc/
|
||||
echo $IMAGE_VER > $IMAGE_PATH/VERSION
|
||||
}}
|
||||
|
||||
get_link_err_nums() {{
|
||||
|
||||
find $IMAGE_PATH -type l ! -exec test -e {{}} \; -print | wc -l
|
||||
}}
|
||||
|
||||
if [ ! -d "$HOME/.deepinwine" ];then
|
||||
mkdir -p "$HOME/.deepinwine"
|
||||
fi
|
||||
|
||||
if [ -f $BOTTLE/VERSION ];then
|
||||
old_version=`cat $BOTTLE/VERSION`
|
||||
if [ "$old_version" != "$NEW_VERSION" ];then
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINESERVER -k
|
||||
rm -rf $BOTTLE
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d $BOTTLE ];then
|
||||
|
||||
7z x "$DEB_PATH/files/files.7z" -o"$BOTTLE" -aoa
|
||||
mv "$BOTTLE/drive_c/users/@current_user@" "$BOTTLE/drive_c/users/$USER"
|
||||
sed -i "s#@current_user@#$USER#" $BOTTLE/*.reg
|
||||
reconstruct_bottle_symlink
|
||||
echo $NEW_VERSION > $BOTTLE/VERSION
|
||||
fi
|
||||
|
||||
## 解压文件
|
||||
if [ ! -e $IMAGE_PATH/VERSION ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
OLD_IMAGE_VER=`cat $IMAGE_PATH/VERSION`
|
||||
if [ "$OLD_IMAGE_VER" != "$IMAGE_VER" ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
echo "======$(get_link_err_nums)===="
|
||||
if [ "$(get_link_err_nums)" -gt "120" ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
## mount /data/ dir to geust
|
||||
if [ -d $IMAGE_PATH ] && [ ! -d $IMAGE_PATH/data ];then
|
||||
mkdir $IMAGE_PATH/data
|
||||
cp $DEB_PATH/files/exa/vpaths-list $IMAGE_PATH/.exagear
|
||||
fi
|
||||
|
||||
export WINEPREDLL=$DEB_PATH/files/dlls
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
export WINEDLLPATH=/opt/deepin-wine6-stable/lib
|
||||
WINEPREFIX=$BOTTLE $EMU $EMU_ARGS $WINE "$EXE" & #--disable-gpu &
|
||||
""",
|
||||
"info": f'''{{
|
||||
"appid": "{e1_text.text()}",
|
||||
@@ -1166,7 +1083,7 @@ extract_archive()
|
||||
|
||||
BOTTLENAME="{e5_text.text()}"
|
||||
APPVER="{e2_text.text()}"
|
||||
EXEC_PATH="{e7_text.text()}"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
START_SHELL_PATH="{["/opt/deepinwine/tools/run_v4.sh", "/opt/deepinwine/tools/spark_run_v4.sh"][int(chooseWineHelperValue.isChecked())]}"
|
||||
export MIME_TYPE=""
|
||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||
@@ -1245,7 +1162,7 @@ fi
|
||||
###############
|
||||
self.label.emit("正在创建文件……")
|
||||
os.mknod("{}/DEBIAN/control".format(debPackagePath))
|
||||
os.mknod("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
#os.mknod("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
#os.mknod("{}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()))
|
||||
os.mknod("{}/opt/apps/{}/info".format(debPackagePath, e1_text.text()))
|
||||
#########!!!!!!!
|
||||
@@ -1289,9 +1206,10 @@ fi
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
self.run_command(f"7z x \"{programPath}/dlls-arm.7z\" -o\"{programPath}\"")
|
||||
os.remove(f"{programPath}/dlls-arm.7z")
|
||||
if not os.path.exists(f"{programPath}/exa"):
|
||||
self.run_command(f"7z x \"{programPath}/exa.7z\" -o\"{programPath}\"")
|
||||
os.remove(f"{programPath}/exa.7z")
|
||||
# 已废弃
|
||||
#if not os.path.exists(f"{programPath}/exa"):
|
||||
# self.run_command(f"7z x \"{programPath}/exa.7z\" -o\"{programPath}\"")
|
||||
# os.remove(f"{programPath}/exa.7z")
|
||||
if not os.path.exists(f"{programPath}/arm-package"):
|
||||
self.run_command(f"7z x \"{programPath}/arm-package.7z\" -o\"{programPath}\"")
|
||||
os.remove(f"{programPath}/arm-package.7z")
|
||||
@@ -1303,8 +1221,12 @@ fi
|
||||
self.run_command(f"cp -rv '{programPath}/arm-package/'* {debPackagePath}/opt/apps/{e1_text.text()}/files/")
|
||||
#self.run_command(f"cp -rv '{programPath}/wined3d.dll.so' {debPackagePath}/opt/apps/{e1_text.text()}/files/")
|
||||
pass
|
||||
if e9_text.text() != "":
|
||||
shutil.copy(e9_text.text(), "{}/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(debPackagePath, e1_text.text(), e1_text.text(), imms))
|
||||
if desktopIconTab.count() <= 1:
|
||||
if e9_text.text() != "":
|
||||
shutil.copy(e9_text.text(), "{}/opt/apps/{}/entries/icons/hicolor/scalable/apps/{}.{}".format(debPackagePath, e1_text.text(), e1_text.text(), imms))
|
||||
else:
|
||||
for i in range(len(a)):
|
||||
shutil.copy(iconUiList[i][4].text(), "{}/{}".format(debPackagePath, a[i]))
|
||||
################
|
||||
# 获取文件大小
|
||||
################
|
||||
@@ -1343,14 +1265,72 @@ Description: {e3_text.text()}
|
||||
write_txt(f"{debPackagePath}/DEBIAN/postinst", debInformation[debArch.currentIndex()]["postinst"])
|
||||
if debInformation[debArch.currentIndex()]["postrm"] != "":
|
||||
write_txt(f"{debPackagePath}/DEBIAN/postrm", debInformation[debArch.currentIndex()]["postrm"])
|
||||
write_txt("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()), '#!/usr/bin/env xdg-open\n[Desktop Entry]\nEncoding=UTF-8\nType=Application\nX-Created-By={}\nCategories={};\nIcon={}\nExec="/opt/apps/{}/files/run.sh" --uri {}\nName={}\nComment={}\nMimeType={}\nGenericName={}\nTerminal=false\nStartupNotify=false\n'.format(e4_text.text(), option1_text.currentText(), a, e1_text.text(), e15_text.text(), e8_text.text(), e3_text.text(), e10_text.text(), e1_text.text()))
|
||||
replaceMap = [
|
||||
["@@@BOTTLENAME@@@", e5_text.text()],
|
||||
["@@@APPVER@@@", e2_text.text()],
|
||||
["@@@EXEC_PATH@@@", e7_text.text()],
|
||||
["@@@DEB_PACKAGE_NAME@@@", e1_text.text()],
|
||||
["@@@APPRUN_CMD@@@", wine[wineVersion.currentText()]],
|
||||
["@@@EXEC_NAME@@@", os.path.basename(e7_text.text().replace("\\", "/"))]
|
||||
]
|
||||
line = "\\"
|
||||
if desktopIconTab.count() <= 1:
|
||||
write_txt("{}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()), '#!/usr/bin/env xdg-open\n[Desktop Entry]\nEncoding=UTF-8\nType=Application\nX-Created-By={}\nCategories={};\nIcon={}\nExec="/opt/apps/{}/files/run.sh" --uri {}\nName={}\nComment={}\nMimeType={}\nGenericName={}\nTerminal=false\nStartupNotify=false\n'.format(e4_text.text(), option1_text.currentText(), a, e1_text.text(), e15_text.text(), e8_text.text(), e3_text.text(), e10_text.text(), e1_text.text()))
|
||||
else:
|
||||
for i in range(len(iconUiList)):
|
||||
if iconUiList[i][2].text().replace(" ", "") == "":
|
||||
command = f"--uri {iconUiList[i][2].text()}"
|
||||
else:
|
||||
command = iconUiList[i][2].text()
|
||||
write_txt("{}/opt/apps/{}/entries/applications/{}-{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text(), os.path.splitext(os.path.basename(iconUiList[i][0].text().replace("\\", "/")))[0]), f'''#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
X-Created-By={e4_text.text()}
|
||||
Categories={iconUiList[i][1].currentText()};
|
||||
Icon={a[i]}
|
||||
Exec="/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(iconUiList[i][0].text().replace(line, "/")))[0]}.sh" {command}
|
||||
Name={iconUiList[i][3].text()}
|
||||
Comment={e3_text.text()}
|
||||
MimeType={e10_text.text()}
|
||||
GenericName={e1_text.text()}
|
||||
Terminal=false
|
||||
StartupNotify=false
|
||||
''')
|
||||
# 要开始分类讨论了
|
||||
if debArch.currentIndex() == 0:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run.sh", debInformation[debArch.currentIndex()]["run.sh"])
|
||||
if debArch.currentIndex() == 1:
|
||||
if debArch.currentIndex() == 0 or debArch.currentIndex() == 1:
|
||||
if desktopIconTab.count() <= 1:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run.sh", ReplaceText(debInformation[debArch.currentIndex()]["run.sh"], replaceMap))
|
||||
else:
|
||||
for i in iconUiList:
|
||||
replaceMap = [
|
||||
["@@@BOTTLENAME@@@", e5_text.text()],
|
||||
["@@@APPVER@@@", e2_text.text()],
|
||||
["@@@EXEC_PATH@@@", i[0].text()],
|
||||
["@@@DEB_PACKAGE_NAME@@@", e1_text.text()],
|
||||
["@@@APPRUN_CMD@@@", wine[wineVersion.currentText()]],
|
||||
["@@@EXEC_NAME@@@", os.path.basename(i[0].text().replace("\\", "/"))]
|
||||
]
|
||||
line = "\\"
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(i[0].text().replace(line, '/')))[0]}.sh", ReplaceText(debInformation[debArch.currentIndex()]["run.sh"], replaceMap))
|
||||
if debArch.currentIndex() == 1 and False:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/kill.sh", debInformation[debArch.currentIndex()]["kill.sh"])
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_box86.sh", debInformation[debArch.currentIndex()]["run_with_box86.sh"])
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_exagear.sh", debInformation[debArch.currentIndex()]["run_with_exagear.sh"])
|
||||
if desktopIconTab.count() <= 1:
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_box86.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_box86.sh"], replaceMap))
|
||||
write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/run_with_exagear.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_exagear.sh"], replaceMap))
|
||||
else:
|
||||
# Flag:postrm和postinst均需要改,所以先写一下防止自己忘了
|
||||
for i in iconUiList:
|
||||
replaceMap = [
|
||||
["@@@BOTTLENAME@@@", e5_text.text()],
|
||||
["@@@APPVER@@@", e2_text.text()],
|
||||
["@@@EXEC_PATH@@@", i[0].text()],
|
||||
["@@@DEB_PACKAGE_NAME@@@", e1_text.text()],
|
||||
["@@@APPRUN_CMD@@@", wine[wineVersion.currentText()]],
|
||||
["@@@EXEC_NAME@@@", os.path.basename(i[0].text().replace("\\", "/"))]
|
||||
]
|
||||
#write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(i[0].text().replace(line, '/')))[0]}_with_box86.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_box86.sh"], replaceMap))
|
||||
#write_txt(f"{debPackagePath}/opt/apps/{e1_text.text()}/files/{os.path.splitext(os.path.basename(i[0].text().replace(line, '/')))[0]}_with_exagear.sh", ReplaceText(debInformation[debArch.currentIndex()]["run_with_exagear.sh"], replaceMap))
|
||||
write_txt("{}/opt/apps/{}/info".format(debPackagePath, e1_text.text()), debInformation[debArch.currentIndex()]["info"])
|
||||
################
|
||||
# 修改文件权限
|
||||
@@ -1359,11 +1339,11 @@ Description: {e3_text.text()}
|
||||
self.run_command("chmod -Rv 644 {}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 644 {}/opt/apps/{}/info".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 0755 {}/DEBIAN".format(debPackagePath))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/kill.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/run_with_box86.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/run_with_exagear.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/entries/applications/{}.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/*.sh".format(debPackagePath, e1_text.text()))
|
||||
#self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/kill.sh".format(debPackagePath, e1_text.text()))
|
||||
#self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/*_with_box86.sh".format(debPackagePath, e1_text.text()))
|
||||
#self.run_command("chmod -Rv 755 {}/opt/apps/{}/files/*_with_exagear.sh".format(debPackagePath, e1_text.text()))
|
||||
self.run_command("chmod -Rv 755 {}/opt/apps/{}/entries/applications/*.desktop".format(debPackagePath, e1_text.text(), e1_text.text()))
|
||||
################
|
||||
# 构建 deb 包
|
||||
################
|
||||
@@ -1371,6 +1351,12 @@ Description: {e3_text.text()}
|
||||
self.label.emit("正在构建 deb 包……")
|
||||
self.run_command("bash -c 'dpkg -b \"{}\" \"{}\"'".format(debPackagePath, e12_text.text()))
|
||||
################
|
||||
# 删除临时文件
|
||||
################
|
||||
if not self.build:
|
||||
self.label.emit("正在删除临时文件……")
|
||||
self.run_command(f"rm -rfv '{debPackagePath}'")
|
||||
################
|
||||
# 完成构建
|
||||
################
|
||||
self.label.emit("完成构建!")
|
||||
@@ -1441,13 +1427,15 @@ def ChangeArchCombobox():
|
||||
if debArch.currentIndex() != 0:
|
||||
option = False
|
||||
chooseWineHelperValue.setEnabled(option)
|
||||
if not option:
|
||||
chooseWineHelperValue.setChecked(False)
|
||||
wineVersion.setEnabled(option)
|
||||
useInstallWineArch.setEnabled(option)
|
||||
#rmBash.setEnabled(option)
|
||||
if debArch.currentIndex() == 0:
|
||||
ChangeWine()
|
||||
else:
|
||||
debDepends.setText("zenity, com.deepin-wine6-stable.deepin(>=6.0deepin31), deepin-wine-exagear-images(>=10deepin4), com.deepin-box86.deepin(>=0.2.3deepin21), deepin-elf-verify (>= 1.1.1-1), p7zip-full, fonts-wqy-microhei, fonts-noto-cjk")
|
||||
debDepends.setText("com.deepin-wine6-stable.deepin (>= 6.0deepin31), com.wine-helper.deepin (>= 0.0.8), com.deepin-box86.deepin (>= 0.2.6deepin3), deepin-elf-verify (>= 1.1.1-1)")
|
||||
|
||||
def InstallDeb():
|
||||
os.system(f"xdg-open '{e12_text.text()}'")
|
||||
@@ -1723,8 +1711,77 @@ def ReadDeb(unzip = False):
|
||||
except:
|
||||
print(f"忽略行:{i}")
|
||||
|
||||
def ChangeTapTitle():
|
||||
if desktopIconTab.count() <= 1:
|
||||
desktopIconTab.setTabText(0, "run.sh")
|
||||
return
|
||||
title = os.path.basename(iconUiList[desktopIconTab.currentIndex()][0].text().replace("\\", "/"))
|
||||
desktopIconTab.setTabText(desktopIconTab.currentIndex(), title)
|
||||
|
||||
mapLink = []
|
||||
|
||||
def AddTab():
|
||||
global mapLink
|
||||
button2 = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "浏览……"))
|
||||
e7_text = QtWidgets.QLineEdit()
|
||||
e8_text = QtWidgets.QLineEdit()
|
||||
e9_text = QtWidgets.QLineEdit()
|
||||
e15_text = QtWidgets.QLineEdit()
|
||||
iconTab1 = QtWidgets.QWidget()
|
||||
option1_text = QtWidgets.QComboBox()
|
||||
option1_text.addItems(["Network", "Chat", "Audio", "Video", "Graphics", "Office", "Translation", "Development", "Utility"])
|
||||
option1_text.setCurrentText("Network")
|
||||
number = int(str(len(mapLink)))
|
||||
button2.clicked.connect(lambda: button2_cl(number))
|
||||
mapLink.append(e9_text)
|
||||
#desktopIconTabLayout = QtWidgets.QGridLayout()
|
||||
desktopIconTabLayout = QtWidgets.QGridLayout()
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件路径(※必填):")), 6, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的分类(※必填):")), 7, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件的参数:")), 8, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的名称(※必填):")), 9, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的图标:")), 10, 0, 1, 1)
|
||||
iconTab1.setLayout(desktopIconTabLayout)
|
||||
desktopIconTab.addTab(iconTab1, f"图标{desktopIconTab.count() + 1}")
|
||||
desktopIconTabLayout.addWidget(e7_text, 6, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(option1_text, 7, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e15_text, 8, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e8_text, 9, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e9_text, 10, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(button2, 10, 2, 1, 1)
|
||||
e7_text.textChanged.connect(ChangeTapTitle)
|
||||
e7_text.setPlaceholderText("例如 c:/Program Files/Tencent/QQ/Bin/QQ.exe")
|
||||
e9_text.setPlaceholderText("支持 png 和 svg 格式,不支持 ico 格式")
|
||||
iconUiList.append([e7_text, option1_text, e15_text, e8_text, e9_text])
|
||||
print(iconUiList)
|
||||
|
||||
def DelTab():
|
||||
print(desktopIconTab.count())
|
||||
if desktopIconTab.count() <= 1:
|
||||
return
|
||||
del iconUiList[desktopIconTab.currentIndex()]
|
||||
desktopIconTab.removeTab(desktopIconTab.currentIndex())
|
||||
|
||||
def ChangeBottleName():
|
||||
global bottleNameLock
|
||||
global bottleNameChangeLock
|
||||
e1_text.setText(e1_text.text().replace(" ", ""))
|
||||
if bottleNameLock:
|
||||
return
|
||||
if os.path.basename(e6_text.text()) == ".wine" or e6_text.text() == "":
|
||||
bottleNameChangeLock = True
|
||||
e5_text.setText(e1_text.text())
|
||||
return
|
||||
bottleNameChangeLock = True
|
||||
e5_text.setText(os.path.basename(e6_text.text().replace(" ", "")))
|
||||
|
||||
def LockBottleName():
|
||||
global bottleNameLock
|
||||
if bottleNameChangeLock:
|
||||
return
|
||||
bottleNameLock = True
|
||||
|
||||
bottleNameLock = False
|
||||
###############
|
||||
# 程序信息
|
||||
###############
|
||||
@@ -1752,6 +1809,7 @@ try:
|
||||
except:
|
||||
pass
|
||||
os.chdir("/")
|
||||
iconUiList = []
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||
version = information["Version"]
|
||||
@@ -1809,27 +1867,49 @@ option1_text.setCurrentText("Network")
|
||||
wineFrame = QtWidgets.QHBoxLayout()
|
||||
chooseWineHelperValue = QtWidgets.QCheckBox(QtCore.QCoreApplication.translate("U", "使用星火wine helper\n(如不勾选默认为deepin-wine-helper)"))
|
||||
button1.clicked.connect(button1_cl)
|
||||
button2.clicked.connect(button2_cl)
|
||||
button2.clicked.connect(lambda: button2_cl(0))
|
||||
mapLink.append(e9_text)
|
||||
button4.clicked.connect(button4_cl)
|
||||
button5.clicked.connect(make_deb)
|
||||
buildDebDir.clicked.connect(lambda: make_deb(True))
|
||||
build7z.clicked.connect(Build7zButton_Clicked)
|
||||
installDeb.clicked.connect(InstallDeb)
|
||||
wineFrame.addWidget(wineVersion)
|
||||
e1_text.textChanged.connect(ChangeBottleName)
|
||||
e5_text.textChanged.connect(LockBottleName)
|
||||
e6_text.textChanged.connect(ChangeBottleName)
|
||||
e7_text.textChanged.connect(ChangeTapTitle)
|
||||
# 创建控件
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的包名(※必填):")), 0, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的版本号(※必填):")), 1, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的说明(※必填):")), 2, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 deb 包的维护者(※必填):")), 3, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "deb 包的版本号(※必填):")), 1, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "deb 包的说明(※必填):")), 2, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "deb 包的维护者(※必填):")), 3, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要解压的 wine 容器的容器名(※必填):")), 4, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要解压的 wine 容器(※必填):")), 5, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件路径(※必填):")), 6, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的分类(※必填):")), 7, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件的参数(选填):")), 8, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的名称(※必填):")), 9, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的图标(选填):")), 10, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "选择打包的 wine 版本(※必选):")), 12, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "打包 deb 的保存路径(※必填):")), 13, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要打包的 wine 容器(※必填):")), 5, 0, 1, 1)
|
||||
desktopIconTab = QtWidgets.QTabWidget()
|
||||
controlWidget = QtWidgets.QWidget()
|
||||
controlWidgetLayout = QtWidgets.QHBoxLayout()
|
||||
desktopIconTabAdd = QtWidgets.QPushButton("+")
|
||||
desktopIconTabDel = QtWidgets.QPushButton("-")
|
||||
controlWidgetLayout.addWidget(desktopIconTabAdd)
|
||||
controlWidgetLayout.addWidget(desktopIconTabDel)
|
||||
controlWidget.setLayout(controlWidgetLayout)
|
||||
desktopIconTabAdd.clicked.connect(AddTab)
|
||||
desktopIconTabDel.clicked.connect(DelTab)
|
||||
iconTab1 = QtWidgets.QWidget()
|
||||
desktopIconTabLayout = QtWidgets.QGridLayout()
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件路径(※必填):")), 6, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的分类(※必填):")), 7, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "wine 容器里需要运行的可执行文件的参数:")), 8, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的名称(※必填):")), 9, 0, 1, 1)
|
||||
desktopIconTabLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "要显示的 .desktop 文件的图标:")), 10, 0, 1, 1)
|
||||
iconTab1.setLayout(desktopIconTabLayout)
|
||||
#desktopIconTab.setTabPosition(QtWidgets.QTabWidget.East)
|
||||
desktopIconTab.addTab(iconTab1, "Defult")
|
||||
desktopIconTab.setCornerWidget(controlWidget)
|
||||
widgetLayout.addWidget(desktopIconTab, 8, 0, 6, 3)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "选择打包的 wine 版本(※必选):")), 6, 0, 1, 1)
|
||||
widgetLayout.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "打包 deb 的保存路径(※必填):")), 7, 0, 1, 1)
|
||||
widgetLayout.addWidget(e1_text, 0, 1, 1, 1)
|
||||
widgetLayout.addWidget(e2_text, 1, 1, 1, 1)
|
||||
widgetLayout.addWidget(e3_text, 2, 1, 1, 1)
|
||||
@@ -1837,15 +1917,17 @@ widgetLayout.addWidget(e4_text, 3, 1, 1, 1)
|
||||
widgetLayout.addWidget(e5_text, 4, 1, 1, 1)
|
||||
widgetLayout.addWidget(e6_text, 5, 1, 1, 1)
|
||||
widgetLayout.addWidget(button1, 5, 2, 1, 1)
|
||||
widgetLayout.addWidget(e7_text, 6, 1, 1, 1)
|
||||
widgetLayout.addWidget(option1_text, 7, 1, 1, 1)
|
||||
widgetLayout.addWidget(e15_text, 8, 1, 1, 1)
|
||||
widgetLayout.addWidget(e8_text, 9, 1, 1, 1)
|
||||
widgetLayout.addWidget(e9_text, 10, 1, 1, 1)
|
||||
widgetLayout.addWidget(button2, 10, 2, 1, 1)
|
||||
widgetLayout.addLayout(wineFrame, 12, 1, 1, 1)
|
||||
widgetLayout.addWidget(e12_text, 13, 1, 1, 1)
|
||||
widgetLayout.addWidget(button4, 13, 2, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e7_text, 6, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(option1_text, 7, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e15_text, 8, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e8_text, 9, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(e9_text, 10, 1, 1, 1)
|
||||
desktopIconTabLayout.addWidget(button2, 10, 2, 1, 1)
|
||||
iconUiList.append([e7_text, option1_text, e15_text, e8_text, e9_text])
|
||||
print(iconUiList)
|
||||
widgetLayout.addLayout(wineFrame, 6, 1, 1, 1)
|
||||
widgetLayout.addWidget(e12_text, 7, 1, 1, 1)
|
||||
widgetLayout.addWidget(button4, 7, 2, 1, 1)
|
||||
widgetLayout.addLayout(debControlFrame, 16, 1, 1, 1)
|
||||
widgetLayout.addWidget(label13_text, 17, 0, 1, 3)
|
||||
widgetLayout.addWidget(textbox1, 18, 0, 1, 3)
|
||||
@@ -1887,6 +1969,10 @@ e2_text.textChanged.connect(AutoPathSet)
|
||||
debArch.currentIndexChanged.connect(AutoPathSet)
|
||||
debArch.currentIndexChanged.connect(ChangeArchCombobox)
|
||||
e12_text.textChanged.connect(UserPathSet)
|
||||
e1_text.setPlaceholderText("例如 spark-deepin-wine-runner,不建议有大写字符")
|
||||
e2_text.setPlaceholderText(f"例如 {version}")
|
||||
e7_text.setPlaceholderText("例如 c:/Program Files/Tencent/QQ/Bin/QQ.exe")
|
||||
e9_text.setPlaceholderText("支持 png 和 svg 格式,不支持 ico 格式")
|
||||
# 菜单栏
|
||||
menu = window.menuBar()
|
||||
programmenu = menu.addMenu(QtCore.QCoreApplication.translate("U", "程序"))
|
||||
@@ -1903,6 +1989,7 @@ else:
|
||||
uploadSparkStoreProgram = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "使用投稿器投稿(推荐,请先安装投稿器)"))
|
||||
uploadSparkStoreProgram.setDisabled(True)
|
||||
tip = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "小提示"))
|
||||
getPdfHelp = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "Wine 运行器和 Wine 打包器傻瓜式使用教程(小白专用)\nBy @雁舞白沙"))
|
||||
exit.triggered.connect(window.close)
|
||||
tip.triggered.connect(helps)
|
||||
programmenu.addAction(exit)
|
||||
@@ -1914,7 +2001,9 @@ debE.triggered.connect(lambda: ReadDeb(False))
|
||||
debX.triggered.connect(lambda: ReadDeb(True))
|
||||
uploadSparkStoreWebsize.triggered.connect(lambda: webbrowser.open_new_tab("https://upload.deepinos.org"))
|
||||
uploadSparkStoreProgram.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"/opt/spark-store-submitter/bin/spark-store-submitter '{e12_text.text()}'"]).start())
|
||||
getPdfHelp.triggered.connect(lambda: webbrowser.open_new_tab("https://gitee.com/gfdgd-xi/deep-wine-runner/raw/main/Wine%E8%BF%90%E8%A1%8C%E5%99%A8%E5%92%8CWine%E6%89%93%E5%8C%85%E5%99%A8%E5%82%BB%E7%93%9C%E5%BC%8F%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%EF%BC%88%E5%B0%8F%E7%99%BD%E4%B8%93%E7%94%A8%EF%BC%8920221126-V2.pdf"))
|
||||
help.addAction(tip)
|
||||
help.addAction(getPdfHelp)
|
||||
# 控件配置
|
||||
try:
|
||||
e6_text.setText(sys.argv[1].replace("~", get_home()))
|
||||
|
||||
24
demo/CheckDLL/Check.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
/**********************************
|
||||
* 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 版本:2.5.0
|
||||
* 更新时间:2022年11月18日
|
||||
* 只能在 Wine/Windows 运行
|
||||
**********************************/
|
||||
#include <iostream>
|
||||
#include <Windows.h>
|
||||
using namespace std;
|
||||
int main(int argc, char* argv[]){
|
||||
HINSTANCE hdll;
|
||||
hdll = LoadLibrary(argv[1]);
|
||||
if(argv[1] == ""){
|
||||
cout << "Don't have full parameter" << endl;
|
||||
return 2;
|
||||
}
|
||||
cout << "Checking " << argv[1] << " ......" << endl;
|
||||
if(hdll == NULL){
|
||||
cout << "Error, can't load this library." << endl;
|
||||
return 1;
|
||||
}
|
||||
cout << "No Problem!" << endl;
|
||||
return 0;
|
||||
}
|
||||
BIN
demo/CheckDLL/Check.exe
Executable file
90
demo/CheckDLL/main.py
Normal file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月18日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 PyQt5 构建
|
||||
#################################################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print("参数不足")
|
||||
sys.exit(1)
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("帮助:")
|
||||
print("[exe path] [option]")
|
||||
print("--json 以 json 格式输出")
|
||||
print("-w [wine botton] [wine program path]")
|
||||
|
||||
jsonPrint = "--json" in sys.argv
|
||||
if jsonPrint:
|
||||
del sys.argv[sys.argv.index("--json")]
|
||||
lists = []
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
checkDll = False
|
||||
if "-w" in sys.argv:
|
||||
wineCommand = sys.argv.index("-w")
|
||||
wineBotton = os.getenv("HOME")
|
||||
wineProgram = "deepin-wine6-stable"
|
||||
checkDll = True
|
||||
try:
|
||||
wineBotton = sys.argv[wineCommand + 1]
|
||||
wineProgram = sys.argv[wineCommand + 2]
|
||||
except:
|
||||
pass
|
||||
badChar = [
|
||||
"(", "?", "*", "!", ")", "&", "'", "\""
|
||||
]
|
||||
with open(sys.argv[1], "rb") as file:
|
||||
while True:
|
||||
things = file.readline()
|
||||
if things == b"":
|
||||
break
|
||||
for n in [".dll", ".DLL"]:
|
||||
if n.encode() in things:
|
||||
# 提取 DLL 名称
|
||||
for i in str(things[1: -2]).split("\\x"):
|
||||
charBad = False
|
||||
for b in badChar:
|
||||
if b in i:
|
||||
charBad = True
|
||||
if n in i and not charBad and i[0] != "/":
|
||||
name = i[2: ].replace(",{M", "").replace("+", "")
|
||||
# 文件路径合法性检测
|
||||
|
||||
try:
|
||||
dllName = name[:name.index(".dll") + 4]
|
||||
except:
|
||||
try:
|
||||
dllName = name[:name.index(".DLL") + 4]
|
||||
except:
|
||||
dllName = name
|
||||
|
||||
if dllName.lower() == ".dll":
|
||||
continue
|
||||
if dllName in lists:
|
||||
continue
|
||||
if checkDll:
|
||||
if jsonPrint:
|
||||
if os.system(f"WINEPREFIX='{wineBotton}' {wineProgram} '{programPath}/Check.exe' '{dllName}' > /dev/null 2>&1"):
|
||||
lists.append(dllName)
|
||||
continue
|
||||
else:
|
||||
os.system(f"WINEPREFIX='{wineBotton}' {wineProgram} '{programPath}/Check.exe' '{dllName}'")
|
||||
lists.append(dllName)
|
||||
elif jsonPrint:
|
||||
lists.append(dllName)
|
||||
continue
|
||||
else:
|
||||
print(dllName)
|
||||
lists.append(dllName)
|
||||
if jsonPrint:
|
||||
print(json.dumps(lists))
|
||||
99
demo/GetDllInfo/lists1.json
Normal file
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"advapi32.dll": "描述: advapi32.dll是一个高级API应用程序接口服务库的一部分,用于支持非常多的API应用程序接口,包括安全和注册的调用。\n属于: Windows NT 4.0 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"advpack.dll": "描述: advpack.dll用于帮助硬件和软件读取和验证.INF文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"asycfilt.dll": "描述: asycfilt.dll是Microsoft OLE (对象链接和嵌入)特性相关DLL文件。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"atl.dll": "描述: atl.dll文件用于支持ATL特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"avicap32.dll": "描述: avicap32.dll是Windows API应用程序接口相关模块,用于对摄像头和其它视频硬件进行AVI电影和视频的截取。\n属于: Windows NT 4.0 \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"browseui.dll": "描述: browseui.dll用于浏览器UI界面的管理。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"comctl32.dll": "描述: comctl32.dll是Windows应用程序公用GUI图形用户界面模块。\n属于: Windows NT \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"comdlg32.dll": "描述: comdlg32.dll是Windows应用程序公用对话框模块,用于例如打开文件对话框。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"commctrl.dll": "描述: commctrl.dll是Windows应用程序公用GUI图形用户界面模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cpuinf32.dll": "描述: cpuinf32.dll是CPU信息获取相关模块,用于获取例如CPU速度和CPU ID。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"crtdll.dll": "描述: crtdll.dll是标准C语言库,用于例如打印机,内存等。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"crypt32.dll": "描述: crypt32.dll是Windows加密API应用程序接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ctl3d.dll": "描述: ctl3d.dll是Windows应用程序公用GUI图形用户界面3D显示模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ctl3d32.dll": "描述: ctl3d32.dll是Windows应用程序公用GUI图形用户界面3D维显示模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d8.dll": "描述: d3d8.dll是DirectX的3D显示部分控制模块,在DirectX 8.0中被安装。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dbghelp.dll": "描述: dbghelp.dll是symbol引擎及相关模块,用于Windows图形。\n属于: Windows Image \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddeml.dll": "描述: ddeml.dll是exchange数据交换管理相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ddraw.dll": "描述: ddraw.dll是DirectX的DLL文件,用于绘制多媒体应用程序的2D图形。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"devcon32.dll": "描述: devcon32.dll是设备配置管理动态链接库。用于提供COM库支持SoundFont和EFX特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dhcpcsvc.dll": "描述: dhcpcsvc.dll是Windows DHCP客户端服务模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dinput.dll": "描述: dinput.dll是DirectX的DLL文件,用于支持DirectInput输入。该文件用于支持多媒体输入设备,例如游戏手柄\n属于: DirectX DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dinput8.dll": "描述: dinput.dll是DirectX的DLL文件,用于DirectInput输入。该文件用于支持多媒体输入设备,例如游戏手柄。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"dsound.dll": "描述: dsound.dll是DirectX的DLL文件,用于支持Direct Sound声音特性。\n属于: DirectX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"framedyn.dll": "描述: framedyn.dll是framework链接库文件,\n属于: Windows WMI \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"fxscfgwz.dll": "描述: fxscfgwz.dll是Windows 2000传真配置相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gdi32.dll": "描述: gdi32.dll是Windows GDI图形用户界面相关程序,用于辅助创建组建。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gdiplus.dll": "描述: gdiplus.dll是GDI图形设备接口图形界面相关模块。\n属于: Microsoft GDI+ \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hal.dll": "描述: hal.dll是Windows硬件提取层模块,该用于用于解决硬件的复杂性。\n属于: Microsoft Windows Operating System \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"icmp.dll": "描述: icmp.dll是Windows 2000产品相关模块,用于网络ICMP请求。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iconlib.dll": "描述: iconlib.dll是微软Microsoft图标管理程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imagehlp.dll": "描述: imagehlp.dll是Windows调试辅助动态链接库相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"inetmib1.dll": "描述: inetmib1.dll是Windows NT的简单网络管理协议SNMP相关模块。\n属于: Windows SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iphlpapi.dll": "描述: iphlpapi.dll是Windows IP辅助API应用程序接口模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"kernel.dll": "描述: kernel.dll是在旧版本Windows操作系统中重要的一个DLL动态链接库文件。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ksuser.dll": "描述: ksuser.dll is a library which transports latency sensitive, time-stamped data between user perhiperals and system perhiperals\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mapi32.dll": "描述: mapi32.dll是Windows Messaging即时通讯软件API应用程序接口(MAPI)。\n属于: MAPI \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mgmtapi.dll": "描述: mgmtapi.dll是微软Microsoft简单网络管理应用程序接口API模块。\n属于: SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mmsystem.dll": "描述: mmsystem.dll是多媒体管理模块,用于支持16位多媒体应用程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mpr.dll": "描述: mpr.dll是Windws操作系统网络通讯相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mprapi.dll": "描述: mprapi.dll是Windows 2000路由管理模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msacm32.dll": "描述: msacm32.dll是32位应用程序音频压缩模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msafd.dll": "描述: msafd.dll是微软Microsoft Windows操作系统 Sockets 2.0传输服务相关模块。\n属于: Windows Socket \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomct2.dll": "描述: mscomct2.ocx是ActiveX插件公用管理模块。\n属于: Windows ActiveX \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomctl.dll": "描述: mscomctl.ocx是公用ActiveX插件控制模块。\n属于: Windows ActiveX \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscoree.dll": "描述: mscoree.dll是.NET Framework相关组件。\n属于: Microsoft .NET \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msgina.dll": "描述: msgina.dll是WIndows登陆认证策略相关模块。该模块用于完成所有用户登陆和验证功能。\n属于: GINA \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msi.dll": "描述: msi.dll是Windows安装程序MSI(Microsoft Installer)相关模块。\n属于: Windows Installer \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msimg32.dll": "描述: msimg32.dll是Windows图形设备接口GDI相关模块,用于支持新的API应用程序接口和GDI32相关特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjava.dll": "描述: msjava.dll是Java程序COM接口支持相关模块。\n属于: Microsoft JVM \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msnp32.dll": "描述: msnp32.dll是微软网络协议相关动态链接库。\n属于: Microsoft networks \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoss.dll": "描述: msoss.dll是Microsoft Trust ASN信任机制相关应用程序接口API模块,用于加密和解密特性。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"netapi32.dll": "描述: netapi32.dll是Windows网络应用程序接口,用于支持访问微软网络。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"newdev.dll": "描述: newdev.dll是添加系统新硬件设备相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ntdll.dll": "描述: ntdll.dll是NT操作系统重要的模块。\n属于: Windows NT \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oc25.dll": "描述: oc25.dll是对象链接和嵌入OLE运行时模块。\n属于: Microsoft OLE Control runtime DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole2nls.dll": "描述: ole2.dll是对象链接和嵌入OLE相关模块,用于支持多语言。\n属于: Microsoft OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ole32.dll": "描述: ole32.dll是对象链接和嵌入相关模块。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"olepro32.dll": "描述: olepro32.dll是对象链接和嵌入OLE特性相关模块。\n属于: Microsoft OLE Property Support DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pidgen.dll": "描述: pidgen.dll是Windows操作系统重要的模块,用于管理产品序列号。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pjlmon.dll": "描述: pjlmon.dll是PJL打印机监视相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"powrprof.dll": "描述: powrprof.dll是微软Microsoft Windows电源管理配置工具相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"psapi.dll": "描述: psapi.dll是Windows系统进程状态支持模块。\n属于: Process Status Helper \n系统 DLL文件: Yes \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rasapi32.dll": "描述: rasapi32.dll是远程访问应用程序接口(RAS),用于Windows应用程序对调制解调器的控制。\n属于: Remote Access API \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"rpcrt4.dll": "描述: rpcrt4.dll是远程程序调用(RPC)应用程序接口API,用于WIndows应用程序对网络和Internet连接。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"run32.dll": "描述: run32.dll 是应用程序DLL文件运行库相关模块。\n属于: Windows 95 \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"scrrun.dll": "描述: scrrun.dll用于阅读和编写脚本和文本文件。\n属于: Microsoft Script Runtime \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"secur32.dll": "描述: secur32.dll是Windows安全特性相关动态链接库。\n属于: Microsoft Windows DLL \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupx.dll": "描述: setupx.dll是WIndows安装程序相关模块。\n属于: Microsoft Windows Setup Functions \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdoc401.dll": "描述: shdoc401.dll是资源管理器文件夹浏览的COM接口相关模块。\n属于: IE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdoclc.dll": "描述: shdoclc.dll是为Windows应用程序添加基础文件和网络操作相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shdocvw.dll": "描述: shdocvw.dll是为Windows应用程序添加基础文件和网络操作相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shell32.dll": "描述: shell32.dll是Windows壳Shell相关应用程序接口动态链接库文件,用于打开网页和文件。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shfolder.dll": "描述: shfolder.dll是Windows特殊文件夹相关服务模块,例如我的文档。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"shlwapi.dll": "描述: shlwapi.dll是UNC和URL地址动态链接库文件,用于注册键值和色彩设置。\n属于: Microsoft Windows Shell \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"snmpapi.dll": "描述: snmpapi.dll是简单网络管理协议(SNMP)相关模块,用于监视你的LAN局域网网络状态。\n属于: Microsoft SNMP \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"spoolss.dll": "描述: spoolss.dll是打印机打印相关模块。\n属于: Microsoft Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"svrapi.dll": "描述: svrapi.dll用于监视和管理共享网络资源。\n属于: Microsoft network \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tapi32.dll": "描述: tapi32.dll是Windows排列层相关模块,用于发送消息到Tapisrv.exe。\n属于: Windows Telephony \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"unidrv.dll": "描述: unidrv.dll是通用打印机驱动动态连接库。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"urlmon.dll": "描述: urlmon.dll是微软Microsoft对象链接和嵌入相关模块。\n属于: OLE \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"usbui.dll": "描述: usbui.dll是通用程序界面应用程序接口,用于管理USB用户界面。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"user32.dll": "描述: user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性。\n属于: Windows User API \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"userenv.dll": "描述: userenv.dll是公用应用程序界面应用程序接口,用于管理用户档案。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vfwwdm32.dll": "描述: vfwwdm32.dll用于Windows应用程序视频进行WDM剪辑驱动相关程序。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"webcheck.dll": "描述: webcheck.dll是用于对网站进行监视的COM接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wininet.dll": "描述: wininet.dll是Windows应用程序网络相关模块。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winmm.dll": "描述: winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄。\n属于: Windows Multimedia \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsock.dll": "描述: winsock.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络相关应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsrv.dll": "描述: winsrv.dll是Windows服务,用于支持32位用户和图形设备接口。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winsta.dll": "描述: winsta.dll是成熟的Windows组件,用于剪切板、全球区域特性和桌面组件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wintrust.dll": "描述: wintrust.dll用于验证第三方应用程序的文件,目录,内存使用,数据签名等。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmaudsdk.dll": "描述: wmaudsdk.dll用于读取、创建和获取.WMA音频格式文件信息。\n属于: Windows Media \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wmvcore.dll": "描述: wmvcore.dll是Windows媒体视频回放解码相关动态链接库。\n属于: Windows Media \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wnaspi32.dll": "描述: wnaspi32.dll是高级Advanced SCSI程序接口( ASPI )管理相关文件。\n属于: Windows \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ws2_32.dll": "描述: ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ws2help.dll": "描述: ws2help.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsock32.dll": "描述: wsock32.dll是Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。\n属于: Windows Sockets \n系统 DLL文件: 是 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary"
|
||||
}
|
||||
126
demo/GetDllInfo/lists2.json
Normal file
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"ac1st15.dll": "描述: ac1st15.dll是AutoCAD、AutoCAD LT、KeyPLANTING和KeySCAPE等软件动态链接库,该文件是Autodesk公司出品。\n属于: AutoCAD \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"binkw32.dll": "描述: binkw32.dll是BINK视频解码器相关进程,用于压缩视频回放,例如游戏中的视频。\n属于: Bink Video Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bwcc.dll": "描述: bwcc.dll是Borland Windows控件相关动态链接库文件。\n属于: Borland C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"bwcc32.dll": "描述: bwcc32.dll是Borland Windows控件相关动态链接库文件。\n属于: Borland C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cards.dll": "描述: cards.dll是Windows纸牌游戏相关文件。\n属于: Game Windows Solitare \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cctrust.dll": "描述: cctrust.dll是Symantec公司ccTrust公用客户端动态链接库文件。\n属于: Symantec Products \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cd_clint.dll": "描述: cd_clint.dll是Cydoor公司动态链接库文件。\n属于: CYDOOR \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cdonts.dll": "描述: cdonts.dll协同数据对象界面相关文件。\n属于: CDO \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cncs232.dll": "描述: cncs232.dll是Europress和IMSI公司多媒体库文件,用于支持它们的游戏。\n属于: Games Multimedia Fusion \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"cncs32.dll": "描述: cncs32.dll是create游戏图像相关动态链接库文件。\n属于: Game Factory \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"core.dll": "描述: core.dll是SuperScape 3D Viewer察看器相关动态链接库。\n属于: Viscape Universal \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"d3d9.dll": "描述: d3d9.dll是DirectX 9的动态链接库,用于支持Windows多媒体和游戏。\n属于: DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"disktool.dll": "描述: disktool.dll是DiskTool软件动态链接库文件,它是一款系统管理软件用于监视磁盘状态和避免数据文件储存问题。\n属于: Disktool \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"eax.dll": "描述: eax.dll是EAX环绕音效特性相关库文件。\n属于: EAX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"egnsengine.dll": "描述: egnsengine.dll是Gator GAIN间谍软件相关文件。\n属于: Gator GAIN \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"fm20.dll": "描述: fm20.dll是微软表单创建相关动态链接库文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"gapi32.dll": "描述: gapi32.dll是微软邮件协议相关文件。\n属于: Microsoft Exchange \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide2x.dll": "描述: glide2x.dll是3DFX (Voodoo)显示卡Glide 3D驱动程序相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glide3x.dll": "描述: glide3x.dll是3DFX (Voodoo)显示卡Glide 3D驱动程序相关文件。\n属于: Glide for Voodoo Banshee \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"glu32.dll": "描述: glide2x.dll是OpenGL图像相关动态链接库文件。\n属于: Microsoft OpenGL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"hhctrl.dll": "描述: hhctrl.ocx是Microsoft帮助文档界面相关文件。\n属于: Microsoft HTML Help Control \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"idle.dll": "描述: idle.dll是Microsoft Visual C++无功分量部分相关文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"iepeers.dll": "描述: iepeers.dll是微软Microsoft Internet Explorer浏览器库文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ijl15.dll": "描述: ijl15.dll是IntelJPG图像压缩相关库文件。\n属于: Intel JPEG Library \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"imgedit.dll": "描述: imgedit.ocx是微软图像处理相关文件。\n属于: Microsoft ImagEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"jscript.dll": "描述: jscript.dll是Microsoft JavaScript脚本支持相关文件。\n属于: Microsoft JScript \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"libeay32.dll": "描述: libeay32.dll是OpenSSL加密特性相关文件,用于通过网络加密传输。\n属于: OpenSSL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxcodec.dll": "描述: maxcodec.dll是ScanSoft PaperPort软件图像压缩和解压相关模块。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"maxkernl.dll": "描述: maxkernl.dll是ScanSoft PaperPort Visioneer扫描仪相关库文件。\n属于: PaperPort \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc30.dll": "描述: mfc30.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc40.dll": "描述: mfc40.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42.dll": "描述: mfc42.dll是微软Microsoft MFC程序库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc42d.dll": "描述: mfc42d.dll是MFCDLL共享库文件,用于支持调试版本的MFC程序。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfc70.dll": "描述: mfc70.dll是微软Microsoft MFC程序相关库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfcans32.dll": "描述: mfcans32.dll用于对对象链接和嵌入OLE的Unicode和MBCS字符支持。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mfco42d.dll": "描述: mfco42d.dll是MFC OLE调试版本动态链接库文件。\n属于: MFC \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mhputilu.dll": "描述: mhputilu.dll是微软Microsoft Picture It图像软件动态链接库文件。\n属于: Microsoft Picture It! Publishing 2001 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mlang.dll": "描述: mlang.dll是多语言支持动态链接库文件。用于转换网络字符集为Unicode。\n属于: IE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mplapx.dll": "描述: mplapx.dll是微软Microsoft Media Player音乐回放相关模块。\n属于: Microsoft Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mrtrate.dll": "描述: mrtrate.dll是Intuit Quicken动态链接库文件。\n属于: Rate Sensing Manager \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mscomm32.dll": "描述: mscomm32.ocx是ActiveX公用控制模块,用于例如Visual Basic 6.0程序的MSComm控制。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msdxm.dll": "描述: msdxm.ocx是Windows Media Player播放器ActiveX控制相关文件。\n属于: Windows Media Player \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mshtml.dll": "描述: mshtml.dll是HTML解释器相关模块。\n属于: HTML \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msjet35.dll": "描述: msjet35.dll是微软Microsoft Jet数据引擎主要文件。该文件用于向Microsoft Access数据库读写数据。\n属于: Microsoft Jet Engine \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mso9.dll": "描述: mso9.dll是微软Microsoft Office 2000办公软件套装的一部分。\n属于: Office 2000 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mso97.dll": "描述: mso97.dll是微软Microsoft Office 2000软件套装的一部分。\n属于: Office 2000 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msoe.dll": "描述: msoe.dll是Outlook Express邮件程序相关模块。\n属于: Outlook Express \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mss32.dll": "描述: mss32.dll是Miles声音播放系统库文件,用于WinAMP等多媒体程序音乐回放和声音特效。\n属于: WinAmp \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msscript.dll": "描述: msscript.ocx是Visual Basic 6.0应用程序脚本控制的一部分,用于运行时库。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mssp232.dll": "描述: mssp232.dll是微软Microsoft Office软件字符检查相关文件。\n属于: Microsoft Office \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msspell3.dll": "描述: msspell3.dll是文档字符检查相关模块。\n属于: Word \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msstdfmt.dll": "描述: msstdfmt.dll是微软标准数据格式对象相关动态链接库文件。\n属于: Visual Studio \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvbvm50.dll": "描述: msvbvm50.dll是微软Microsoft Visual Basic虚拟机相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvbvm60.dll": "描述: msvbvm60.dll是微软Microsoft Visual Basic虚拟机相关模块。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcirt.dll": "描述: msvcirt.dll是微软C语言程序运行库相关文件,用于例如打印。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcirtd.dll": "描述: msvcirtd.dll是用户选择进行调试版本编译时所使用的运行库文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp50.dll": "描述: msvcp50.dll是标准的C运行库相关程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp60.dll": "描述: msvcp60.dll是标准的C运行库程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcp70.dll": "描述: msvcp70.dll是.Net的C运行库相关文件。\n属于: Microsoft .NET \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcr70.dll": "描述: msvcr70.dll是微软C运行库相关程序。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt.dll": "描述: msvcrt.dll是标准的微软C运行库文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt10.dll": "描述: msvcrt10.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt20.dll": "描述: msvcrt20.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrt40.dll": "描述: msvcrt40.dll是微软标准C运行库相关文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvcrtd.dll": "描述: msvcrtd.dll是微软编译程序调试版本相关文件。\n属于: Visual C++ \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msvfw32.dll": "描述: msvfw32.dll是微软BMP位图压缩和解压缩相关文件,用于Microsoft Video视频。\n属于: Microsoft Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"mswinsck.dll": "描述: mswinsck.ocx是Visual Basic语言的socket编程相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"msxml.dll": "描述: msxml.dll是Internet Explorer 4.0或更高版本的浏览器相关文件,用于解释XML文档。\n属于: XML \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"NPDocBox.dll": "描述: NPDocBox.dll是Adobe Acrobat插件相关文件,为Netware和Internet Explorer浏览器安装。\n属于: Adobe Acrobat \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvcpl.dll": "描述: nvcpl.dll是NVIDIA显示卡相关动态链接库文件。\n属于: NVIDIA drivers \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"NvCplDaemon.dll": "描述: NvCplDaemon (NvQTwk.dll)是Nvdia显示卡相关文件。\n属于: NVidia Graphics Library Module \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nvmctray.dll": "描述: nvmctray.dll是NVidia显示卡相关文件。\n属于: NVidia Multimedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"NvMediaCenter.dll": "描述: nvmctray.dll是NVidia显示卡相关文件。\n属于: NVidia Multimedia \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"nwnp32.dll": "描述: nwnp32.dll是Novell NetWare网络支持相关链接库文件。\n属于: Novell Network \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"odbc32.dll": "描述: odbc32.dll是ODBC数据库查询相关文件。\n属于: ODBC DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oleacc.dll": "描述: oleacc.dll是微软Microsoft Active Accessibility相关动态链接库文件。\n属于: Microsoft Active Accessibility \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oleaut32.dll": "描述: oleaut32.dll是对象链接与嵌入OLE相关文件。\n属于: Microsoft OLE DLL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"omi9.dll": "描述: omi9.dll是邮件程序MAPI特性相关文件,用于例如Outlook。\n属于: Microsoft MAPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"opengl32.dll": "描述: opengl32.dll是微软OpenGL特性相关动态链接库文件。\n属于: Microsoft OpenGL \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"oscore.dll": "描述: oscore.dll是AOL即时通讯软件相关文件。\n属于: AOL Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"p5dll.dll": "描述: p5dll.dll是P5Device相关动态链接库文件。\n属于: P5Device \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pcdlib32.dll": "描述: pcdlib32.dll是柯达Kodak产品相关文件,用于设备数据传输。\n属于: Kodak Photo \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pcre.dll": "描述: pcre.dll是Perl语言相关库文件。\n属于: Perl \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pgsdk.dll": "描述: pgsdk.dll是微软图形SDK开发包相关动态链接库文件。\n属于: Microsoft Presentation Graphics SDK \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pncrt.dll": "描述: pncrt.dll是C语言开发界面相关运行时文件。\n属于: Windows \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"pstprx.dll": "描述: pstprx.dll是Windows CE Outlook数据同步相关文件。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"quartz.dll": "描述: quartz.dll是DirectShow相关库文件,是DirectX的一部分。\n属于: Microsoft DirectX \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"riched20.dll": "描述: riched20.dll是字符编辑器相关文件。\n属于: RichEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"riched32.dll": "描述: riched32.dll是字符编辑器相关文件。\n属于: RichEdit \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"richtx32.dll": "描述: richtx32.ocx是微软Microsoft字符编辑器控制相关程序,用于字符对话框对象高级编辑。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"schannel.dll": "描述: schannel.dll是Internet Explorer 3.x或者4.x浏览器128位加密相关文件。\n属于: Microsoft Internet Explorer \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setup.dll": "描述: setup.dll是流行的安装程序相关支持文件。\n属于: TextBridge Pro 96 \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"setupapi.dll": "描述: setupapi.dll是流行的安装程序支持相关文件。\n属于: Microsoft Windows Setup \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"smackw32.dll": "描述: smackw32.dll是Smacker视频解码器相关文件。\n属于: Games Media Smacker \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"storm.dll": "描述: storm.dll是暴雪游戏相关动态链接库文件,出现在StarCraft和Diablo等游戏中。\n属于: Games Blizzard \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"symstore.dll": "描述: symstore.dll是Symantec公司设置相关动态链接库文件。\n属于: Symantec \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tabctl32.dll": "描述: tabctl32.ocx是一个ActiveX控制模块,用于SSTab控制和Tabbed对话框控制。\n属于: OLE \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"threed32.dll": "描述: threed32.ocx是Sheridon 3D控制对象相关文件,用于渲染3D图像。\n属于: Sheridon \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"topsearch.dll": "描述: topsearch.dll是Kazaa.exe的间谍软件相关文件。\n属于: Kazaa \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"tsbyuv.dll": "描述: tsbyuv.dll是东芝Toshiba视频播放解码器相关程序。\n属于: Toshiba Video \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"twain.dll": "描述: twain.dll是静态图像应用程序接口相关文件。\n属于: Twain Source Manager \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb40016.dll": "描述: vb40016.dll是Visual Basic运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb40032.dll": "描述: vb40032.dll是Visual Basic运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb6fr.dll": "描述: vb6fr.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vb6stkit.dll": "描述: vb6stkit.dll是Visual Basic应用程序接口API相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun100.dll": "描述: vbrun100.dll是Visual Basic语言运行时相关程序。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun200.dll": "描述: vbrun200.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbrun300.dll": "描述: vbrun300.dll是Visual Basic语言运行时相关文件。\n属于: Visual Basic \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vbscript.dll": "描述: vbscript.dll是VBScript脚本相关支持文件。\n属于: VBScript \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"vsutil.dll": "描述: vsutil.dll是ZoneLabs ZoneAlarm软件相关文件。\n属于: ZoneAlarm \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab.dll": "描述: wab.dll是微软Microsoft地址薄相关文件,用于储存Outlook和Outlook Express的Email地址和其它信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wab32.dll": "描述: wab32.dll是微软Microsoft地址薄相关文件,用于储存Outlook和Outlook Express的Email邮件地址和其它联系信息。\n属于: Outlook \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"weputil.dll": "描述: weputil.dll是Windows娱乐包的相关文件。\n属于: Windows Entertainment Pack \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winaspi.dll": "描述: winaspi.dll是ASPI驱动相关文件,用于控制CD-ROM驱动器、CD/DVD刻录机,支持相关CD刻录备份软件,\n属于: ASPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"winaspi32.dll": "描述: winaspi32.dll是ASPI驱动相关文件,用于控制CD-ROM驱动器、CD/DVD刻录机,支持相关CD刻录备份软件,\n属于: ASPI \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"window.dll": "描述: window.dll是Unreal游戏程序相关文件,用于显示或者配置DirectX设置对话框。\n属于: Games Unreal \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wing.dll": "描述: wing.dll是Windows应用程序图形显示库文件,用以取代DirectX。\n属于: Windows Graphics \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wing32.dll": "描述: wing32.dll是Windows应用程序图形显示库文件,用以取代DirectX。\n属于: Windows Graphics \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"wsock32n.dll": "描述: wsock32n.dl是SOCKS网络协议相关文件。\n属于: Windows Winsock \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xmlparse.dll": "描述: xmlparse.dll是Yahoo!雅虎通即时通讯软件XML解释器文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"xmltok.dll": "描述: xmltok.dll是XSLT引擎解码相关文件。\n属于: XSLT \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"ygxa_2.dll": "描述: ygxa_2.dll是Yahoo!雅虎通即时通讯软件图形用户界面相关文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"yml.dll": "描述: yml.dll是Yahoo!雅虎通应用程序相关库文件。\n属于: Yahoo Messenger \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary",
|
||||
"zlib.dll": "描述: zlib.dll是ZLIB压缩库相关文件,用于Windows应用程序压缩和解压缩。\n属于: ZLIB \n系统 DLL文件: 否 \n常见错误: File Not Found, Missing File, Exception \n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary"
|
||||
}
|
||||
52
demo/GetDllInfo/main.py
Normal file
@@ -0,0 +1,52 @@
|
||||
import json
|
||||
import pyquery
|
||||
import requests
|
||||
lists = {}
|
||||
def A(link):
|
||||
r = requests.get(f"http://www.2cto.com/shouce/system/dlllibrary/riched32/default.htm/../{link}")
|
||||
r.encoding = "gbk"
|
||||
programUrl = pyquery.PyQuery(r.text)
|
||||
iii = 0
|
||||
#print()
|
||||
miaoshu = ""
|
||||
for i in programUrl("font").items():
|
||||
if i.attr.size == "2" and iii == 4: #and not "<a" in i.text():
|
||||
#print(i.text())
|
||||
miaoshu = i.text()
|
||||
pass
|
||||
if i.attr.size == "2" and iii == 5: #and not "<a" in i.text():
|
||||
#print(i)
|
||||
for k in i.items("font"):
|
||||
if link.replace("../", "").replace("/default.htm", "") + ".dll" == "default.htm.dll":
|
||||
continue
|
||||
print((link.replace("../", "").replace("/default.htm", "") + ".dll").lower())
|
||||
lists[(link.replace("../", "").replace("/default.htm", "") + ".dll").lower()] = miaoshu + "\n" + k.text().splitlines()[0].replace("属于:", "属于:").replace("系统 DLL文件:", "\n系统 DLL文件:").replace("常见错误:", "\n常见错误:") + "\n\n资料来源:https://www.2cto.com/shouce/system/dlllibrary"
|
||||
break
|
||||
#things = i.text()
|
||||
#print(things)
|
||||
#print(things[things.index("应用程序DLL文件")])
|
||||
iii += 1
|
||||
if iii == 3:
|
||||
#break
|
||||
pass
|
||||
# https://www.2cto.com/shouce/system/dlllibrary/3dfxcmn/default.htm
|
||||
# https://www.2cto.com/shouce/system/dlllibrary/2ndsrch/default.htm
|
||||
# https://www.2cto.com/shouce/system/dlllibrary/admxprox/default.htm
|
||||
for b in ["https://www.2cto.com/shouce/system/dlllibrary/3dfxcmn/default.htm",
|
||||
"https://www.2cto.com/shouce/system/dlllibrary/2ndsrch/default.htm", "https://www.2cto.com/shouce/system/dlllibrary/admxprox/default.htm"]:
|
||||
r = requests.get(b)
|
||||
r.encoding = "gbk"
|
||||
programUrl = pyquery.PyQuery(r.text)
|
||||
#programUrl = pyquery.PyQuery(requests.get(f"http://www.2cto.com/shouce/system/dlllibrary/riched32/default.htm", ).text)
|
||||
'''for i in programUrl("table table").items():
|
||||
print(i)'''
|
||||
iii = 0
|
||||
for i in programUrl("font a").items():
|
||||
#if i.attr.size == "2":
|
||||
A(i.attr.href)
|
||||
# for k in i.items():
|
||||
# print(k)
|
||||
#exit()
|
||||
#exit()
|
||||
with open("lists.json", "w") as file:
|
||||
file.write(json.dumps(lists, ensure_ascii=False))
|
||||
69
demo/GetExeVersion/main.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
/**********************************
|
||||
* <20><><EFBFBD>ߣ<EFBFBD>gfdgd xi<78><69>Ϊʲô<CAB2><C3B4><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>ܳ<EFBFBD>û<EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20>汾<EFBFBD><E6B1BE>2.5.0
|
||||
* <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>䣺2022<32><32>11<31><31>27<32><37>
|
||||
* ֻ<><D6BB><EFBFBD><EFBFBD> Wine/Windows <20><><EFBFBD><EFBFBD>
|
||||
**********************************/
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <Windows.h>
|
||||
#pragma comment(lib, "version.lib");
|
||||
using namespace std;
|
||||
|
||||
// <20>ȿӡ<C8BF><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA> Dev CPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD> -lversion
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>汾<EFBFBD><E6B1BE>
|
||||
//@params:filename:<3A>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
string GetFileVersion(LPCWSTR filename)
|
||||
{
|
||||
string asVer = "";
|
||||
VS_FIXEDFILEINFO *pVsInfo;
|
||||
unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO);
|
||||
int iVerInfoSize = GetFileVersionInfoSizeW(filename, NULL);
|
||||
if(iVerInfoSize != 0)
|
||||
{
|
||||
char *pBuf = NULL;
|
||||
|
||||
while(!pBuf)
|
||||
{
|
||||
pBuf = new char[iVerInfoSize];
|
||||
}
|
||||
if(GetFileVersionInfoW(filename, 0, iVerInfoSize, pBuf))
|
||||
{
|
||||
if(VerQueryValueA(pBuf, "\\", (void **)&pVsInfo, &iFileInfoSize))
|
||||
{
|
||||
sprintf(pBuf, "%d.%d.%d.%d", HIWORD(pVsInfo->dwFileVersionMS), LOWORD(pVsInfo->dwFileVersionMS), HIWORD(pVsInfo->dwFileVersionLS), LOWORD(pVsInfo->dwFileVersionLS));
|
||||
asVer = pBuf;
|
||||
}
|
||||
}
|
||||
delete pBuf;
|
||||
}
|
||||
return asVer;
|
||||
}
|
||||
|
||||
// <20><>ʽת<CABD><D7AA>
|
||||
LPWSTR ConvertCharToLPWSTR(const char* szString)
|
||||
{
|
||||
int dwLen = strlen(szString) + 1;
|
||||
int nwLen = MultiByteToWideChar(CP_ACP, 0, szString, dwLen, NULL, 0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵij<CAB5><C4B3><EFBFBD>
|
||||
LPWSTR lpszPath = new WCHAR[dwLen];
|
||||
MultiByteToWideChar(CP_ACP, 0, szString, dwLen, lpszPath, nwLen);
|
||||
return lpszPath;
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]){
|
||||
if (argc < 2){
|
||||
cout << "Unfull Option" << endl;
|
||||
return 1;
|
||||
}
|
||||
string version = GetFileVersion(ConvertCharToLPWSTR(argv[1]));
|
||||
cout << "Version: " << version << endl;
|
||||
if (argc == 3){
|
||||
cout << "Write To " << argv[2] << endl;
|
||||
// Ϊ<>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>д<EFBFBD><D0B4><EFBFBD>ı<EFBFBD><C4B1>ĵ<EFBFBD>
|
||||
ofstream write(argv[2], ios::trunc);
|
||||
write << version;
|
||||
write.close();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
BIN
demo/GetExeVersion/main.exe
Executable file
BIN
dlls-arm.7z
Executable file → Normal file
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"Version": "2.4.1",
|
||||
"Version": "2.5.0",
|
||||
"Thank": [
|
||||
"感谢 @雁舞白沙 专门为小白用户编写的使用 Wine 运行器非基于生态适配脚本的程序打包教程",
|
||||
"感谢 @牦牛儿苗 进行了龙芯 3a5000 平台的测试与移植",
|
||||
"感谢 @雁舞白沙 优化了程序文案",
|
||||
"感谢 @豪 的程序测试和制作的非官方论坛 https://gfdgdxi.flarum.cloud/",
|
||||
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
||||
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
||||
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
||||
|
||||
605
mainwindow.py
@@ -27,6 +27,11 @@ import urllib.parse as parse
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
try:
|
||||
import PyQt5.QtWebEngineWidgets as QtWebEngineWidgets
|
||||
bad = False
|
||||
except:
|
||||
bad = True
|
||||
from Model import *
|
||||
|
||||
def PythonLower():
|
||||
@@ -90,7 +95,7 @@ def liulanbutton():
|
||||
|
||||
# 第二个浏览按钮事件
|
||||
def liulanexebutton():
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(widget, "选择 exe 可执行文件", json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/FindExe.json"))["path"], "exe 可执行文件(*.exe);;EXE 可执行文件(*.EXE);;所有文件(*.*)")
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(widget, "选择 exe 可执行文件", json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/FindExe.json"))["path"], "exe 可执行文件(*.exe);;MSI 文件(*.msi);;所有文件(*.*)")
|
||||
if path != "" and path != "()":
|
||||
e2.setEditText(path[0]) # 显示路径
|
||||
write_txt(get_home() + "/.config/deepin-wine-runner/FindExe.json", json.dumps({"path": os.path.dirname(path[0])})) # 写入配置文件
|
||||
@@ -127,6 +132,108 @@ class QT:
|
||||
e1.addItems(findExeHistory)
|
||||
e1.setEditText(findExeHistory[-1])
|
||||
|
||||
repairList = []
|
||||
# Flag: 日志推断解决方案功能
|
||||
class LogChecking():
|
||||
def ShowWindow():
|
||||
global logThread
|
||||
global logWindow
|
||||
global questionList
|
||||
global repairButton
|
||||
logWindow = QtWidgets.QWidget()
|
||||
logWindowLayout = QtWidgets.QGridLayout()
|
||||
questionList = QtWidgets.QListView()
|
||||
repairButton = QtWidgets.QPushButton("一键修复")
|
||||
repairButton.setDisabled(True)
|
||||
repairButton.clicked.connect(LogChecking.RepairButton)
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
item = QtGui.QStandardItem("正在分析中……")
|
||||
questionList.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
nmodel.appendRow(item)
|
||||
questionList.setModel(nmodel)
|
||||
logWindowLayout.addWidget(questionList, 0, 0, 3, 1)
|
||||
logWindowLayout.addWidget(repairButton, 0, 2, 1, 1)
|
||||
logWindow.setWindowTitle("分析日志")
|
||||
logWindow.setLayout(logWindowLayout)
|
||||
logThread = LogThreading()
|
||||
logThread.done.connect(LogChecking.Show)
|
||||
logThread.start()
|
||||
logWindow.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
logWindow.resize(int(logWindow.frameGeometry().width() * 1.2), int(logWindow.frameGeometry().height() * 1.2))
|
||||
logWindow.show()
|
||||
|
||||
def RepairButton():
|
||||
index = questionList.currentIndex().row()
|
||||
lists = questionMap[index]
|
||||
print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh")
|
||||
if lists[0] == 1 and os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"):
|
||||
OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'")
|
||||
return
|
||||
if lists[0] == 2:
|
||||
QtWidgets.QMessageBox.information(logWindow, "修复方法", "切换其它 Wine")
|
||||
return
|
||||
if lists[0] == 4:
|
||||
QtWidgets.QMessageBox.information(logWindow, "修复方法", "如是 Deepin Wine 可以尝试切换 WineHQ,\n并且取消勾选运行器主页面菜单栏“程序”=>“设置Wine”,取消勾选“屏蔽 Wine 默认 Mono 和 Gecko 安装器”\n然后尝试在菜单栏的“Wine”=>“在指定 Wine、容器安装组件”=>“在指定 Wine、容器安装 Gecko”来安装 Gecko")
|
||||
return
|
||||
QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题")
|
||||
|
||||
def Show(lists):
|
||||
global questionMap
|
||||
nmodel = QtGui.QStandardItemModel(window)
|
||||
disbledButton = False
|
||||
print(lists)
|
||||
if not len(lists):
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||
disbledButton = True
|
||||
for i in lists:
|
||||
if i[0] == 0:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||
disbledButton = True
|
||||
break
|
||||
if i[0] == 1:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"× 无法调用 Dll:{i[1]}"))
|
||||
if i[0] == 2:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"× 尝试用 Mono 运行非 .net 应用 {i[1]}?"))
|
||||
if i[0] == 3:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"! 无法加载 Gecko,是被禁用或未安装?"))
|
||||
if i[0] == 4:
|
||||
nmodel.appendRow(QtGui.QStandardItem(f"× 无法更新 Wine 容器版本,是否还有 Wine 程序运行?"))
|
||||
questionMap = lists[:]
|
||||
repairButton.setDisabled(disbledButton)
|
||||
questionList.setModel(nmodel)
|
||||
|
||||
class LogThreading(QtCore.QThread):
|
||||
done = QtCore.pyqtSignal(list)
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
global logText
|
||||
repairList = []
|
||||
logText = returnText.toPlainText()
|
||||
print(logText.splitlines())
|
||||
for i in logText.splitlines():
|
||||
print(i)
|
||||
checkingText = i.lower()
|
||||
if "err:module:import_dll Library".lower() in checkingText:
|
||||
# Lose Dll
|
||||
repairList.append([1, i[i.index("Library") + 8: i.index("(")].strip()])
|
||||
continue
|
||||
if "err:module:fixup_imports_ilonly".lower() in checkingText:
|
||||
# Lose Dll
|
||||
repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()])
|
||||
continue
|
||||
if "Cannot open assembly".lower() in checkingText and ": File does not contain a valid CIL image.".lower() in checkingText:
|
||||
# Mono
|
||||
repairList.append([2, i.replace(": File does not contain a valid CIL image.", "").replace("Cannot open assembly", "").strip()[1: -1]])
|
||||
if "Could not load wine-gecko. HTML rendering will be disabled.".lower() in checkingText and "Could not find Wine Gecko. HTML rendering will be disabled.".lower() in checkingText:
|
||||
# Disbled Gecko
|
||||
repairList.append([3, ""])
|
||||
if "Your wineserver binary was not upgraded correctly".lower() in checkingText:
|
||||
repairList.append([4, ""])
|
||||
self.done.emit(repairList)
|
||||
|
||||
|
||||
def DisableButton(things):
|
||||
button_r_6.setDisabled(things)
|
||||
button1.setDisabled(things)
|
||||
@@ -165,9 +272,9 @@ class Runexebutton_threading(QtCore.QThread):
|
||||
else:
|
||||
option += "WINEDEBUG=FIXME,ERR,WARN,TRACE,Message "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -226,7 +333,25 @@ StartupNotify=true''')
|
||||
# 写入不进去就别写入了,当什么事情都没发生就行
|
||||
traceback.print_exc()
|
||||
DisableButton(False)
|
||||
|
||||
|
||||
class Temp:
|
||||
webWindow = None
|
||||
|
||||
def OpenUrl(url):
|
||||
print(url.url())
|
||||
# 判断是否可以使用小窗打开
|
||||
if not bad:
|
||||
Temp.webWindow = QtWidgets.QMainWindow()
|
||||
web = QtWebEngineWidgets.QWebEngineView()
|
||||
web.setUrl(url)
|
||||
Temp.webWindow.setWindowTitle("浏览页面")
|
||||
Temp.webWindow.setCentralWidget(web)
|
||||
Temp.webWindow.setWindowIcon(QtGui.QIcon(iconPath))
|
||||
Temp.webWindow.show()
|
||||
return
|
||||
webbrowser.open_new_tab(url.url())
|
||||
|
||||
#QtCore.QUrl().url()
|
||||
|
||||
# 显示“关于这个程序”窗口
|
||||
def about_this_program()->"显示“关于这个程序”窗口":
|
||||
@@ -240,7 +365,12 @@ def about_this_program()->"显示“关于这个程序”窗口":
|
||||
messageLayout = QtWidgets.QGridLayout()
|
||||
messageLayout.addWidget(QtWidgets.QLabel(f"<img width=256 src='{iconPath}'>"), 0, 0, 1, 1, QtCore.Qt.AlignTop)
|
||||
aboutInfo = QtWidgets.QTextBrowser(messageWidget)
|
||||
aboutInfo.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||
#aboutInfo.copyAvailable.connect(lambda: print("b"))
|
||||
aboutInfo.anchorClicked.connect(OpenUrl)
|
||||
aboutInfo.setOpenLinks(False)
|
||||
aboutInfo.setHtml(about)
|
||||
aboutInfo.setOpenExternalLinks(False)
|
||||
messageLayout.addWidget(aboutInfo, 0, 1, 1, 1)
|
||||
ok = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "确定"))
|
||||
ok.clicked.connect(QT.message.close)
|
||||
@@ -288,13 +418,13 @@ def make_desktop_on_launcher():
|
||||
else:
|
||||
option += "WINEDEBUG=FIXME,ERR,WARN,TRACE,Message "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
return
|
||||
os.remove(f"{programPath}/dlls-arm.7z")
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
value = ""
|
||||
if e2.currentText()[:2].upper() == "C:":
|
||||
@@ -348,9 +478,9 @@ def make_desktop_on_desktop():
|
||||
else:
|
||||
wineBottonPath = e1.currentText()
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -438,6 +568,50 @@ def InstallWine():
|
||||
def InstallWineOnDeepin23():
|
||||
threading.Thread(target=OpenTerminal, args=[f"'{programPath}/InstallWineOnDeepin23.py'"]).start()
|
||||
|
||||
class DllWindow():
|
||||
def ShowWindow():
|
||||
global dllMessage
|
||||
global dllInfoMap
|
||||
global textInfo
|
||||
global dllName
|
||||
dllMessage = QtWidgets.QWidget()
|
||||
dllLayout = QtWidgets.QGridLayout()
|
||||
try:
|
||||
dllInfoMap["check"]
|
||||
except:
|
||||
try:
|
||||
with open(f"{programPath}/CheckDLL/lists.json", "r") as file:
|
||||
dllInfoMap = json.loads(file.read())
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(dllMessage, "错误", traceback.format_exc())
|
||||
# UI
|
||||
dllName = QtWidgets.QLineEdit()
|
||||
dllButton = QtWidgets.QPushButton("查询")
|
||||
textInfo = QtWidgets.QTextBrowser()
|
||||
dllButton.clicked.connect(DllWindow.Find)
|
||||
dllLayout.addWidget(QtWidgets.QLabel("Dll 名称:"), 0, 0)
|
||||
dllLayout.addWidget(dllName, 0, 1)
|
||||
dllLayout.addWidget(dllButton, 0, 2)
|
||||
dllLayout.addWidget(textInfo, 1, 0, 1, 3)
|
||||
dllMessage.setWindowTitle(f"{title}——查询 Dll")
|
||||
dllMessage.setLayout(dllLayout)
|
||||
dllMessage.resize(int(dllMessage.frameGeometry().width() * 1.2), int(dllMessage.frameGeometry().height() * 1.1))
|
||||
dllMessage.setWindowIcon(QtGui.QIcon(f"{programPath}/deepin-wine-runner.svg"))
|
||||
dllMessage.show()
|
||||
|
||||
def Find():
|
||||
dllNameText = dllName.text().strip().lower()
|
||||
if dllNameText[-4:] != ".dll":
|
||||
dllNameText += ".dll"
|
||||
try:
|
||||
textInfo.setText(dllInfoMap[dllNameText])
|
||||
except:
|
||||
textInfo.setText(f"未查询到有关 Dll '{dllNameText}' 有关的内容")
|
||||
|
||||
def InstallWineOnDeepin23Alpha():
|
||||
threading.Thread(target=OpenTerminal, args=[f"'{programPath}/InstallWineOnDeepin23Alpha.py'"]).start()
|
||||
|
||||
def InstallWineHQ():
|
||||
threading.Thread(target=OpenTerminal, args=[f"{programPath}/InstallNewWineHQ.sh"]).start()
|
||||
|
||||
@@ -456,6 +630,31 @@ def OpenWineFontPath():
|
||||
QtWidgets.QMessageBox.information(widget, "提示", QtCore.QCoreApplication.translate("U", "如果安装字体?只需要把字体文件复制到此字体目录\n按下“OK”按钮可以打开字体目录"))
|
||||
os.system("xdg-open \"" + wineBottonPath.replace("\'", "\\\'") + "/drive_c/windows/Fonts\"")
|
||||
|
||||
def GetLoseDll():
|
||||
if e1.currentText() == "":
|
||||
wineBottonPath = setting["DefultBotton"]
|
||||
else:
|
||||
wineBottonPath = e1.currentText()
|
||||
option = ""
|
||||
if setting["MonoGeckoInstaller"]:
|
||||
option += f"WINEDLLOVERRIDES=\"mscoree,mshtml=\" "
|
||||
if setting["Architecture"] != "Auto":
|
||||
option += f"WINEARCH={setting['Architecture']} "
|
||||
if not setting["Debug"]:
|
||||
option += "WINEDEBUG=-all "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
os.system(f"'{programPath}/deepin-wine-runner-create-botton.py' '{wineBottonPath}'")
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
return
|
||||
os.remove(f"{programPath}/dlls-arm.7z")
|
||||
threading.Thread(target=os.system, args=[f"python3 '{programPath}/CheckDLL/main.py' '{e2.currentText()}' '{wineBottonPath}' '{wine[o1.currentText()]}'" + setting["WineOption"]]).start()
|
||||
|
||||
class RunWineProgramThread(QtCore.QThread):
|
||||
signal = QtCore.pyqtSignal(str)
|
||||
showHistory = QtCore.pyqtSignal(str)
|
||||
@@ -478,11 +677,11 @@ class RunWineProgramThread(QtCore.QThread):
|
||||
if not setting["Debug"]:
|
||||
option += "WINEDEBUG=-all "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
os.system(f"'{programPath}/deepin-wine-runner-create-botton.py' '{wineBottonPath}'")
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -519,7 +718,7 @@ runProgram = None
|
||||
def RunWineProgram(wineProgram, history = False, Disbled = True):
|
||||
global runProgram
|
||||
DisableButton(True)
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 UOS exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and not o1.currentText() in untipsWine:
|
||||
DisableButton(False)
|
||||
return
|
||||
@@ -544,9 +743,9 @@ class RunWinetricksThread(QtCore.QThread):
|
||||
if not setting["Debug"]:
|
||||
option += "WINEDEBUG=-all "
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable":
|
||||
wineUsingOption = ""
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -575,11 +774,11 @@ runWinetricks = None
|
||||
def RunWinetricks():
|
||||
global runWinetricks
|
||||
DisableButton(True)
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 UOS exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 UOS box86 的 deepin-wine6-stable":
|
||||
if not CheckProgramIsInstall(wine[o1.currentText()]) and not o1.currentText() in untipsWine:
|
||||
DisableButton(False)
|
||||
return
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 exagear 的 deepin-wine6-stable":
|
||||
if o1.currentText() == "基于 UOS box86 的 deepin-wine6-stable" or o1.currentText() == "基于 UOS exagear 的 deepin-wine6-stable":
|
||||
if not os.path.exists(f"{programPath}/dlls-arm"):
|
||||
if os.system(f"7z x -y \"{programPath}/dlls-arm.7z\" -o\"{programPath}\""):
|
||||
QtWidgets.QMessageBox.critical(widget, "错误", "无法解压资源")
|
||||
@@ -1591,6 +1790,40 @@ class ValueCheck():
|
||||
def ChangePath():
|
||||
e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}')
|
||||
|
||||
def UploadLog():
|
||||
if QtWidgets.QMessageBox.question(window, "提示", "您确定要上传吗?上传内容将不会公开,将用于加强日志分析功能") == QtWidgets.QMessageBox.Yes:
|
||||
text = QtWidgets.QInputDialog.getMultiLineText(window, "输入内容", "输入描述信息")
|
||||
try:
|
||||
returnList = requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2xvZw==").decode("utf-8"), {
|
||||
"Log": returnText.toPlainText(),
|
||||
"Wine": wine[o1.currentText()],
|
||||
"Tips": text
|
||||
}).json
|
||||
if returnList["ExitCode"] == 0:
|
||||
QtWidgets.QMessageBox.information(window, "提示", "上传成功!")
|
||||
else:
|
||||
print(returnList)
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||
|
||||
|
||||
def SaveLog():
|
||||
path = QtWidgets.QFileDialog.getSaveFileName(window, "保存日志", get_home(), "txt文件(*.txt);;html 文件(*.html);;所有文件(*.*))")
|
||||
if not path[1]:
|
||||
return
|
||||
print(path)
|
||||
try:
|
||||
with open(path[0], "w") as file:
|
||||
if path[1] == "html 文件(*.html)":
|
||||
file.write(returnText.toHtml())
|
||||
else:
|
||||
file.write(returnText.toPlainText())
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
|
||||
###########################
|
||||
# 加载配置
|
||||
###########################
|
||||
@@ -1636,11 +1869,14 @@ if not os.path.exists(get_home() + "/.config/deepin-wine-runner/WineSetting.json
|
||||
# 设置变量
|
||||
###########################
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
# 如果要添加其他 wine,请在字典添加其名称和执行路径
|
||||
# 如果要添加其他 wine,请使用安装更多 Wine 功能
|
||||
#############
|
||||
# 检测 Wine
|
||||
#############
|
||||
try:
|
||||
wine = {
|
||||
"基于 UOS box86 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ",
|
||||
"基于 exagear 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- /opt/deepin-wine6-stable/bin/wine ",
|
||||
"基于 UOS exagear 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- /opt/deepin-wine6-stable/bin/wine ",
|
||||
"deepin-wine6 stable": "deepin-wine6-stable",
|
||||
"deepin-wine5 stable": "deepin-wine5-stable",
|
||||
"spark-wine7-devel": "spark-wine7-devel",
|
||||
@@ -1652,11 +1888,13 @@ try:
|
||||
"mono(这不是 wine,但可以实现初步调用运行 .net 应用)": "mono",
|
||||
"基于 linglong 的 deepin-wine6-stable(不推荐)": f"ll-cli run '' --exec '/bin/deepin-wine6-stable'"
|
||||
}
|
||||
untipsWine = ["基于 UOS box86 的 deepin-wine6-stable", "基于 exagear 的 deepin-wine6-stable", "基于 linglong 的 deepin-wine6-stable(不推荐)"]
|
||||
untipsWine = ["基于 exagear 的 deepin-wine6-stable", "基于 UOS box86 的 deepin-wine6-stable", "基于 UOS exagear 的 deepin-wine6-stable", "基于 linglong 的 deepin-wine6-stable(不推荐)"]
|
||||
canUseWine = []
|
||||
if os.path.exists("/opt/deepin-box86/box86"):
|
||||
if os.path.exists("/opt/deepin-box86/box86") and os.path.exists("/opt/deepin-wine6-stable/bin/wine"):
|
||||
canUseWine.append("基于 UOS box86 的 deepin-wine6-stable")
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"):
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al") and os.path.exists("/opt/deepin-wine6-stable/bin/wine"):
|
||||
canUseWine.append("基于 UOS exagear 的 deepin-wine6-stable")
|
||||
if not os.system("which exagear") and os.path.exists("/opt/deepin-wine6-stable/bin/wine"):
|
||||
canUseWine.append("基于 exagear 的 deepin-wine6-stable")
|
||||
for i in wine.keys():
|
||||
if not os.system(f"which '{wine[i]}'"):
|
||||
@@ -1688,8 +1926,11 @@ try:
|
||||
if os.system("which box64") == 0:
|
||||
name = "基于 box64 的 "
|
||||
value = f"box64 "
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"):
|
||||
if os.system("which exagear") == 0:
|
||||
name = "基于 exagear 的 "
|
||||
value = f"exagear "
|
||||
if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"):
|
||||
name = "基于 UOS exagear 的 "
|
||||
value = f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- "
|
||||
except:
|
||||
pass
|
||||
@@ -1735,86 +1976,127 @@ except:
|
||||
def getFileFolderSize(fileOrFolderPath):
|
||||
"""get size for file or folder"""
|
||||
totalSize = 0
|
||||
if not os.path.exists(fileOrFolderPath):
|
||||
return totalSize
|
||||
if os.path.isfile(fileOrFolderPath):
|
||||
totalSize = os.path.getsize(fileOrFolderPath) # 5041481
|
||||
return totalSize
|
||||
if os.path.isdir(fileOrFolderPath):
|
||||
with os.scandir(fileOrFolderPath) as dirEntryList:
|
||||
for curSubEntry in dirEntryList:
|
||||
curSubEntryFullPath = os.path.join(fileOrFolderPath, curSubEntry.name)
|
||||
if curSubEntry.is_dir():
|
||||
curSubFolderSize = getFileFolderSize(curSubEntryFullPath) # 5800007
|
||||
totalSize += curSubFolderSize
|
||||
elif curSubEntry.is_file():
|
||||
curSubFileSize = os.path.getsize(curSubEntryFullPath) # 1891
|
||||
totalSize += curSubFileSize
|
||||
try:
|
||||
if not os.path.exists(fileOrFolderPath):
|
||||
return totalSize
|
||||
if os.path.isfile(fileOrFolderPath):
|
||||
totalSize = os.path.getsize(fileOrFolderPath) # 5041481
|
||||
return totalSize
|
||||
if os.path.isdir(fileOrFolderPath):
|
||||
with os.scandir(fileOrFolderPath) as dirEntryList:
|
||||
for curSubEntry in dirEntryList:
|
||||
curSubEntryFullPath = os.path.join(fileOrFolderPath, curSubEntry.name)
|
||||
if curSubEntry.is_dir():
|
||||
curSubFolderSize = getFileFolderSize(curSubEntryFullPath) # 5800007
|
||||
totalSize += curSubFolderSize
|
||||
elif curSubEntry.is_file():
|
||||
curSubFileSize = os.path.getsize(curSubEntryFullPath) # 1891
|
||||
totalSize += curSubFileSize
|
||||
return totalSize
|
||||
except:
|
||||
return totalSize
|
||||
|
||||
# 获取当前语言
|
||||
def get_now_lang()->"获取当前语言":
|
||||
return os.getenv('LANG')
|
||||
|
||||
def GetVersion():
|
||||
global about
|
||||
global programVersionType
|
||||
# 目前分为几个版本(在 control 文件区分):
|
||||
# 星火版本:~spark
|
||||
# 商店版本:~uos
|
||||
# 编译版本:无版本号
|
||||
# Gitee/Github……:正常版本
|
||||
programVersionTypeLnk = {
|
||||
"spark": "星火应用商店版本",
|
||||
"uos": "deepin/UOS 应用商店版本<带签名>"
|
||||
}
|
||||
programVersionType = "从源码运行的版本"
|
||||
try:
|
||||
if not os.path.exists("/var/lib/dpkg/status"):
|
||||
print("无 dpkg,结束")
|
||||
file = open("/var/lib/dpkg/status", "r")
|
||||
fileName = file.read().splitlines()
|
||||
package = False
|
||||
for i in range(0, len(fileName)):
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner-52":
|
||||
programVersionType = "吾爱专版"
|
||||
window.setWindowTitle(f"{title} 吾爱专版")
|
||||
break
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner":
|
||||
package = True
|
||||
continue
|
||||
if not package:
|
||||
continue
|
||||
if fileName[i].replace(" ", "").replace("\n", "") == "":
|
||||
# 空行,不再考虑
|
||||
break
|
||||
# 搜索版本号
|
||||
# 又需要修复多线程导致的控件问题
|
||||
def AddDockerMenu():
|
||||
global dockers
|
||||
global openFileManager
|
||||
global openTerminal
|
||||
dockers = menu.addMenu("该 Docker 基础管理")
|
||||
openFileManager = QtWidgets.QAction("打开默认文件管理器")
|
||||
openTerminal = QtWidgets.QAction("打开默认终端")
|
||||
openFileManager.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"xdg-open '{get_home()}'"]).start())
|
||||
openTerminal.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"x-terminal-emulator"]).start())
|
||||
dockers.addAction(openFileManager)
|
||||
dockers.addAction(openTerminal)
|
||||
|
||||
class GetVersionThread(QtCore.QThread):
|
||||
signal = QtCore.pyqtSignal(str)
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def run(self):
|
||||
global about
|
||||
global window
|
||||
global programVersionType
|
||||
# 目前分为几个版本(在 control 文件区分):
|
||||
# 星火版本:~spark
|
||||
# 商店版本:~uos
|
||||
# 编译版本:无版本号
|
||||
# Gitee/Github……:正常版本
|
||||
# Docker 版本
|
||||
programVersionTypeLnk = {
|
||||
"spark": "星火应用商店版本",
|
||||
"uos": "deepin/UOS 应用商店版本<带签名>"
|
||||
}
|
||||
# 直接判断是不是 Docker 版本
|
||||
if os.path.exists(f"{programPath}/docker.txt") or os.path.exists("/.dockerenv"):
|
||||
programVersionType = "Docker 内置版本"
|
||||
window.setWindowTitle(f"{title} (Docker 内置版本)")
|
||||
self.signal.emit("")
|
||||
else:
|
||||
programVersionType = "从源码运行的版本"
|
||||
try:
|
||||
if fileName[i][:fileName[i].index(":")] == "Version":
|
||||
version = fileName[i][fileName[i].index(":") + 1:].strip()
|
||||
print(f"版本号为:{version}")
|
||||
if not "-" in version:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
if not os.path.exists("/var/lib/dpkg/status"):
|
||||
print("无 dpkg,结束")
|
||||
file = open("/var/lib/dpkg/status", "r")
|
||||
fileName = file.read().splitlines()
|
||||
package = False
|
||||
for i in range(0, len(fileName)):
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner-docker":
|
||||
programVersionType = "Docker 内置版本"
|
||||
window.setWindowTitle(f"{title} (Docker 内置版本)")
|
||||
#AddDockerMenu()
|
||||
self.signal.emit("")
|
||||
break
|
||||
programVersionType = version[version.index("-") + 1:]
|
||||
print(programVersionType)
|
||||
if "-" in programVersionType:
|
||||
# 考虑到如 2.1.0-2-spark 的情况
|
||||
programVersionType = programVersionType[programVersionType.index("-") + 1:]
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner-52":
|
||||
programVersionType = "吾爱专版"
|
||||
window.setWindowTitle(f"{title}(吾爱专版)")
|
||||
break
|
||||
if fileName[i] == "Package: spark-deepin-wine-runner":
|
||||
package = True
|
||||
continue
|
||||
if not package:
|
||||
continue
|
||||
if fileName[i].replace(" ", "").replace("\n", "") == "":
|
||||
# 空行,不再考虑
|
||||
break
|
||||
# 搜索版本号
|
||||
try:
|
||||
programVersionType = programVersionTypeLnk[programVersionType]
|
||||
if fileName[i][:fileName[i].index(":")] == "Version":
|
||||
version = fileName[i][fileName[i].index(":") + 1:].strip()
|
||||
print(f"版本号为:{version}")
|
||||
if not "-" in version:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
break
|
||||
programVersionType = version[version.index("-") + 1:]
|
||||
print(programVersionType)
|
||||
if "-" in programVersionType:
|
||||
# 考虑到如 2.1.0-2-spark 的情况
|
||||
programVersionType = programVersionType[programVersionType.index("-") + 1:]
|
||||
try:
|
||||
programVersionType = programVersionTypeLnk[programVersionType]
|
||||
except:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
break
|
||||
except:
|
||||
programVersionType = "从Gitee/Github/Gitlink等平台获取的版本"
|
||||
break
|
||||
traceback.print_exc()
|
||||
continue
|
||||
except:
|
||||
traceback.print_exc()
|
||||
continue
|
||||
except:
|
||||
print("无法读取,当没有处理")
|
||||
print(programVersionType)
|
||||
about = about.replace("@VersionForType@", programVersionType)
|
||||
# 获取程序体积
|
||||
about = about.replace("@programSize@", str(int(getFileFolderSize(programPath) / 1024 / 1024)))
|
||||
print("无法读取,当没有处理")
|
||||
print(programVersionType)
|
||||
about = about.replace("@VersionForType@", programVersionType)
|
||||
# 获取程序体积
|
||||
about = about.replace("@programSize@", str(int(getFileFolderSize(programPath) / 1024 / 1024)))
|
||||
|
||||
def GetVersion():
|
||||
global runVersion
|
||||
runVersion = GetVersionThread()
|
||||
runVersion.signal.connect(AddDockerMenu)
|
||||
runVersion.start()
|
||||
|
||||
programVersionType = ""
|
||||
print(wine)
|
||||
@@ -1828,43 +2110,48 @@ version = information["Version"]
|
||||
goodRunSystem = "常见 Linux 发行版"
|
||||
thankText = ""
|
||||
tips = '''<h4>提示:</h4>
|
||||
1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错;
|
||||
2、wine 32 位和 64 位的容器互不兼容;
|
||||
3、所有的 wine 和 winetricks 均需要自行安装(可以从 菜单栏=>程序 里面进行安装)
|
||||
1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错;
|
||||
2、wine 32 位和 64 位的容器互不兼容;
|
||||
3、所有的 wine 和 winetricks 均需要自行安装(可以从 菜单栏=>程序 里面进行安装);
|
||||
4、本程序支持带参数运行 wine 程序(之前版本也可以),只需要按以下格式即可:
|
||||
exe路径\' 参数 \'
|
||||
即可(单引号需要输入)
|
||||
5、wine 容器如果没有指定,则会默认为 ~/.wine
|
||||
6、如果可执行文件比较大的话,会出现点击“获取该程序运行情况”出现假死的情况,因为正在后台读取 SHA1,只需要等一下即可(读取速度依照您电脑处理速度、读写速度、可执行文件大小等有关)
|
||||
7、对于非 X86 的用户来说,请不要使用本程序自带的 Wine 安装程序和 Windows 虚拟机安装功能(检测到为非 X86 架构会自动禁用)
|
||||
8、如果非 X86 的用户的 UOS 专业版用户想要使用的话,只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序
|
||||
即可(单引号需要输入);
|
||||
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 也必须在被映射的目录内
|
||||
同理需要运行的 EXE 也必须在被映射的目录内;
|
||||
10、如果是使用 Deepin 23 的 Wine 安装脚本,请切记——安装过程会临时添加 Deepin 20 的 apt 源,不要中断安装以及
|
||||
<b>千万不要中断后不删除源的情况下 apt upgrade !!!</b>中断后只需重新打开脚本输入 repair 或者随意安装一个 Wine(会自动执行恢复操作)即可
|
||||
以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示
|
||||
以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示;
|
||||
<code>N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。</code>'''
|
||||
updateThingsString = '''※1、不基于生态适配活动脚本的打包器支持只生成制作容器的 7z 包
|
||||
※2、两个打包器的容器自动删除脚本添加 kill.sh
|
||||
※3、Wine 运行器支持杀死对应容器进程
|
||||
※4、容器自动配置脚本和 Wine 安装器支持切换源
|
||||
5、非生态适配脚本打包器追加运行参数改为 --uri XXX 而非直接 XXX
|
||||
6、两个打包器新增星火应用商店投稿入口
|
||||
7、优化开启 Windows 虚拟机功能在未安装 VirtualBox 时的提示
|
||||
8、Reg Shot 版本从 1.8.3-beta1V5 升级到 1.9.0
|
||||
9、Geek Uninstaller 版本从 1.5.1.161 升级到 1.5.1.163
|
||||
10、容器自动配置脚本添加 installother 命令、修复返回值传递问题
|
||||
11、不显示 pip 安装库的提示信息(因为不是很核心的库)
|
||||
12、非基于生态适配活动脚本的打包器默认勾选卸载该 deb 后自动删除容器、使用统信活动容器清理脚本、使用星火 wine helper
|
||||
13、优化文案
|
||||
updateThingsString = '''※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);
|
||||
※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;
|
||||
※3、支持多图标的程序打包;
|
||||
※4、修复了安装更多 Wine 换源换了个寂寞的问题;
|
||||
※5、修复安装更多 Wine 重新安装后列表丢失的问题;
|
||||
※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;
|
||||
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
||||
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
||||
※9、支持移除指定的 .desktop 快捷方式;
|
||||
※10、新增日志分析功能以及导出、上传日志功能;
|
||||
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||
12、优化文案、新增友链;
|
||||
13、提供了部分组件的测试功能。
|
||||
'''
|
||||
for i in information["Thank"]:
|
||||
thankText += f"{i}\n"
|
||||
updateTime = "2022年11月06日"
|
||||
about = f'''<h1>关于</h1>
|
||||
<p>一个能让Linux用户更加方便运行Windows应用的程序,内置了对wine图形化的支持和各种Wine工具和自制Wine程序打包器、运行库安装工具等等</p>
|
||||
<p>同时也内置了基于VirtualBox制作的小白Windows虚拟机安装工具,可以做到只需要用户下载系统镜像并点击安装即可,无需顾及虚拟机安装、创建、虚拟机的分区等等</p>
|
||||
updateTime = "2022年11月25日"
|
||||
about = f'''<style>
|
||||
a:link, a:active {{
|
||||
text-decoration: none;
|
||||
}}
|
||||
</style>
|
||||
<h1>关于</h1>
|
||||
<p>Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。</p>
|
||||
<p>它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。</p>
|
||||
<p>本程序依照 GPLV3 协议开源</p>
|
||||
<pre>
|
||||
|
||||
@@ -1892,31 +2179,19 @@ Qt 版本:{QtCore.qVersion()}
|
||||
<h1>友谊链接</h1>
|
||||
<pre>星火应用商店:https://spark-app.store/
|
||||
Deepin 官网:https://www.deepin.org
|
||||
Deepin 论坛:https://bbs.deepin.org</pre>
|
||||
Deepin 论坛:https://bbs.deepin.org
|
||||
非官方论坛:https://gfdgdxi.flarum.cloud/</pre>
|
||||
<hr>
|
||||
<h1>©2020~{time.strftime("%Y")} gfdgd xi、为什么您不喜欢熊出没和阿布呢</h1>'''
|
||||
title = "Wine 运行器 {}".format(version)
|
||||
#<h1>©2020~{time.strftime("%Y")} <a href="https://gitee.com/gfdgd-xi">gfdgd xi、为什么您不喜欢熊出没和阿布呢</h1>'''
|
||||
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
||||
try:
|
||||
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9vcGVuL0luc3RhbGwucGhw").decode("utf-8")) + "?Version=" + version]).start()
|
||||
except:
|
||||
pass
|
||||
iconListUnBuild = [
|
||||
["QQ", "wineBottonPath/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe"],
|
||||
["QQ", "wineBottonPath/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe"],
|
||||
["TIM", "wineBottonPath/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe"],
|
||||
["TIM", "wineBottonPath/drive_c/Program Files (x86)/Tencent/TIM/Bin/TIM.exe"]
|
||||
]
|
||||
iconList = [
|
||||
["微信", "wineBottonPath/drive_c/Program Files/Tencent/WeChat/WeChat.exe"],
|
||||
["微信", "wineBottonPath/drive_c/Program Files (x86)/Tencent/WeChat/WeChat.exe"],
|
||||
["UltraISO", "wineBottonPath/drive_c/Program Files/UltraISO/UltraISO.exe"],
|
||||
["UltraISO", "wineBottonPath/drive_c/Program Files (x86)/UltraISO/UltraISO.exe"],
|
||||
["迅雷", "wineBottonPath/drive_c/Program Files/Thunder Network/MiniThunder/Bin/ThunderMini.exe"],
|
||||
["迅雷", "wineBottonPath/drive_c/Program Files (x86)/Thunder Network/MiniThunder/Bin/ThunderMini.exe"],
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE"],
|
||||
["Microsoft Office Word", "wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE"]
|
||||
]
|
||||
iconListUnBuild = json.loads(readtxt(f"{programPath}/IconList.json"))[0]
|
||||
iconList = json.loads(readtxt(f"{programPath}/IconList.json"))[1]
|
||||
for i in iconListUnBuild:
|
||||
iconList.append(i)
|
||||
print(iconList)
|
||||
@@ -1934,8 +2209,6 @@ if not get_now_lang() == "zh_CN.UTF-8":
|
||||
app.installTranslator(trans)
|
||||
window = QtWidgets.QMainWindow()
|
||||
window.setWindowTitle(title)
|
||||
# 异同步获取信息
|
||||
threading.Thread(target=GetVersion).start()
|
||||
widget = QtWidgets.QWidget()
|
||||
window.setCentralWidget(widget)
|
||||
mainLayout = QtWidgets.QGridLayout()
|
||||
@@ -2022,6 +2295,10 @@ programManager.addWidget(QtWidgets.QLabel(" "*5), 1, 7, 1, 1)
|
||||
getProgramStatus = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "获取该程序运行情况"))
|
||||
getProgramStatus.clicked.connect(ProgramRunStatusShow.ShowWindow)
|
||||
programManager.addWidget(getProgramStatus, 1, 8, 1, 1)
|
||||
getLoseDll = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "检测静态下程序缺少DLL"))
|
||||
getLoseDll.clicked.connect(GetLoseDll)
|
||||
programManager.addWidget(QtWidgets.QLabel(" "*5), 1, 9, 1, 1)
|
||||
programManager.addWidget(getLoseDll, 1, 10, 1, 1)
|
||||
programManager.addItem(QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum), 1, 9, 1, 1)
|
||||
programManager.addWidget(QtWidgets.QLabel(QtCore.QCoreApplication.translate("U", "WINE配置:")), 2, 0, 1, 1)
|
||||
wineConfig = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "配置容器"))
|
||||
@@ -2085,7 +2362,8 @@ mainLayout.addWidget(programRun, 2, 1, 1, 1)
|
||||
menu = window.menuBar()
|
||||
programmenu = menu.addMenu(QtCore.QCoreApplication.translate("U", "程序(&P)"))
|
||||
p1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(&I)"))
|
||||
installWineOnDeepin23 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(只限Deepin23)"))
|
||||
installWineOnDeepin23 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(只限Deepin23 Preview)"))
|
||||
installWineOnDeepin23Alpha = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 wine(只限Deepin23 Alpha)"))
|
||||
installWineHQ = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 WineHQ"))
|
||||
installMoreWine = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装更多 Wine"))
|
||||
p2 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "设置程序(&S)"))
|
||||
@@ -2095,6 +2373,7 @@ cleanProgramUnuse = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "
|
||||
p4 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "退出程序(&E)"))
|
||||
programmenu.addAction(p1)
|
||||
programmenu.addAction(installWineOnDeepin23)
|
||||
programmenu.addAction(installWineOnDeepin23Alpha)
|
||||
programmenu.addAction(installWineHQ)
|
||||
programmenu.addAction(installMoreWine)
|
||||
programmenu.addSeparator()
|
||||
@@ -2107,6 +2386,7 @@ programmenu.addSeparator()
|
||||
programmenu.addAction(p4)
|
||||
p1.triggered.connect(InstallWine)
|
||||
installWineOnDeepin23.triggered.connect(InstallWineOnDeepin23)
|
||||
installWineOnDeepin23Alpha.triggered.connect(InstallWineOnDeepin23Alpha)
|
||||
installWineHQ.triggered.connect(InstallWineHQ)
|
||||
installMoreWine.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"'{programPath}/wine/installwine'"]).start())
|
||||
p2.triggered.connect(ProgramSetting.ShowWindow)
|
||||
@@ -2127,6 +2407,7 @@ w6 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "使用官方 Wine
|
||||
getDllOnInternet = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "从互联网获取DLL"))
|
||||
w7 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "从镜像获取DLL(只支持官方安装镜像,DOS内核如 Windows 95 暂不支持)"))
|
||||
updateGeek = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "从 Geek Uninstaller 官网升级程序"))
|
||||
deletePartIcon = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "删除部分 Wine 程序在启动器的快捷方式"))
|
||||
deleteDesktopIcon = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "删除所有 Wine 程序在启动器的快捷方式"))
|
||||
wineOption.addAction(w1)
|
||||
wineOption.addAction(w2)
|
||||
@@ -2183,22 +2464,34 @@ wineOption.addAction(w10)
|
||||
wineOption.addSeparator()
|
||||
wineOption.addAction(w11)
|
||||
wineOption.addSeparator()
|
||||
wm3 = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "启用/禁用 opengl"))
|
||||
optionCheckDemo = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "组件功能测试"))
|
||||
vbDemo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "测试 Visual Basic 6 程序"))
|
||||
netDemo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "测试 .net framework 程序"))
|
||||
netIEDemo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "测试 .net framework + Internet Explorer 程序"))
|
||||
optionCheckDemo.addAction(vbDemo)
|
||||
optionCheckDemo.addAction(netDemo)
|
||||
optionCheckDemo.addAction(netIEDemo)
|
||||
wineOption.addSeparator()
|
||||
wm3 = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "启用/禁用功能"))
|
||||
ed1 = wm3.addMenu(QtCore.QCoreApplication.translate("U", "启用/禁用 opengl"))
|
||||
wm3_1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "开启 opengl"))
|
||||
wm3_2 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "禁用 opengl"))
|
||||
wm3.addAction(wm3_1)
|
||||
wm3.addAction(wm3_2)
|
||||
wm4 = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 winbind"))
|
||||
ed1.addAction(wm3_1)
|
||||
ed1.addAction(wm3_2)
|
||||
ed2 = wm3.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 winbind"))
|
||||
wm4_1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 winbind"))
|
||||
wm4_2 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "卸载 winbind"))
|
||||
wm4.addAction(wm4_1)
|
||||
wm4.addAction(wm4_2)
|
||||
dxvkMenu = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 DXVK"))
|
||||
ed2.addAction(wm4_1)
|
||||
ed2.addAction(wm4_2)
|
||||
dxvkMenu = wm3.addMenu(QtCore.QCoreApplication.translate("U", "安装/卸载 DXVK"))
|
||||
installDxvk = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "安装 DXVK"))
|
||||
uninstallDxvk = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "卸载 DXVK"))
|
||||
dxvkMenu.addAction(installDxvk)
|
||||
dxvkMenu.addAction(uninstallDxvk)
|
||||
wineOption.addSeparator()
|
||||
wineOption.addAction(deletePartIcon)
|
||||
wineOption.addAction(deleteDesktopIcon)
|
||||
wineOption.addSeparator()
|
||||
settingWineBottleCreateLink = wineOption.addMenu(QtCore.QCoreApplication.translate("U", "允许/禁止指定 wine 容器生成快捷方式"))
|
||||
enabledWineBottleCreateLink = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "允许指定 wine 容器生成快捷方式"))
|
||||
disbledWineBottleCreateLink = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "禁止指定 wine 容器生成快捷方式"))
|
||||
@@ -2255,6 +2548,7 @@ wm4_1.triggered.connect(lambda: os.system(f"'{programPath}/launch.sh' deepin-ter
|
||||
wm4_2.triggered.connect(lambda: os.system(f"'{programPath}/launch.sh' deepin-terminal -C 'pkexec apt purge winbind -y' --keep-open"))
|
||||
installDxvk.triggered.connect(InstallDXVK)
|
||||
uninstallDxvk.triggered.connect(UninstallDXVK)
|
||||
deletePartIcon.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"python3 '{programPath}/BuildDesktop.py'"]).start())
|
||||
deleteDesktopIcon.triggered.connect(DeleteDesktopIcon)
|
||||
enabledWineBottleCreateLink.triggered.connect(lambda: RunWineProgram("reg' delete 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe '/f"))
|
||||
disbledWineBottleCreateLink.triggered.connect(lambda: RunWineProgram("reg' add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe '/f"))
|
||||
@@ -2265,6 +2559,9 @@ disbledHttpProxy.triggered.connect(DisbledHttpProxy)
|
||||
saveDllOver.triggered.connect(SaveDllList)
|
||||
addDllOver.triggered.connect(AddReg)
|
||||
editDllOver.triggered.connect(lambda: RunWineProgram("winecfg"))
|
||||
vbDemo.triggered.connect(lambda: RunWineProgram(f"{programPath}/Test/vb.exe"))
|
||||
netDemo.triggered.connect(lambda: RunWineProgram(f"{programPath}/Test/net.exe"))
|
||||
netIEDemo.triggered.connect(lambda: RunWineProgram(f"{programPath}/Test/netandie.exe"))
|
||||
|
||||
virtualMachine = menu.addMenu(QtCore.QCoreApplication.translate("U", "虚拟机(&V)"))
|
||||
v1 = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "使用 Virtualbox 虚拟机运行 Windows 应用"))
|
||||
@@ -2300,6 +2597,20 @@ s1.triggered.connect(lambda: webbrowser.open_new_tab("https://ata.360.net/"))
|
||||
s2.triggered.connect(lambda: webbrowser.open_new_tab("https://s.threatbook.cn/"))
|
||||
s3.triggered.connect(lambda: webbrowser.open_new_tab("https://www.virustotal.com/"))
|
||||
|
||||
log = menu.addMenu(QtCore.QCoreApplication.translate("U", "日志(&L)"))
|
||||
getDllInfo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询 Dll"))
|
||||
checkLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "日志分析"))
|
||||
saveLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "另存为日志"))
|
||||
uploadLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "上传日志"))
|
||||
getDllInfo.triggered.connect(DllWindow.ShowWindow)
|
||||
checkLogText.triggered.connect(LogChecking.ShowWindow)
|
||||
saveLogText.triggered.connect(SaveLog)
|
||||
uploadLogText.triggered.connect(UploadLog)
|
||||
log.addAction(getDllInfo)
|
||||
log.addAction(checkLogText)
|
||||
log.addAction(saveLogText)
|
||||
log.addAction(uploadLogText)
|
||||
|
||||
help = menu.addMenu(QtCore.QCoreApplication.translate("U", "帮助(&H)"))
|
||||
runStatusWebSize = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询程序在 Wine 的运行情况"))
|
||||
h1 = help.addMenu(QtCore.QCoreApplication.translate("U", "程序官网"))
|
||||
@@ -2363,7 +2674,9 @@ h6.triggered.connect(WineRunnerBugUpload)
|
||||
h7.triggered.connect(about_this_program)
|
||||
h8.triggered.connect(lambda: QtWidgets.QMessageBox.aboutQt(widget))
|
||||
hm1_1.triggered.connect(lambda: webbrowser.open_new_tab("https://gitee.com/gfdgd-xi/uengine-runner"))
|
||||
|
||||
# 异同步获取信息
|
||||
#threading.Thread(target=GetVersion).start()
|
||||
GetVersion()
|
||||
# 窗口设置
|
||||
window.resize(widget.frameGeometry().width() * 2, widget.frameGeometry().height())
|
||||
widget.setLayout(mainLayout)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"Version": "2.4.1"
|
||||
"Version": "2.5.0"
|
||||
}
|
||||
|
||||
772
spark-dwine-helper/spark_run_v4.sh
Executable file
@@ -0,0 +1,772 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2016 Deepin, Inc.
|
||||
# Copyright (C) 2022 The Spark Project
|
||||
#
|
||||
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
||||
# Peng Hao <penghao@linuxdeepin.com>
|
||||
#
|
||||
# Modifier: shenmo <shenmo@spark-app.store>
|
||||
# gfdgd xi <3025613752@qq.com>
|
||||
#
|
||||
#
|
||||
WINEPREFIX="$HOME/.deepinwine/@public_bottle_name@"
|
||||
APPDIR="/opt/deepinwine/apps/@public_bottle_name@"
|
||||
APPVER="@deb_version_string@"
|
||||
APPTAR="files.7z"
|
||||
BOTTLENAME=""
|
||||
WINE_CMD="deepin-wine"
|
||||
#这里会被后续覆盖,似乎没啥用
|
||||
LOG_FILE=$0
|
||||
PUBLIC_DIR="/var/public"
|
||||
# arm 的东西
|
||||
EMU_CMD="/opt/deepin-box86/box86"
|
||||
WINESERVER="/opt/deepin-wine6-stable/bin/wineserver"
|
||||
# Helper 多架构通吃计划!
|
||||
SHELL_DIR=$(dirname $0)
|
||||
SHELL_DIR=$(realpath "$SHELL_DIR")
|
||||
if [ $SPECIFY_SHELL_DIR ]; then
|
||||
SHELL_DIR=$SPECIFY_SHELL_DIR
|
||||
fi
|
||||
|
||||
if [ $APPRUN_CMD ]; then
|
||||
WINE_CMD=$APPRUN_CMD
|
||||
fi
|
||||
|
||||
if [ $SPECIFY_SHELL_DIR ]; then
|
||||
SHELL_DIR=$SPECIFY_SHELL_DIR
|
||||
fi
|
||||
|
||||
########## 看起来是对 box86 逻辑的处理
|
||||
if [ -n "$APPRUN_CMD" ]; then
|
||||
WINE_CMD=$APPRUN_CMD
|
||||
if [ ! -f "WINE_CMD" ];then
|
||||
WINE_CMD="/opt/${WINE_CMD}/bin/wine"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$BOX86_EMU_CMD" ];then
|
||||
EMU_CMD="$BOX86_EMU_CMD"
|
||||
fi
|
||||
########## exagear 的
|
||||
if [ "$EMU_NAME" = "exagear" ];then
|
||||
IMAGE_PATH=$HOME/.deepinwine/debian-buster
|
||||
IMG_ARCHIVE_DIR=/opt/deepin-wine-exagear-images/debian-buster
|
||||
EMU_CMD="${SHELL_DIR}/exagear/ubt_x64a64_al"
|
||||
EMU_ARGS="--path-prefix $IMAGE_PATH --utmp-paths-list $IMAGE_PATH/.exagear/utmp-list --vpaths-list $IMAGE_PATH/.exagear/vpaths-list --opaths-list $IMAGE_PATH/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary ${SHELL_DIR}/exagear/ubt_x32a64_al -- "
|
||||
WINESERVER="${SHELL_DIR}/exagear/wineserver"
|
||||
|
||||
#新版本wine需要udis86的库
|
||||
UDIS86="/usr/lib/i386-linux-gnu/libudis86.so.0"
|
||||
if [[ -f "$UDIS86" ]] && [[ ! -f "${IMAGE_PATH}${UDIS86}" ]]; then
|
||||
cp "$UDIS86" "${IMAGE_PATH}${UDIS86}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 用于 exagear 的函数
|
||||
extract_image() {
|
||||
LOCALTIME=`readlink -f /etc/localtime`
|
||||
7z x "$IMG_ARCHIVE_DIR/files.7z" -o"$IMAGE_PATH" -aoa
|
||||
cp /usr/bin/dde-file-manager $IMAGE_PATH/usr/bin/dde-file-manager
|
||||
rm $IMAGE_PATH/etc/localtime
|
||||
ln -s $LOCALTIME $IMAGE_PATH/etc/localtime
|
||||
if [ -d $IMAGE_PATH/etc/resolvconf ];then
|
||||
rm $IMAGE_PATH/etc/resolvconf
|
||||
fi
|
||||
if [ -d /etc/resolvconf ];then
|
||||
cp /etc/resolvconf $IMAGE_PATH/etc/ -rf
|
||||
fi
|
||||
cp /etc/resolv.conf $IMAGE_PATH/etc/
|
||||
cp /etc/hosts $IMAGE_PATH/etc/
|
||||
echo $IMAGE_VER > $IMAGE_PATH/VERSION
|
||||
}
|
||||
|
||||
get_link_err_nums() {
|
||||
find $IMAGE_PATH -type l ! -exec test -e {} \; -print | wc -l
|
||||
}
|
||||
|
||||
init_exagear_runtime()
|
||||
{
|
||||
## 解压文件
|
||||
if [ ! -e $IMAGE_PATH/VERSION ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
OLD_IMAGE_VER=`cat $IMAGE_PATH/VERSION`
|
||||
if [ "$OLD_IMAGE_VER" != "$IMAGE_VER" ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
echo "======$(get_link_err_nums)===="
|
||||
if [ "$(get_link_err_nums)" -gt "120" ];then
|
||||
extract_image
|
||||
fi
|
||||
|
||||
## mount /data/ dir to geust
|
||||
if [ -d $IMAGE_PATH ] && [ ! -d $IMAGE_PATH/data ];then
|
||||
mkdir $IMAGE_PATH/data
|
||||
cp $SHELL_DIR/exagear/vpaths-list $IMAGE_PATH/.exagear
|
||||
fi
|
||||
}
|
||||
|
||||
_DeleteRegistry()
|
||||
{
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD reg DELETE "$1" /f &> /dev/null
|
||||
}
|
||||
#########功能:删除注册表
|
||||
init_log_file()
|
||||
{
|
||||
if [ ! -d "$DEBUG_LOG" ];then
|
||||
return
|
||||
fi
|
||||
|
||||
LOG_DIR=$(realpath $DEBUG_LOG)
|
||||
if [ -d "$LOG_DIR" ];then
|
||||
LOG_FILE="${LOG_DIR}/${LOG_FILE##*/}.log"
|
||||
echo "" > "$LOG_FILE"
|
||||
debug_log "LOG_FILE=$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
debug_log_to_file()
|
||||
{
|
||||
if [ -d "$DEBUG_LOG" ];then
|
||||
echo -e "${1}" >> "$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
debug_log()
|
||||
{
|
||||
echo "${1}"
|
||||
}
|
||||
################log相关功能
|
||||
HelpApp()
|
||||
{
|
||||
echo " Extra Commands:"
|
||||
echo " -r/--reset Reset app to fix errors"
|
||||
echo " -e/--remove Remove deployed app files"
|
||||
echo " -h/--help Show program help info"
|
||||
}
|
||||
#############帮助文件
|
||||
FixLink()
|
||||
{
|
||||
if [ -d ${WINEPREFIX} ]; then
|
||||
CUR_DIR=$PWD
|
||||
cd "${WINEPREFIX}/dosdevices"
|
||||
rm c: z: y:
|
||||
ln -s -f ../drive_c c:
|
||||
ln -s -f / z:
|
||||
ln -s -f $HOME y:
|
||||
cd $CUR_DIR
|
||||
ls -l "${WINEPREFIX}/dosdevices"
|
||||
fi
|
||||
}
|
||||
###########会在应用启动和解压时执行,驱动器绑定
|
||||
DisableWrite()
|
||||
{
|
||||
if [ -d "${1}" ]; then
|
||||
chmod +w "${1}"
|
||||
rm -rf "${1}"
|
||||
fi
|
||||
|
||||
mkdir "${1}"
|
||||
chmod -w "${1}"
|
||||
}
|
||||
########如果有该文件夹则删除,然后再创建一个不允许写入的(这东西是被用在了QQ启动上,看来腾讯不怎么好对付)
|
||||
is_autostart()
|
||||
{
|
||||
AUTOSTART="/opt/deepinwine/tools/autostart"
|
||||
if [ -f "$AUTOSTART.all" ]&&[ -f "/opt/apps/$1/files/run.sh" ];then
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -f $AUTOSTART ];then
|
||||
grep -c "$1" $AUTOSTART > /dev/null
|
||||
return $?
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
#########自动启动相关,等用到了再研究
|
||||
urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
||||
#######url转义
|
||||
|
||||
#arg 1: windows process file path
|
||||
#arg 2-*: windows process args
|
||||
CallProcess()
|
||||
{
|
||||
#get file full path
|
||||
path="$1"
|
||||
path=$(echo ${path/c:/${WINEPREFIX}/drive_c})
|
||||
path=$(echo ${path//\\/\/})
|
||||
|
||||
#kill bloack process
|
||||
is_autostart $DEB_PACKAGE_NAME
|
||||
autostart=$?
|
||||
if [ $autostart -ne 0 ];then
|
||||
$SHELL_DIR/kill.sh "$BOTTLENAME" block
|
||||
fi
|
||||
|
||||
#change current dir to excute path
|
||||
path=$(dirname "$path")
|
||||
cd "$path"
|
||||
pwd
|
||||
|
||||
#Set default mime type
|
||||
if [ -n "$MIME_TYPE" ]; then
|
||||
xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE"
|
||||
fi
|
||||
# Disable winemenubuilder
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe /f
|
||||
debug_log_to_file "Starting process $* ..."
|
||||
############# WARNING: Here is the modified content: Now will run set-dwine-scale.sh
|
||||
/opt/durapps/spark-dwine-helper/scale-set-helper/set-wine-scale.sh "$WINEPREFIX"
|
||||
#env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$@" &
|
||||
env WINEPREFIX="$WINEPREFIX" $EMU_CMD $EMU_ARGS $WINE_CMD "$@" &
|
||||
|
||||
#start autobottle
|
||||
if [ $autostart -eq 0 ];then
|
||||
$SHELL_DIR/autostart_wine.sh $DEB_PACKAGE_NAME
|
||||
fi
|
||||
}
|
||||
###通用启动APP逻辑。对于没有被case捕捉的非适配APP,则直接执行此部分。似乎已经有了防止残留的功能
|
||||
###一些自定义的应用不会使用这个启动,而另一些则会调用这个
|
||||
###有设置mimetype和自动启动(这个暂时没分析)的功能
|
||||
|
||||
###########专属优化段:
|
||||
CallDouyin()
|
||||
{
|
||||
if [ -f "${WINEPREFIX}/drive_c/users/${USER}/Application Data/douyin" ]; then
|
||||
rm "${WINEPREFIX}/drive_c/users/${USER}/Application Data/douyin"
|
||||
mv ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/*.tmp ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/douyin
|
||||
chmod 755 ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/douyin
|
||||
fi
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallMuBu()
|
||||
{
|
||||
if [ -f "${WINEPREFIX}/drive_c/ProgramData/Microsoft/Windows/Start\ Menu/Programs/MuBu.lnk" ]; then
|
||||
chmod 555 ${WINEPREFIX}/drive_c/ProgramData/Microsoft/Windows/Start\ Menu/Programs/MuBu.lnk
|
||||
fi
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallFlyele()
|
||||
{
|
||||
if [ -w ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/飞项/Crashpad/reports ]; then
|
||||
rm -rf ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/飞项/Crashpad/reports/*
|
||||
chmod 555 ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/飞项/Crashpad/reports
|
||||
fi
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallZhuMu()
|
||||
{
|
||||
#change current dir to excute path
|
||||
path=$(dirname "$path")
|
||||
cd "$path"
|
||||
pwd
|
||||
|
||||
#Set default mime type
|
||||
if [ -n "$MIME_TYPE" ]; then
|
||||
xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE"
|
||||
fi
|
||||
|
||||
debug_log_to_file "Starting process $* ..."
|
||||
if [ -n "$2" ];then
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$1" "--url=$2" &
|
||||
else
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$1" &
|
||||
fi
|
||||
}
|
||||
|
||||
CallQQGame()
|
||||
{
|
||||
debug_log "run $1"
|
||||
$SHELL_DIR/kill.sh qqgame block
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$1" &
|
||||
}
|
||||
|
||||
CallQQ()
|
||||
{
|
||||
if [ ! -f "$WINEPREFIX/../.QQ_run" ]; then
|
||||
debug_log "first run time"
|
||||
$SHELL_DIR/add_hotkeys
|
||||
$SHELL_DIR/fontconfig
|
||||
touch "$WINEPREFIX/../.QQ_run"
|
||||
fi
|
||||
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QQ/Bin/QQLiveMPlayer"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QQ/Bin/QQLiveMPlayer1"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QzoneMusic"
|
||||
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QQBrowser"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Common Files/Tencent/QQBrowser"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/users/Public/Application Data/Tencent/QQBrowserBin"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/users/Public/Application Data/Tencent/QQBrowserDefault"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/QQBrowserDefault"
|
||||
|
||||
DisableWrite "${WINEPREFIX}/drive_c/users/Public/Application Data/Tencent/QQPCMgr"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Common Files/Tencent/QQPCMgr"
|
||||
|
||||
DisableWrite "${WINEPREFIX}/drive_c/Program Files/Common Files/Tencent/HuaYang"
|
||||
DisableWrite "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/HuaYang"
|
||||
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
|
||||
CallTIM()
|
||||
{
|
||||
if [ ! -f "$WINEPREFIX/../.QQ_run" ]; then
|
||||
debug_log "first run time"
|
||||
$SHELL_DIR/add_hotkeys
|
||||
####似乎是给dde-control-center添加快捷键
|
||||
$SHELL_DIR/fontconfig
|
||||
####暂时无法得知用途和用法
|
||||
# If the bottle not exists, run reg may cost lots of times
|
||||
# So create the bottle befor run reg
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD uninstaller --list
|
||||
touch $WINEPREFIX/../.QQ_run
|
||||
fi
|
||||
|
||||
CallProcess "$@"
|
||||
|
||||
#disable Tencent MiniBrowser
|
||||
_DeleteRegistry "HKCU\\Software\\Tencent\\MiniBrowser"
|
||||
}
|
||||
|
||||
CallWeChat()
|
||||
{
|
||||
export DISABLE_RENDER_CLIPBOARD=1
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallWangWang()
|
||||
{
|
||||
chmod 700 "$WINEPREFIX/drive_c/Program Files/AliWangWang/9.12.10C/wwbizsrv.exe"
|
||||
chmod 700 "$WINEPREFIX/drive_c/Program Files/Alibaba/wwbizsrv/wwbizsrv.exe"
|
||||
if [ $# = 3 ] && [ -z "$3" ];then
|
||||
EXEC_PATH="c:/Program Files/AliWangWang/9.12.10C/WWCmd.exe"
|
||||
env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$EXEC_PATH" "$2" &
|
||||
else
|
||||
CallProcess "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
CallWXWork()
|
||||
{
|
||||
if [ -d "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/Update" ]; then
|
||||
rm -rf "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/Update"
|
||||
fi
|
||||
if [ -d "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/upgrade" ]; then
|
||||
rm -rf "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/upgrade"
|
||||
fi
|
||||
#Support use native file dialog
|
||||
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallDingTalk()
|
||||
{
|
||||
debug_log "run $1"
|
||||
$SHELL_DIR/kill.sh DingTalk block
|
||||
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
|
||||
|
||||
CallMeiTuXiuXiu()
|
||||
{
|
||||
#set -- "$1" "${2#file://*}"
|
||||
local path=$(urldecode "$2")
|
||||
path=${path/file:\/\//}
|
||||
set -- "$1" "$path"
|
||||
if [ "$path" ];then
|
||||
CallProcess "$@"
|
||||
else
|
||||
CallProcess "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
CallFastReadPDF()
|
||||
{
|
||||
#set -- "$1" "${2#file://*}"
|
||||
local path=$(urldecode "$2")
|
||||
path=${path/file:\/\//}
|
||||
set -- "$1" "$path"
|
||||
if [ "$path" ];then
|
||||
CallProcess "$@"
|
||||
else
|
||||
CallProcess "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
CallEvernote()
|
||||
{
|
||||
#set -- "$1" "${2#file://*}"
|
||||
local path=$(urldecode "$2")
|
||||
path=${path/file:\/\//}
|
||||
set -- "$1" "$path"
|
||||
if [ "$path" ];then
|
||||
CallProcess "$@"
|
||||
else
|
||||
CallProcess "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
CallTencentVideo()
|
||||
{
|
||||
if [ -f "${WINEPREFIX}/drive_c/Program Files/Tencent/QQLive/Upgrade.dll" ]; then
|
||||
rm -rf "${WINEPREFIX}/drive_c/Program Files/Tencent/QQLive/Upgrade.dll"
|
||||
fi
|
||||
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallFoxmail()
|
||||
{
|
||||
sed -i '/LogPixels/d' ${WINEPREFIX}/user.reg
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallTHS()
|
||||
{
|
||||
$SHELL_DIR/kill.sh ths block
|
||||
|
||||
debug_log "Start run $1"
|
||||
#get file full path
|
||||
path="$1"
|
||||
path=$(echo ${path/c:/${WINEPREFIX}/drive_c})
|
||||
path=$(echo ${path//\\/\/})
|
||||
|
||||
#kill bloack process
|
||||
name="${path##*/}"
|
||||
$SHELL_DIR/kill.sh "$name" block
|
||||
|
||||
#change current dir to excute path
|
||||
path=$(dirname "$path")
|
||||
cd "$path"
|
||||
pwd
|
||||
|
||||
#Set default mime type
|
||||
if [ -n "$MIME_TYPE" ]; then
|
||||
xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE"
|
||||
fi
|
||||
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallQQGameV2()
|
||||
{
|
||||
debug_log "run $1"
|
||||
$SHELL_DIR/kill.sh QQMicroGameBox block
|
||||
CallProcess "$1" -action:force_download -appid:${2} -pid:8 -bin_version:1.1.2.4 -loginuin:
|
||||
}
|
||||
|
||||
|
||||
|
||||
CallPsCs6()
|
||||
{
|
||||
#get file full path
|
||||
path="$1"
|
||||
path=$(echo ${path/c:/${WINEPREFIX}/drive_c})
|
||||
path=$(echo ${path//\\/\/})
|
||||
|
||||
#kill bloack process
|
||||
name="${path##*/}"
|
||||
$SHELL_DIR/kill.sh "$name" block
|
||||
|
||||
#change current dir to excute path
|
||||
path=$(dirname "$path")
|
||||
cd "$path"
|
||||
pwd
|
||||
|
||||
#Set default mime type
|
||||
if [ -n "$MIME_TYPE" ]; then
|
||||
xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE"
|
||||
fi
|
||||
|
||||
debug_log_to_file "Starting process $* ..."
|
||||
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
CallIE8()
|
||||
{
|
||||
rm -f "$WINEPREFIX/system.reg"
|
||||
cp $APPDIR/system.reg "$WINEPREFIX/system.reg"
|
||||
CallProcess "$@"
|
||||
}
|
||||
|
||||
#####专属优化段结束
|
||||
|
||||
UnixUriToDosPath()
|
||||
{
|
||||
OPEN_FILE="$1"
|
||||
if [ -f "$OPEN_FILE" ]; then
|
||||
OPEN_FILE=$(realpath "$OPEN_FILE")
|
||||
OPEN_FILE="z:$OPEN_FILE"
|
||||
OPEN_FILE=$(echo $OPEN_FILE | sed -e 's/\//\\\\/g')
|
||||
fi
|
||||
echo $OPEN_FILE
|
||||
}
|
||||
|
||||
#arg 1: exec file path
|
||||
#arg 2: autostart ,or exec arg 1
|
||||
#arg 3: exec arg 2
|
||||
|
||||
#### CallApp段,根据容器名找专属优化,没有就走通用启动
|
||||
CallApp()
|
||||
{
|
||||
FixLink
|
||||
debug_log "CallApp $BOTTLENAME arg count $#: $*"
|
||||
|
||||
case $BOTTLENAME in
|
||||
"Deepin-WangWang")
|
||||
CallWangWang "$@"
|
||||
;;
|
||||
"Deepin-ZhuMu")
|
||||
CallZhuMu "$@"
|
||||
;;
|
||||
"Deepin-QQ"|"Wine-QQ"|"Spark-QQ"|"Deepin-QQ-Spark")
|
||||
CallQQ "$@"
|
||||
;;
|
||||
"Deepin-TIM"|"Spark-TIM")
|
||||
CallTIM "$@"
|
||||
;;
|
||||
"Deepin-QQGame"*)
|
||||
CallQQGame "$@"
|
||||
;;
|
||||
"Deepin-ATM")
|
||||
CallATM "$@"
|
||||
;;
|
||||
"Deepin-WeChat")
|
||||
CallWeChat "$@"
|
||||
;;
|
||||
"Deepin-WXWork"|"Spark-WeCom")
|
||||
CallWXWork "$@"
|
||||
;;
|
||||
"Deepin-Dding")
|
||||
CallDingTalk "$@"
|
||||
;;
|
||||
"Deepin-MTXX")
|
||||
CallMeiTuXiuXiu "$@"
|
||||
;;
|
||||
"Deepin-FastReadPDF")
|
||||
CallFastReadPDF "$@"
|
||||
;;
|
||||
"Deepin-Evernote")
|
||||
CallEvernote "$@"
|
||||
;;
|
||||
"Deepin-TencentVideo")
|
||||
CallTencentVideo "$@"
|
||||
;;
|
||||
"Deepin-Foxmail")
|
||||
CallFoxmail "$@"
|
||||
;;
|
||||
"Deepin-THS")
|
||||
CallTHS "$@"
|
||||
;;
|
||||
"Deepin-QQHlddz")
|
||||
CallQQGameV2 "$1" 363
|
||||
;;
|
||||
"Deepin-QQBydr")
|
||||
CallQQGameV2 "$1" 1104632801
|
||||
;;
|
||||
"Deepin-QQMnsj")
|
||||
CallQQGameV2 "$1" 1105856612
|
||||
;;
|
||||
"Deepin-QQSszb")
|
||||
CallQQGameV2 "$1" 1105640244
|
||||
;;
|
||||
"Deepin-CS6")
|
||||
CallPsCs6 "$@"
|
||||
;;
|
||||
"Spark-MuBu")
|
||||
CallMuBu "$@"
|
||||
;;
|
||||
"Spark-flyele")
|
||||
CallFlyele "$@"
|
||||
;;
|
||||
"Spark-douyin")
|
||||
CallDouyin "$@"
|
||||
;;
|
||||
"IE8")
|
||||
CallIE8 "$@"
|
||||
;;
|
||||
*)
|
||||
CallProcess "$@"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
ExtractApp()
|
||||
{
|
||||
mkdir -p "$1"
|
||||
7z x "$APPDIR/$APPTAR" -o"$1"
|
||||
mv "$1/drive_c/users/@current_user@" "$1/drive_c/users/$USER"
|
||||
sed -i "s#@current_user@#$USER#" $1/*.reg
|
||||
FixLink
|
||||
}
|
||||
DeployApp()
|
||||
{
|
||||
ExtractApp "$WINEPREFIX"
|
||||
|
||||
|
||||
echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION"
|
||||
|
||||
}
|
||||
RemoveApp()
|
||||
{
|
||||
rm -rf "$WINEPREFIX"
|
||||
}
|
||||
ResetApp()
|
||||
{
|
||||
debug_log "Reset $PACKAGENAME....."
|
||||
read -p "* Are you sure?(Y/N)" ANSWER
|
||||
if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" -o -z "$ANSWER" ]; then
|
||||
EvacuateApp
|
||||
DeployApp
|
||||
CallApp
|
||||
fi
|
||||
}
|
||||
UpdateApp()
|
||||
{
|
||||
if [ -f "$WINEPREFIX/PACKAGE_VERSION" ] && [ "$(cat "$WINEPREFIX/PACKAGE_VERSION")" = "$APPVER" ]; then
|
||||
return
|
||||
fi
|
||||
if [ -d "${WINEPREFIX}.tmpdir" ]; then
|
||||
rm -rf "${WINEPREFIX}.tmpdir"
|
||||
fi
|
||||
|
||||
case $BOTTLENAME in
|
||||
"Deepin-Intelligent" | "Deepin-QQ" | "Deepin-TIM" | "Deepin-WeChat" | "Deepin-WXWork" | "Deepin-Dding" | "Wine-QQ" | "Spark-QQ" | "Spark-weixin")
|
||||
rm -rf "$WINEPREFIX"
|
||||
DeployApp
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
ExtractApp "${WINEPREFIX}.tmpdir"
|
||||
$SHELL_DIR/updater -s "${WINEPREFIX}.tmpdir" -c "${WINEPREFIX}" -v
|
||||
|
||||
|
||||
rm -rf "${WINEPREFIX}.tmpdir"
|
||||
echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION"
|
||||
}
|
||||
RunApp()
|
||||
{
|
||||
progpid=$(ps -ef | grep "zenity --progress --title=${BOTTLENAME}" | grep -v grep)
|
||||
debug_log "run ${BOTTLENAME} progress pid $progpid"
|
||||
if [ -n "$progpid" ]; then
|
||||
debug_log "$BOTTLENAME is running"
|
||||
exit 0
|
||||
fi
|
||||
if [ -d "$WINEPREFIX" ]; then
|
||||
UpdateApp | progressbar "$BOTTLENAME" "更新$BOTTLENAME中..."
|
||||
else
|
||||
DeployApp | progressbar $BOTTLENAME "初始化$BOTTLENAME中..."
|
||||
fi
|
||||
|
||||
CallApp "$@"
|
||||
}
|
||||
|
||||
CreateBottle()
|
||||
{
|
||||
if [ -d "$WINEPREFIX" ]; then
|
||||
UpdateApp
|
||||
else
|
||||
DeployApp
|
||||
fi
|
||||
}
|
||||
|
||||
ParseArgs()
|
||||
{
|
||||
if [ $# -eq 4 ];then
|
||||
RunApp "$3"
|
||||
elif [ -f "$5" ];then
|
||||
if [ -n "$MIME_EXEC" ];then
|
||||
RunApp "$MIME_EXEC" "$(UnixUriToDosPath "$5")" "${@:6}"
|
||||
else
|
||||
RunApp "$3" "$(UnixUriToDosPath "$5")" "${@:6}"
|
||||
fi
|
||||
else
|
||||
RunApp "$3" "${@:5}"
|
||||
fi
|
||||
}
|
||||
|
||||
init_log_file
|
||||
|
||||
# Check if some visual feedback is possible
|
||||
if command -v zenity >/dev/null 2>&1; then
|
||||
progressbar()
|
||||
{
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel ||
|
||||
WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close
|
||||
}
|
||||
|
||||
else
|
||||
progressbar()
|
||||
{
|
||||
cat -
|
||||
}
|
||||
fi
|
||||
|
||||
|
||||
#####准备启动进程,分析在 https://shenmo7192.gitee.io/post/deepin-wine6%E7%9A%84run_v4%E8%84%9A%E6%9C%AC%E6%8E%A2%E7%B4%A2%E5%90%AF%E5%8A%A8%E6%96%B9%E5%BC%8F/
|
||||
if [ $# -lt 3 ]; then
|
||||
debug_log "参数个数小于3个"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BOTTLENAME="$1"
|
||||
WINEPREFIX="$HOME/.deepinwine/$1"
|
||||
|
||||
|
||||
APPDIR="/opt/apps/${DEB_PACKAGE_NAME}/files"
|
||||
if [ -f "$APPDIR/files.md5sum" ];then
|
||||
APPVER="$(cat $APPDIR/files.md5sum)"
|
||||
else
|
||||
APPVER="$2"
|
||||
fi
|
||||
|
||||
debug_log "Run $*"
|
||||
|
||||
#执行lnk文件通过判断第5个参数是否是“/Unix”来判断
|
||||
if [ "$4" == "/Unix" ];then
|
||||
RunApp "$3" "$4" "$5"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $# -lt 4 ]; then
|
||||
RunApp "$3"
|
||||
exit 0
|
||||
fi
|
||||
case $4 in
|
||||
"-r" | "--reset")
|
||||
ResetApp
|
||||
;;
|
||||
"-c" | "--create")
|
||||
CreateBottle
|
||||
;;
|
||||
"-e" | "--remove")
|
||||
RemoveApp
|
||||
;;
|
||||
"-u" | "--uri")
|
||||
ParseArgs "$@"
|
||||
;;
|
||||
"-f" | "--file")
|
||||
ParseArgs "$@"
|
||||
;;
|
||||
"-h" | "--help")
|
||||
HelpApp
|
||||
;;
|
||||
*)
|
||||
echo "Invalid option: $4"
|
||||
echo "Use -h|--help to get help"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
@@ -115,8 +115,13 @@ def ReadLocalInformation():
|
||||
ui.localWineList.setModel(nmodel)
|
||||
file.close()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
print("新建空列表")
|
||||
try:
|
||||
with open(f"{programPath}/winelist.json", "w") as file:
|
||||
file.write("[]")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||
|
||||
def InstallOtherWine():
|
||||
path = QtWidgets.QFileDialog.getOpenFileName(window, "选择 Wine", os.getenv("~"), "wine(wine);;wine64(wine64);;全部文件(*.*)")
|
||||
@@ -147,14 +152,17 @@ def InstallOtherWine():
|
||||
|
||||
def ChangeSources():
|
||||
global urlSources
|
||||
global internetWineSource
|
||||
sources = [ui.gitlinkAction, ui.ipv6Action, ui.localAction]
|
||||
for i in range(0, len(sources)):
|
||||
if sources[i].isChecked():
|
||||
urlSources = internetWineSourceList[i]
|
||||
internetWineSource = internetWineSourceList[i]
|
||||
# 读取信息
|
||||
ReadLocalInformation()
|
||||
ReadInternetInformation()
|
||||
break
|
||||
print(urlSources)
|
||||
|
||||
# 下面内容均翻译自 C++ 版本
|
||||
def ReadInternetInformation():
|
||||
|
||||