mirror of
https://github.com/iDescriptor/iDescriptor.git
synced 2026-06-22 03:45:51 +08:00
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:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user