From cd3a52363b683f6d5824a23e92f8745c306e9554 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sun, 29 Sep 2024 21:03:12 +0200 Subject: [PATCH] improve win version logging --- src/debug.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/debug.c b/src/debug.c index 5f972c5..4b31a9b 100644 --- a/src/debug.c +++ b/src/debug.c @@ -217,33 +217,45 @@ void dbg_init() TRACE("cnc-ddraw = %p\n", g_ddraw_module); - HKEY hkey; + HKEY hkey = NULL; LONG status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0L, KEY_READ, &hkey); + HKEY hkey9x = NULL; + LONG status9x = + RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", 0L, KEY_READ, &hkey9x); + if (status == ERROR_SUCCESS) { char name[256] = { 0 }; DWORD name_size = sizeof(name); - RegQueryValueExA(hkey, "ProductName", NULL, NULL, (PVOID)&name, &name_size); + if (RegQueryValueExA(hkey, "ProductName", NULL, NULL, (PVOID)&name, &name_size) != ERROR_SUCCESS && hkey9x) + { + RegQueryValueExA(hkey9x, "ProductName", NULL, NULL, (PVOID)&name, &name_size); + } - char dversion[256] = { 0 }; - DWORD dversion_size = sizeof(dversion); - RegQueryValueExA(hkey, "DisplayVersion", NULL, NULL, (PVOID)&dversion, &dversion_size); + char vers[256] = { 0 }; + DWORD vers_size = sizeof(vers); + if (RegQueryValueExA(hkey, "DisplayVersion", NULL, NULL, (PVOID)&vers, &vers_size) != ERROR_SUCCESS && hkey9x) + { + RegQueryValueExA(hkey9x, "VersionNumber", NULL, NULL, (PVOID)&vers, &vers_size); + } char build[256] = { 0 }; DWORD build_size = sizeof(build); if (RegQueryValueExA(hkey, "BuildLabEx", NULL, NULL, (PVOID)&build, &build_size) != ERROR_SUCCESS) { - build_size = sizeof(build); RegQueryValueExA(hkey, "BuildLab", NULL, NULL, (PVOID)&build, &build_size); } - TRACE("%s %s (%s)\n", name, dversion, build); + TRACE("%s %s (%s)\n", name, vers, build); RegCloseKey(hkey); } + if (status9x == ERROR_SUCCESS) + RegCloseKey(hkey9x); + if (IsWine()) { TRACE("Wine version = %s\n", verhelp_wine_get_version());