diff options
| author | TrickyLeifa <date.epoch@gmail.com> | 2024-05-15 00:00:17 +0200 |
|---|---|---|
| committer | TrickyLeifa <date.epoch@gmail.com> | 2024-05-15 00:04:16 +0200 |
| commit | c9f52b7223685d2e7fca925594171f94dd8c6e3b (patch) | |
| tree | 740bb32a40da98a4d52836432f59a16b31333900 /src/hardware_functions.cpp | |
| parent | 951766666621fa77e257e6b5616fe4ab1eb2a52f (diff) | |
Ported to CMake, ...
* Ported the project to CMake
* Android and Mac support dropped for the time
being.
* Tests, BASS and Discord-RPC are now options
* Restructured and reformated the project.
* Merged `include` and `src`
* Renamed `resource` to `data`
* Renamed various files
* External libraries headers are no longer included in `src`
* Replaced header guards with #pragma once
* Multiple refactors (keywords, headers)
* Added Qt6 compatibility
* Removed various unused functions and headers
* Reworked AOPacket
* When content is passed to AOPacket, it should be ensured that the content is already decoded.
* Encoding/decoding are now static methods.
* Fixed various memory leaks
* Removed animation code for AOImage
* AOImage is always using static images
* Simplified ChatLogPiece
Diffstat (limited to 'src/hardware_functions.cpp')
| -rw-r--r-- | src/hardware_functions.cpp | 81 |
1 files changed, 43 insertions, 38 deletions
diff --git a/src/hardware_functions.cpp b/src/hardware_functions.cpp index 14296803..67b5cafa 100644 --- a/src/hardware_functions.cpp +++ b/src/hardware_functions.cpp @@ -3,50 +3,54 @@ #include <QDebug> #include <QtGlobal> +#include <stdio.h> + #if (defined(_WIN32) || defined(_WIN64)) +// clang-format off #include <windows.h> #include <sddl.h> +// clang-format on QString get_hdid() { - HANDLE hToken; - HANDLE pHandle; - PTOKEN_USER pToken; - DWORD uSize = 0; - LPWSTR HDIDParam; - - pHandle = GetCurrentProcess(); - OpenProcessToken(pHandle, TOKEN_QUERY, &hToken); - if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, NULL, 0, &uSize)) + HANDLE hToken; + HANDLE pHandle; + PTOKEN_USER pToken; + DWORD uSize = 0; + LPWSTR HDIDParam; + + pHandle = GetCurrentProcess(); + OpenProcessToken(pHandle, TOKEN_QUERY, &hToken); + if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, NULL, 0, &uSize)) + { + if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { - if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { - CloseHandle(hToken); - return "gxsps32sa9fnwic92mfbs1"; - } + CloseHandle(hToken); + return "gxsps32sa9fnwic92mfbs1"; } + } - pToken = (PTOKEN_USER)GlobalAlloc(GPTR, uSize); - - if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, pToken, uSize, &uSize)) - { - CloseHandle(hToken); - return "gxsps32sa9fnwic92mfbs2"; - } + pToken = (PTOKEN_USER)GlobalAlloc(GPTR, uSize); - ConvertSidToStringSidW(pToken->User.Sid, &HDIDParam); - QString returnHDID = QString::fromWCharArray(HDIDParam); + if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, pToken, uSize, &uSize)) + { CloseHandle(hToken); - return returnHDID; + return "gxsps32sa9fnwic92mfbs2"; + } + + ConvertSidToStringSidW(pToken->User.Sid, &HDIDParam); + QString returnHDID = QString::fromWCharArray(HDIDParam); + CloseHandle(hToken); + return returnHDID; } #elif defined(ANDROID) +#include <QtAndroidExtras/QtAndroid> + QString get_hdid() { - QAndroidJniObject appctx = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;").callObjectMethod("getApplicationContext","()Landroid/content/Context;"); - QAndroidJniObject androidId = QAndroidJniObject::callStaticObjectMethod("android/provider/Settings$Secure","getString", - "(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;", - appctx.callObjectMethod("getContentResolver", "()Landroid/content/ContentResolver;").object<jobject>(), - QAndroidJniObject::fromString("android_id").object<jstring>()); - return androidId.toString(); + QAndroidJniObject appctx = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;").callObjectMethod("getApplicationContext", "()Landroid/content/Context;"); + QAndroidJniObject androidId = QAndroidJniObject::callStaticObjectMethod("android/provider/Settings$Secure", "getString", "(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;", appctx.callObjectMethod("getContentResolver", "()Landroid/content/ContentResolver;").object<jobject>(), QAndroidJniObject::fromString("android_id").object<jstring>()); + return androidId.toString(); } #elif QT_VERSION < QT_VERSION_CHECK(5, 11, 0) #if (defined(LINUX) || defined(__linux__)) @@ -58,7 +62,8 @@ QString get_hdid() { machineId = QSysInfo::machineUniqueId(); - if (machineId.isEmpty()) { + if (machineId.isEmpty()) + { return "gxsps32sa9fnwic92mfbs2"; } return QString(machineId); @@ -74,16 +79,16 @@ QString get_hdid() CFStringRef serial; char buffer[64] = {0}; QString hdid; - io_service_t platformExpert = IOServiceGetMatchingService( - kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice")); - if (platformExpert) { - CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty( - platformExpert, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, - 0); - if (serialNumberAsCFString) { + io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice")); + if (platformExpert) + { + CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, 0); + if (serialNumberAsCFString) + { serial = (CFStringRef)serialNumberAsCFString; } - if (CFStringGetCString(serial, buffer, 64, kCFStringEncodingUTF8)) { + if (CFStringGetCString(serial, buffer, 64, kCFStringEncodingUTF8)) + { hdid = buffer; } |
