mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-23 22:04:55 +02:00
parent
d98ecfbb84
commit
8449d9f5ea
@ -161,13 +161,88 @@ INT_PTR CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM /
|
|||||||
_debugInfoStr += (doLocalConf ? TEXT("ON") : TEXT("OFF"));
|
_debugInfoStr += (doLocalConf ? TEXT("ON") : TEXT("OFF"));
|
||||||
_debugInfoStr += TEXT("\r\n");
|
_debugInfoStr += TEXT("\r\n");
|
||||||
|
|
||||||
// OS version
|
// OS information
|
||||||
_debugInfoStr += TEXT("OS : ");
|
HKEY hKey;
|
||||||
_debugInfoStr += (NppParameters::getInstance())->getWinVersionStr();
|
DWORD dataSize = 0;
|
||||||
|
|
||||||
|
TCHAR szProductName[96] = {'\0'};
|
||||||
|
TCHAR szCurrentBuildNumber[32] = {'\0'};
|
||||||
|
TCHAR szReleaseId[32] = {'\0'};
|
||||||
|
DWORD dwUBR = 0;
|
||||||
|
TCHAR szUBR[12] = TEXT("0");
|
||||||
|
|
||||||
|
// NOTE: RegQueryValueExW is not guaranteed to return null-terminated strings
|
||||||
|
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"), 0, KEY_READ, &hKey) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
dataSize = sizeof(szProductName);
|
||||||
|
RegQueryValueExW(hKey, TEXT("ProductName"), NULL, NULL, reinterpret_cast<LPBYTE>(szProductName), &dataSize);
|
||||||
|
szProductName[sizeof(szProductName) / sizeof(TCHAR) - 1] = '\0';
|
||||||
|
|
||||||
|
dataSize = sizeof(szReleaseId);
|
||||||
|
RegQueryValueExW(hKey, TEXT("ReleaseId"), NULL, NULL, reinterpret_cast<LPBYTE>(szReleaseId), &dataSize);
|
||||||
|
szReleaseId[sizeof(szReleaseId) / sizeof(TCHAR) - 1] = '\0';
|
||||||
|
|
||||||
|
dataSize = sizeof(szCurrentBuildNumber);
|
||||||
|
RegQueryValueExW(hKey, TEXT("CurrentBuildNumber"), NULL, NULL, reinterpret_cast<LPBYTE>(szCurrentBuildNumber), &dataSize);
|
||||||
|
szCurrentBuildNumber[sizeof(szCurrentBuildNumber) / sizeof(TCHAR) - 1] = '\0';
|
||||||
|
|
||||||
|
dataSize = sizeof(DWORD);
|
||||||
|
if (RegQueryValueExW(hKey, TEXT("UBR"), NULL, NULL, reinterpret_cast<LPBYTE>(&dwUBR), &dataSize) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
generic_sprintf(szUBR, TEXT("%u"), dwUBR);
|
||||||
|
}
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get alternative OS information
|
||||||
|
if (szProductName[0] == '\0')
|
||||||
|
{
|
||||||
|
generic_sprintf(szProductName, TEXT("%s"), (NppParameters::getInstance())->getWinVersionStr().c_str());
|
||||||
|
}
|
||||||
|
if (szCurrentBuildNumber[0] == '\0')
|
||||||
|
{
|
||||||
|
DWORD dwVersion = GetVersion();
|
||||||
|
if (dwVersion < 0x80000000)
|
||||||
|
{
|
||||||
|
generic_sprintf(szCurrentBuildNumber, TEXT("%u"), HIWORD(dwVersion));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_debugInfoStr += TEXT("OS Name : ");
|
||||||
|
_debugInfoStr += szProductName;
|
||||||
_debugInfoStr += TEXT(" (");
|
_debugInfoStr += TEXT(" (");
|
||||||
_debugInfoStr += (NppParameters::getInstance())->getWinVerBitStr();
|
_debugInfoStr += (NppParameters::getInstance())->getWinVerBitStr();
|
||||||
_debugInfoStr += TEXT(")");
|
_debugInfoStr += TEXT(") ");
|
||||||
_debugInfoStr += TEXT("\r\n");
|
_debugInfoStr += TEXT("\r\n");
|
||||||
|
|
||||||
|
if (szReleaseId[0] != '\0')
|
||||||
|
{
|
||||||
|
_debugInfoStr += TEXT("OS Version : ");
|
||||||
|
_debugInfoStr += szReleaseId;
|
||||||
|
_debugInfoStr += TEXT("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szCurrentBuildNumber[0] != '\0')
|
||||||
|
{
|
||||||
|
_debugInfoStr += TEXT("OS Build : ");
|
||||||
|
_debugInfoStr += szCurrentBuildNumber;
|
||||||
|
_debugInfoStr += TEXT(".");
|
||||||
|
_debugInfoStr += szUBR;
|
||||||
|
_debugInfoStr += TEXT("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detect WINE
|
||||||
|
PWINEGETVERSION pWGV = (PWINEGETVERSION)GetProcAddress(GetModuleHandle(TEXT("ntdll.dll")), "wine_get_version");
|
||||||
|
if (pWGV != NULL)
|
||||||
|
{
|
||||||
|
TCHAR szWINEVersion[32];
|
||||||
|
generic_sprintf(szWINEVersion, TEXT("%hs"), pWGV());
|
||||||
|
|
||||||
|
_debugInfoStr += TEXT("WINE : ");
|
||||||
|
_debugInfoStr += szWINEVersion;
|
||||||
|
_debugInfoStr += TEXT("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
// Plugins
|
// Plugins
|
||||||
_debugInfoStr += TEXT("Plugins : ");
|
_debugInfoStr += TEXT("Plugins : ");
|
||||||
|
@ -90,6 +90,7 @@ protected:
|
|||||||
virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
typedef const CHAR * (__cdecl * PWINEGETVERSION)();
|
||||||
generic_string _debugInfoStr;
|
generic_string _debugInfoStr;
|
||||||
bool _isAdmin = false;
|
bool _isAdmin = false;
|
||||||
generic_string _loadedPlugins;
|
generic_string _loadedPlugins;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user