fix Windows build

- Updated README.md to include CMake command for installation.
- Improved win-deploy.cmake to handle executable path issues and added detailed logging for deployment steps.
- Introduced checks for runtime dependencies and optimized DLL copying logic to avoid unnecessary copies.
- Added additional MinGW runtime DLLs required for GStreamer and FFmpeg.
- Created idescriptor.rc for application versioning and resource management.
- Updated resources.qrc to include application icon.
- Modified AppsWidget to improve UI for install and download actions.
- Adjusted dnssd_service.h to conditionally include headers based on platform.
- Enhanced install_ipa.cpp with additional includes for better compatibility.
- Updated main.cpp to set up environment variables for GStreamer on Windows.
- Improved mainwindow.cpp to add a no devices detected page and integrate dependency checks.
- Cleaned up mainwindow.ui by removing unnecessary layout elements.
- Implemented check_deps.cpp and check_deps.h for verifying required dependencies on Windows.
- Created diagnose_dialog.cpp and diagnose_dialog.h for a dialog to display dependency checks.
- Developed diagnose_widget.cpp and diagnose_widget.h to manage and display dependency items.
- Enhanced sshterminalwidget.cpp to improve terminal handling on Windows.
- Updated welcomewidget.cpp to refine UI layout and spacing for better aesthetics.
This commit is contained in:
uncor3
2025-10-24 00:24:58 -07:00
parent 9d21afc5aa
commit 4b81d7bdf1
20 changed files with 1014 additions and 121 deletions
+70
View File
@@ -0,0 +1,70 @@
#include <string>
#include <windows.h>
bool CheckRegistry(HKEY hKeyRoot, LPCSTR subKey, LPCSTR displayNameToFind)
{
HKEY hKey;
if (RegOpenKeyExA(hKeyRoot, subKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) {
return false;
}
char keyName[256];
DWORD keyNameSize = sizeof(keyName);
DWORD index = 0;
while (RegEnumKeyExA(hKey, index++, keyName, &keyNameSize, NULL, NULL, NULL,
NULL) == ERROR_SUCCESS) {
HKEY appKey;
if (RegOpenKeyExA(hKey, keyName, 0, KEY_READ, &appKey) ==
ERROR_SUCCESS) {
char displayName[256];
DWORD displayNameSize = sizeof(displayName);
if (RegQueryValueExA(appKey, "DisplayName", NULL, NULL,
(LPBYTE)displayName,
&displayNameSize) == ERROR_SUCCESS) {
if (strcmp(displayName, displayNameToFind) == 0) {
RegCloseKey(appKey);
RegCloseKey(hKey);
return true;
}
}
RegCloseKey(appKey);
}
keyNameSize = sizeof(keyName);
}
RegCloseKey(hKey);
return false;
}
bool IsAppleMobileDeviceSupportInstalled()
{
if (CheckRegistry(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
"Apple Mobile Device Support")) {
return true;
}
if (CheckRegistry(HKEY_LOCAL_MACHINE,
"SOFTWARE\\WOW6432Node\\Microsoft\\Wi"
"ndows\\CurrentVersion\\Uninstall",
"Apple Mobile Device Support")) {
return true;
}
return false;
}
bool IsWinFspInstalled()
{
if (CheckRegistry(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
"WinFsp 2025")) {
return true;
}
if (CheckRegistry(HKEY_LOCAL_MACHINE,
"SOFTWARE\\WOW6432Node\\Microsoft\\Wi"
"ndows\\CurrentVersion\\Uninstall",
"WinFsp 2025")) {
return true;
}
return false;
}