diff --git a/VM-source/.qtc_clangd/compile_commands.json b/VM-source/.qtc_clangd/compile_commands.json
index 5f143b5..cb25512 100644
--- a/VM-source/.qtc_clangd/compile_commands.json
+++ b/VM-source/.qtc_clangd/compile_commands.json
@@ -7,7 +7,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -77,7 +77,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -147,7 +147,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -217,7 +217,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -287,7 +287,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -357,7 +357,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -427,7 +427,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -497,7 +497,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -567,7 +567,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -637,7 +637,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -707,7 +707,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -777,7 +777,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -847,7 +847,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -917,7 +917,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -987,7 +987,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -1057,77 +1057,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
- "-nostdinc",
- "-nostdinc++",
- "-pipe",
- "-std=gnu++11",
- "-Wall",
- "-Wextra",
- "-D_REENTRANT",
- "-fPIC",
- "-fsyntax-only",
- "-m64",
- "--target=x86_64-linux-gnu",
- "-DQ_CREATOR_RUN",
- "-DQT_DEPRECATED_WARNINGS",
- "-DQT_NO_DEBUG",
- "-DQT_WIDGETS_LIB",
- "-DQT_GUI_LIB",
- "-DQT_NETWORK_LIB",
- "-DQT_CORE_LIB",
- "-I",
- "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source",
- "-I",
- "/usr/include/x86_64-linux-gnu/qt5",
- "-I",
- "/usr/include/x86_64-linux-gnu/qt5/QtWidgets",
- "-I",
- "/usr/include/x86_64-linux-gnu/qt5/QtGui",
- "-I",
- "/usr/include/x86_64-linux-gnu/qt5/QtNetwork",
- "-I",
- "/usr/include/x86_64-linux-gnu/qt5/QtCore",
- "-I",
- "/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++",
- "-isystem",
- "/usr/include/c++/11",
- "-isystem",
- "/usr/include/x86_64-linux-gnu/c++/11",
- "-isystem",
- "/usr/include/c++/11/backward",
- "-isystem",
- "/usr/local/include",
- "-isystem",
- "/usr/lib/llvm-13/lib/clang/13.0.1/include",
- "-isystem",
- "/usr/include/x86_64-linux-gnu",
- "-isystem",
- "/usr/include",
- "-fmessage-length=0",
- "-fdiagnostics-show-note-include-stack",
- "-fretain-comments-from-system-headers",
- "-fmacro-backtrace-limit=0",
- "-ferror-limit=1000",
- "-x",
- "c++-header",
- "-Wno-unknown-pragmas",
- "-Wno-unknown-warning-option",
- "-Wno-documentation-unknown-command",
- "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
- ],
- "directory": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.qtc_clangd",
- "file": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
-},
-{
- "arguments": [
- "clang",
- "-I",
- "/usr/share/qtcreator/cplusplus/wrappedQtHeaders",
- "-I",
- "/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
- "-I",
- "/tmp/QtCreator-NXqKOr/clang-uiheader-YSsUJt",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -1188,5 +1118,75 @@
],
"directory": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.qtc_clangd",
"file": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_qemusetting.h"
+},
+{
+ "arguments": [
+ "clang",
+ "-I",
+ "/usr/share/qtcreator/cplusplus/wrappedQtHeaders",
+ "-I",
+ "/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
+ "-I",
+ "/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
+ "-nostdinc",
+ "-nostdinc++",
+ "-pipe",
+ "-std=gnu++11",
+ "-Wall",
+ "-Wextra",
+ "-D_REENTRANT",
+ "-fPIC",
+ "-fsyntax-only",
+ "-m64",
+ "--target=x86_64-linux-gnu",
+ "-DQ_CREATOR_RUN",
+ "-DQT_DEPRECATED_WARNINGS",
+ "-DQT_NO_DEBUG",
+ "-DQT_WIDGETS_LIB",
+ "-DQT_GUI_LIB",
+ "-DQT_NETWORK_LIB",
+ "-DQT_CORE_LIB",
+ "-I",
+ "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source",
+ "-I",
+ "/usr/include/x86_64-linux-gnu/qt5",
+ "-I",
+ "/usr/include/x86_64-linux-gnu/qt5/QtWidgets",
+ "-I",
+ "/usr/include/x86_64-linux-gnu/qt5/QtGui",
+ "-I",
+ "/usr/include/x86_64-linux-gnu/qt5/QtNetwork",
+ "-I",
+ "/usr/include/x86_64-linux-gnu/qt5/QtCore",
+ "-I",
+ "/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++",
+ "-isystem",
+ "/usr/include/c++/11",
+ "-isystem",
+ "/usr/include/x86_64-linux-gnu/c++/11",
+ "-isystem",
+ "/usr/include/c++/11/backward",
+ "-isystem",
+ "/usr/local/include",
+ "-isystem",
+ "/usr/lib/llvm-13/lib/clang/13.0.1/include",
+ "-isystem",
+ "/usr/include/x86_64-linux-gnu",
+ "-isystem",
+ "/usr/include",
+ "-fmessage-length=0",
+ "-fdiagnostics-show-note-include-stack",
+ "-fretain-comments-from-system-headers",
+ "-fmacro-backtrace-limit=0",
+ "-ferror-limit=1000",
+ "-x",
+ "c++-header",
+ "-Wno-unknown-pragmas",
+ "-Wno-unknown-warning-option",
+ "-Wno-documentation-unknown-command",
+ "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
+ ],
+ "directory": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.qtc_clangd",
+ "file": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
}
]
\ No newline at end of file
diff --git a/VM-source/buildvbox.cpp b/VM-source/buildvbox.cpp
index 62694fb..804ab1e 100644
--- a/VM-source/buildvbox.cpp
+++ b/VM-source/buildvbox.cpp
@@ -106,7 +106,7 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
//vbox *box = new vbox("Window");
//vbox vm("Windows");
qemu vm("Windows");
-
+ bool setISOAlready = 0;
switch (id) {
case 0:
vm.Create("Windows7");
@@ -129,20 +129,42 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
vm.Create("Windows11_64");
vm.SetDisplayMemory(128);
vm.EnabledUEFI(true);
+ setISOAlready = 1;
+ break;
+ case 5:
+ vm.Create("WindowsXP_32");
+ vm.SetDisplayMemory(32);
+ setISOAlready = 1;
+ break;
+ case 6:
+ vm.Create("WindowsNT_64");
+ vm.SetDisplayMemory(32);
+ setISOAlready = 1;
+ break;
+ case 7:
+ vm.Create("WindowsNT_64");
+ vm.SetDisplayMemory(32);
+ vm.EnabledUEFI(true);
+ setISOAlready = 1;
break;
}
vm.CreateDiskControl();
//vm.CreateDiskControl("storage_controller_2");
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
- vm.MountISO(isoPath, "storage_controller_1", 0, 1);
- switch (id) {
- case 0:
- vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
- break;
- case 1:
- vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
- break;
+ if(!setISOAlready){
+ vm.MountISO(isoPath, "storage_controller_1", 0, 1);
+ switch (id) {
+ case 0:
+ vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
+ break;
+ case 1:
+ vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
+ break;
+ }
+ }
+ else{
+ vm.AutoInstall(isoPath);
}
/*vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
@@ -184,7 +206,7 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
//vbox *box = new vbox("Window");
vbox vm("Windows");
//qemu vm("Windows");
-
+ bool setISOAlready = 1;
switch (id) {
case 0:
vm.Create("Windows7");
@@ -207,22 +229,44 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
vm.Create("Windows11_64");
vm.SetDisplayMemory(128);
vm.EnabledUEFI(true);
+ setISOAlready = 1;
break;
- }
+ case 5:
+ vm.Create("WindowsXP_32");
+ vm.SetDisplayMemory(32);
+ setISOAlready = 1;
+ break;
+ case 6:
+ vm.Create("WindowsNT_64");
+ vm.SetDisplayMemory(32);
+ setISOAlready = 1;
+ break;
+ case 7:
+ vm.Create("WindowsNT_64");
+ vm.SetDisplayMemory(32);
+ vm.EnabledUEFI(true);
+ setISOAlready = 1;
+ break;
+ }
QDir dir("/home/gfdgd_xi/Qemu/Windows/");
dir.mkpath("/home/gfdgd_xi/Qemu/Windows/");
vm.CreateDiskControl();
//vm.CreateDiskControl("storage_controller_2");
vm.CreateDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi", 131072);
vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi");
- vm.MountISO(isoPath, "storage_controller_1", 0, 1);
- switch (id) {
- case 0:
- vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
- break;
- case 1:
- vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
- break;
+ if(!setISOAlready){
+ vm.MountISO(isoPath, "storage_controller_1", 0, 1);
+ switch (id) {
+ case 0:
+ vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
+ break;
+ case 1:
+ vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
+ break;
+ }
+ }
+ else{
+ vm.AutoInstall(isoPath);
}
// 判断 VirtualBox Guest ISO 是否存在
diff --git a/VM-source/mainwindow.cpp b/VM-source/mainwindow.cpp
index 526fa15..2bc9d99 100755
--- a/VM-source/mainwindow.cpp
+++ b/VM-source/mainwindow.cpp
@@ -197,6 +197,9 @@ void MainWindow::on_install_clicked()
}
break;
case 4:
+ case 5:
+ case 6:
+ case 7:
if(ui->vmChooser->currentIndex() == 0){
QMessageBox::warning(this, "提示", "Qemu 不支持该选项!");
return;
diff --git a/VM-source/mainwindow.ui b/VM-source/mainwindow.ui
index 2a0102f..07fc270 100755
--- a/VM-source/mainwindow.ui
+++ b/VM-source/mainwindow.ui
@@ -99,6 +99,21 @@
安装 WIndows 11(不支持自动安装)
+ -
+
+ 安装其他 Windows XP(支持自动安装,只支持 VirtualBox)
+
+
+ -
+
+ 安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox)
+
+
+ -
+
+ 安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox)
+
+
diff --git a/VM-source/qemu.cpp b/VM-source/qemu.cpp
index 8a903e2..b81a20e 100644
--- a/VM-source/qemu.cpp
+++ b/VM-source/qemu.cpp
@@ -133,3 +133,6 @@ int qemu::EnabledUEFI(bool status){
}
return 1;
}
+int qemu::AutoInstall(QString iso){
+ return 0;
+}
diff --git a/VM-source/qemu.h b/VM-source/qemu.h
index f28236c..46d7a34 100644
--- a/VM-source/qemu.h
+++ b/VM-source/qemu.h
@@ -39,6 +39,7 @@ public:
int SetKeyboardPS2();
int OpenUSB();
int EnabledUEFI(bool status);
+ int AutoInstall(QString iso);
private:
QString commandOption = "";
diff --git a/VM-source/vbox.cpp b/VM-source/vbox.cpp
index 4f3894e..0cdb953 100644
--- a/VM-source/vbox.cpp
+++ b/VM-source/vbox.cpp
@@ -108,3 +108,6 @@ int vbox::EnabledUEFI(bool status){
}
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --firmware=bios").toLatin1());
}
+int vbox::AutoInstall(QString iso){
+ return system(("vboxmanage unattended install '" + name + "' '--iso=" + iso + "'").toLatin1());
+}
diff --git a/VM-source/vbox.h b/VM-source/vbox.h
index cc02198..00e92a8 100644
--- a/VM-source/vbox.h
+++ b/VM-source/vbox.h
@@ -39,7 +39,7 @@ public:
int SetKeyboardPS2();
int OpenUSB();
int EnabledUEFI(bool status);
-
+ int AutoInstall(QString iso);
private:
};
diff --git a/deb/DEBIAN/control b/deb/DEBIAN/control
index 65abcf9..06eb3ee 100755
--- a/deb/DEBIAN/control
+++ b/deb/DEBIAN/control
@@ -9,7 +9,7 @@ Check: binaries
Type: binary, udeb
Priority: optional
Depends: python3, python3-pil, libc6, python3-pil.imagetk, python3-pyquery, aria2, curl, unrar | unrar-free , unzip, python3-requests, python3-pyqt5, python3-psutil, deepin-terminal | mate-terminal | gnome-terminal | xfce4-terminal, python3-dbus, python3-pip, p7zip-full, sudo, python3-pyperclip, bubblewrap, zenity
-Recommends: winbind, wimtools, python3-pyqt5.qtwebengine, binfmt-support, libc6:i386, libc6:armhf
+Recommends: winbind, wimtools, python3-pyqt5.qtwebengine, binfmt-support, libc6:i386, libc6:armhf, libwine
Section: utils
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52