mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Added OS name and architecture to the about dialog. Also moved GetPlatformName() from the SysInfo plugin to Platform namespace.
This commit is contained in:
parent
d00d4bb313
commit
b2c4bb826a
@ -56,4 +56,110 @@ Version GetVersion()
|
|||||||
return s_Version;
|
return s_Version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LPCWSTR GetPlatformName()
|
||||||
|
{
|
||||||
|
OSVERSIONINFOEX osvi = { sizeof(OSVERSIONINFOEX) };
|
||||||
|
if (GetVersionEx((OSVERSIONINFO*)&osvi))
|
||||||
|
{
|
||||||
|
if (osvi.dwMajorVersion == 5)
|
||||||
|
{
|
||||||
|
if (osvi.dwMinorVersion == 2)
|
||||||
|
{
|
||||||
|
return L"Windows 2003";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 1)
|
||||||
|
{
|
||||||
|
return L"Windows XP";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (osvi.dwMinorVersion == 3 && osvi.wProductType == VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows 8.1";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 3 && osvi.wProductType != VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows Server 2012 R2";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 2 && osvi.wProductType == VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows 8";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 2 && osvi.wProductType != VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows Server 2012";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 1 && osvi.wProductType == VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows 7";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 1 && osvi.wProductType != VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows Server 2008 R2";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 0 && osvi.wProductType == VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows Vista";
|
||||||
|
}
|
||||||
|
else if (osvi.dwMinorVersion == 0 && osvi.wProductType != VER_NT_WORKSTATION)
|
||||||
|
{
|
||||||
|
return L"Windows Server 2008";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return L"Unknown";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Returns |true| if the OS architecture can be found (either 32-bit or 64-bit),
|
||||||
|
** or |false| if it cannot be determined.
|
||||||
|
**
|
||||||
|
** Note: IsWow64Process was introduced with Windows XP SP2.
|
||||||
|
*/
|
||||||
|
bool GetPlatformBit(bool& is64Bit)
|
||||||
|
{
|
||||||
|
#if _WIN64
|
||||||
|
|
||||||
|
is64Bit = true;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
#elif _WIN32
|
||||||
|
|
||||||
|
BOOL isWow64 = FALSE;
|
||||||
|
|
||||||
|
LPFN_ISWOW64PROCESS fnIsWow64Process =
|
||||||
|
(LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(L"kernel32"), "IsWow64Process");
|
||||||
|
|
||||||
|
if (fnIsWow64Process)
|
||||||
|
{
|
||||||
|
if (!fnIsWow64Process(GetCurrentProcess(), &isWow64))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isWow64)
|
||||||
|
{
|
||||||
|
is64Bit = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
is64Bit = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Platform
|
} // namespace Platform
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
namespace Platform {
|
namespace Platform {
|
||||||
|
|
||||||
|
typedef BOOL(WINAPI * LPFN_ISWOW64PROCESS)(HANDLE hProcess, PBOOL Wow64Process);
|
||||||
|
|
||||||
enum Version
|
enum Version
|
||||||
{
|
{
|
||||||
WinXP,
|
WinXP,
|
||||||
@ -30,6 +32,8 @@ enum Version
|
|||||||
};
|
};
|
||||||
|
|
||||||
Version GetVersion();
|
Version GetVersion();
|
||||||
|
LPCWSTR GetPlatformName();
|
||||||
|
bool GetPlatformBit(bool& is64Bit);
|
||||||
|
|
||||||
#define RM_PLATFORM_DECLARE_HELPERS(ver) \
|
#define RM_PLATFORM_DECLARE_HELPERS(ver) \
|
||||||
inline bool IsAtMost ## ver() { return GetVersion() <= ver; } \
|
inline bool IsAtMost ## ver() { return GetVersion() <= ver; } \
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "DialogAbout.h"
|
#include "DialogAbout.h"
|
||||||
#include "../Version.h"
|
#include "../Version.h"
|
||||||
|
#include "../Common/Platform.h"
|
||||||
|
|
||||||
WINDOWPLACEMENT DialogAbout::c_WindowPlacement = {0};
|
WINDOWPLACEMENT DialogAbout::c_WindowPlacement = {0};
|
||||||
DialogAbout* DialogAbout::c_Dialog = nullptr;
|
DialogAbout* DialogAbout::c_Dialog = nullptr;
|
||||||
@ -1206,17 +1207,20 @@ void DialogAbout::TabVersion::Create(HWND owner)
|
|||||||
CT_LINKLABEL(Id_LicenseLink, ID_STR_COPYRIGHTNOTICE,
|
CT_LINKLABEL(Id_LicenseLink, ID_STR_COPYRIGHTNOTICE,
|
||||||
28, 26, 300, 9,
|
28, 26, 300, 9,
|
||||||
WS_VISIBLE, 0),
|
WS_VISIBLE, 0),
|
||||||
CT_LABEL(Id_PathLabel, 0,
|
CT_LABEL(Id_WinVerLabel, 0,
|
||||||
0, 43, 360, 9,
|
0, 43, 360, 9,
|
||||||
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
||||||
CT_LABEL(Id_IniFileLabel, 0,
|
CT_LABEL(Id_PathLabel, 0,
|
||||||
0, 56, 360, 9,
|
0, 56, 360, 9,
|
||||||
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
||||||
CT_LABEL(Id_SkinPathLabel, 0,
|
CT_LABEL(Id_IniFileLabel, 0,
|
||||||
0, 69, 360, 9,
|
0, 69, 360, 9,
|
||||||
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
||||||
|
CT_LABEL(Id_SkinPathLabel, 0,
|
||||||
|
0, 82, 360, 9,
|
||||||
|
WS_VISIBLE | SS_ENDELLIPSIS | SS_NOPREFIX, 0),
|
||||||
CT_BUTTON(Id_CopyButton, ID_STR_COPYTOCLIPBOARD,
|
CT_BUTTON(Id_CopyButton, ID_STR_COPYTOCLIPBOARD,
|
||||||
0, 85, buttonWidth + 25, 14,
|
0, 98, buttonWidth + 25, 14,
|
||||||
WS_VISIBLE | WS_TABSTOP, 0)
|
WS_VISIBLE | WS_TABSTOP, 0)
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1234,8 +1238,21 @@ void DialogAbout::TabVersion::Initialize()
|
|||||||
_snwprintf_s(tmpSz, _TRUNCATE, L"%s%s r%i %s (%s)", APPVERSION, revision_beta ? L" beta" : L"", revision_number, APPBITS, APPDATE);
|
_snwprintf_s(tmpSz, _TRUNCATE, L"%s%s r%i %s (%s)", APPVERSION, revision_beta ? L" beta" : L"", revision_number, APPBITS, APPDATE);
|
||||||
SetWindowText(item, tmpSz);
|
SetWindowText(item, tmpSz);
|
||||||
|
|
||||||
|
item = GetControl(Id_WinVerLabel);
|
||||||
|
std::wstring text = Platform::GetPlatformName();
|
||||||
|
bool is64Bit = false;
|
||||||
|
if (Platform::GetPlatformBit(is64Bit))
|
||||||
|
{
|
||||||
|
text.append(is64Bit ? L" (64-bit)" : L" (32-bit)");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text.append(L" (???-bit)");
|
||||||
|
}
|
||||||
|
SetWindowText(item, text.c_str());
|
||||||
|
|
||||||
item = GetControl(Id_PathLabel);
|
item = GetControl(Id_PathLabel);
|
||||||
std::wstring text = L"Path: " + GetRainmeter().GetPath();
|
text = L"Path: " + GetRainmeter().GetPath();
|
||||||
SetWindowText(item, text.c_str());
|
SetWindowText(item, text.c_str());
|
||||||
|
|
||||||
item = GetControl(Id_IniFileLabel);
|
item = GetControl(Id_IniFileLabel);
|
||||||
|
@ -143,6 +143,7 @@ private:
|
|||||||
Id_VersionLabel,
|
Id_VersionLabel,
|
||||||
Id_HomeLink,
|
Id_HomeLink,
|
||||||
Id_LicenseLink,
|
Id_LicenseLink,
|
||||||
|
Id_WinVerLabel,
|
||||||
Id_PathLabel,
|
Id_PathLabel,
|
||||||
Id_IniFileLabel,
|
Id_IniFileLabel,
|
||||||
Id_SkinPathLabel,
|
Id_SkinPathLabel,
|
||||||
|
@ -30,6 +30,11 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="SysInfo.cpp" />
|
<ClCompile Include="SysInfo.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Common\Common.vcxproj">
|
||||||
|
<Project>{19312085-aa51-4bd6-be92-4b6098cca539}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "../API/RainmeterAPI.h"
|
#include "../API/RainmeterAPI.h"
|
||||||
#include "../../Library/Export.h"
|
#include "../../Library/Export.h"
|
||||||
|
#include"../../Common/Platform.h"
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -73,7 +74,6 @@ struct MeasureData
|
|||||||
MeasureData() : type(), data() {}
|
MeasureData() : type(), data() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
LPCWSTR GetPlatformName();
|
|
||||||
NLM_CONNECTIVITY GetNetworkConnectivity();
|
NLM_CONNECTIVITY GetNetworkConnectivity();
|
||||||
BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData);
|
BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData);
|
||||||
|
|
||||||
@ -261,7 +261,7 @@ PLUGIN_EXPORT LPCWSTR GetString(void* data)
|
|||||||
return sBuffer;
|
return sBuffer;
|
||||||
|
|
||||||
case MEASURE_OS_VERSION:
|
case MEASURE_OS_VERSION:
|
||||||
return GetPlatformName();
|
return Platform::GetPlatformName();
|
||||||
|
|
||||||
case MEASURE_ADAPTER_DESCRIPTION:
|
case MEASURE_ADAPTER_DESCRIPTION:
|
||||||
if (ERROR_SUCCESS == GetAdaptersInfo((IP_ADAPTER_INFO*)tmpBuffer, &tmpBufferLen))
|
if (ERROR_SUCCESS == GetAdaptersInfo((IP_ADAPTER_INFO*)tmpBuffer, &tmpBufferLen))
|
||||||
@ -468,62 +468,6 @@ PLUGIN_EXPORT void Finalize(void* data)
|
|||||||
delete measure;
|
delete measure;
|
||||||
}
|
}
|
||||||
|
|
||||||
LPCWSTR GetPlatformName()
|
|
||||||
{
|
|
||||||
OSVERSIONINFOEX osvi = {sizeof(OSVERSIONINFOEX)};
|
|
||||||
if (GetVersionEx((OSVERSIONINFO*)&osvi))
|
|
||||||
{
|
|
||||||
if (osvi.dwMajorVersion == 5)
|
|
||||||
{
|
|
||||||
if (osvi.dwMinorVersion == 2)
|
|
||||||
{
|
|
||||||
return L"Windows 2003";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 1)
|
|
||||||
{
|
|
||||||
return L"Windows XP";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (osvi.dwMinorVersion == 3 && osvi.wProductType == VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows 8.1";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 3 && osvi.wProductType != VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows Server 2012 R2";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 2 && osvi.wProductType == VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows 8";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 2 && osvi.wProductType != VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows Server 2012";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 1 && osvi.wProductType == VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows 7";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 1 && osvi.wProductType != VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows Server 2008 R2";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 0 && osvi.wProductType == VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows Vista";
|
|
||||||
}
|
|
||||||
else if (osvi.dwMinorVersion == 0 && osvi.wProductType != VER_NT_WORKSTATION)
|
|
||||||
{
|
|
||||||
return L"Windows Server 2008";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return L"Unknown";
|
|
||||||
}
|
|
||||||
|
|
||||||
NLM_CONNECTIVITY GetNetworkConnectivity()
|
NLM_CONNECTIVITY GetNetworkConnectivity()
|
||||||
{
|
{
|
||||||
// This is initialized like this in case INetworkListManager is not available (i.e. on WinXP).
|
// This is initialized like this in case INetworkListManager is not available (i.e. on WinXP).
|
||||||
|
Loading…
Reference in New Issue
Block a user