mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[SYSTEMINFO]
Add Italian translation (patch by Vincenzo Cotugno <vins8920 at hotmail dot com>) Decrease buffer size Don't print NULL domain/workgroup Add network adapters detection svn path=/trunk/; revision=51260
This commit is contained in:
parent
be54395eb8
commit
4ce4beb1cb
13 changed files with 318 additions and 101 deletions
|
@ -64,5 +64,11 @@ IDS_PAGEFILE_LOC, "Auslagerungsdateipfad(e): %s"
|
|||
IDS_DOMAIN, "Domain"
|
||||
IDS_NETWORK_CARDS, "Netzwerkkarte(n)"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u Installiert."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
|
@ -62,5 +62,11 @@ IDS_PAGEFILE_LOC, "Page File Location(s)"
|
|||
IDS_DOMAIN, "Domain"
|
||||
IDS_NETWORK_CARDS, "Network Card(s)"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u Installed."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
|
@ -67,5 +67,11 @@ IDS_PAGEFILE_LOC, "Ruta(s) Archivo Paginaci
|
|||
IDS_DOMAIN, "Dominio"
|
||||
IDS_NETWORK_CARDS, "Tarjeta(s) de Red"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u No Instalada."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
|
@ -62,5 +62,11 @@ IDS_PAGEFILE_LOC, "Emplacement(s) des fichiers d'
|
|||
IDS_DOMAIN, "Domaine"
|
||||
IDS_NETWORK_CARDS, "Carte(s) réseau"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u installée(s)."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
72
rosapps/applications/sysutils/systeminfo/lang/it-IT.rc
Normal file
72
rosapps/applications/sysutils/systeminfo/lang/it-IT.rc
Normal file
|
@ -0,0 +1,72 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
|
||||
IDS_USAGE, "SYSTEMINFO [/S sistema [/U nomeutente [/P [password]]]] [/FO formato] [/NH]\n\n\
|
||||
Descrizione:\n\
|
||||
Questà utilità permettere ad un amministratore di\n\
|
||||
visualizzare alcune informazioni basilari sulla configurazione del pc.\n\n\
|
||||
Lista Parametri:\n\
|
||||
/S sistema Specifica il sistema remoto a cui connettersi.\n\n\
|
||||
/U [dominio\\]utente Specifica il contesto utente in cui eseguire\n\
|
||||
il comando.\n\n\
|
||||
/P [password] Specifica la password per il dato\n\
|
||||
contesto utente. Se omesso, viene richiesto.\n\n\
|
||||
/FO formato Specifica il formato con cui l'output\n\
|
||||
viene mostrato.\n\
|
||||
Valori Validi: ""TABLE"", ""LIST"", ""CSV"".\n\n\
|
||||
/NH Specifica che la ""Etichetta Colonna"" non\n\
|
||||
deve essere mostrata nell'output.\n\
|
||||
Valido solo per i formati ""TABLE"" e ""CSV"" .\n\n\
|
||||
/? Mostra questo aiuto.\n\n\
|
||||
Esempi:\n\
|
||||
SYSTEMINFO\n\
|
||||
SYSTEMINFO /?\n\
|
||||
SYSTEMINFO /S sistema\n\
|
||||
SYSTEMINFO /S sistema /U utente\n\
|
||||
SYSTEMINFO /S sistema /U dominio\\utente /P password /FO TABLE\n\
|
||||
SYSTEMINFO /S sistema /FO LIST\n\
|
||||
SYSTEMINFO /S sistema /FO CSV /NH\n"
|
||||
|
||||
IDS_HOST_NAME, "Nome Host"
|
||||
IDS_OS_NAME, "Nome SO"
|
||||
IDS_OS_VERSION, "Versione SO"
|
||||
IDS_BUILD, "Build"
|
||||
IDS_OS_BUILD_TYPE, "Tipo SO"
|
||||
IDS_REG_OWNER, "Proprietario Registrato"
|
||||
IDS_REG_ORG, "Organizzazione Registrata"
|
||||
IDS_PRODUCT_ID, "ID Prodotto"
|
||||
IDS_INST_DATE, "Data Installazione"
|
||||
IDS_UP_TIME, "Tempo di Avvio Sistema"
|
||||
IDS_UP_TIME_FORMAT "%u Giorno, %u Ore, %u Minuti, %u Secondi"
|
||||
IDS_SYS_MANUFACTURER, "Produttore PC"
|
||||
IDS_SYS_MODEL, "Modello Sistema"
|
||||
IDS_SYS_TYPE, "Tipo Sistema"
|
||||
IDS_PROCESSORS, "Processore"
|
||||
IDS_PROCESSORS_FORMAT, "%u Processore(i) Installato."
|
||||
IDS_BIOS_DATE, "Data BIOS"
|
||||
IDS_BIOS_VERSION, "Versione BIOS"
|
||||
IDS_ROS_DIR, "Directory ReactOS"
|
||||
IDS_SYS_DIR, "Directory di Sistema"
|
||||
IDS_BOOT_DEV, "Periferica di Avvio"
|
||||
IDS_SYS_LOCALE, "Impostazioni Locali Sistema"
|
||||
IDS_INPUT_LOCALE, "Impostazioni Locali Input"
|
||||
IDS_TIME_ZONE, "Fuso Orario"
|
||||
IDS_TOTAL_PHYS_MEM, "Memoria Fisica Totale"
|
||||
IDS_AVAIL_PHISICAL_MEM, "Memoria Fisica Disponibile"
|
||||
IDS_VIRT_MEM_MAX, "Memoria Virtuale: Dimensione Massima"
|
||||
IDS_VIRT_MEM_AVAIL, "Memoria Virtuale: Disponibile"
|
||||
IDS_VIRT_MEM_INUSE, "Memoria Virtuale: In Uso"
|
||||
IDS_PAGEFILE_LOC, "Posizioni File di Paging"
|
||||
IDS_DOMAIN, "Dominio"
|
||||
IDS_NETWORK_CARDS, "Schede di Rete"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u Installate."
|
||||
IDS_CONNECTION_NAME, "Nome Connessione"
|
||||
IDS_STATUS, "Stato"
|
||||
IDS_MEDIA_DISCONNECTED, "Disconnesso"
|
||||
IDS_DHCP_ENABLED, "DHCP Abilitato"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "Indirizzo(i) IP"
|
||||
|
||||
END
|
|
@ -62,5 +62,11 @@ IDS_PAGEFILE_LOC, "Sidevekslingsfil lokalsjon(er)"
|
|||
IDS_DOMAIN, "Domene"
|
||||
IDS_NETWORK_CARDS, "Nettverkskort(er)"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u installert."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
|
@ -69,5 +69,11 @@ IDS_PAGEFILE_LOC, "Lokalizacja pliku wymiany"
|
|||
IDS_DOMAIN, "Domena"
|
||||
IDS_NETWORK_CARDS, "Karty sieciowe"
|
||||
IDS_NETWORK_CARDS_FORMAT, "Zainstalowane karty NIC: %u."
|
||||
IDS_CONNECTION_NAME, "Nazwa po³¹czenia"
|
||||
IDS_STATUS, "Stan"
|
||||
IDS_MEDIA_DISCONNECTED, "Noœnik od³¹czony"
|
||||
IDS_DHCP_ENABLED, "DHCP w³¹czone"
|
||||
IDS_NO, "Nie"
|
||||
IDS_IP_ADDRESSES, "Adresy IP"
|
||||
|
||||
END
|
||||
|
|
|
@ -66,5 +66,11 @@ IDS_PAGEFILE_LOC, "Umiestnenie(a) str
|
|||
IDS_DOMAIN, "Dom‚na"
|
||||
IDS_NETWORK_CARDS, "Sieœov karta(y)"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u nainçtalovan."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
|
@ -70,5 +70,11 @@ IDS_PAGEFILE_LOC, "
|
|||
IDS_DOMAIN, "Äîìåí"
|
||||
IDS_NETWORK_CARDS, "Ìåðåæíà êàðòà(è)"
|
||||
IDS_NETWORK_CARDS_FORMAT, "%u Installed."
|
||||
IDS_CONNECTION_NAME, "Connection Name"
|
||||
IDS_STATUS, "Status"
|
||||
IDS_MEDIA_DISCONNECTED, "Media disconnected"
|
||||
IDS_DHCP_ENABLED, "DHCP Enabled"
|
||||
IDS_NO, "No"
|
||||
IDS_IP_ADDRESSES, "IP address(es)"
|
||||
|
||||
END
|
||||
|
|
|
@ -1,35 +1,41 @@
|
|||
#define IDS_USAGE 1000
|
||||
#define IDS_USAGE 1000
|
||||
|
||||
#define IDS_HOST_NAME 100
|
||||
#define IDS_OS_NAME 101
|
||||
#define IDS_OS_VERSION 102
|
||||
#define IDS_BUILD 103
|
||||
#define IDS_OS_BUILD_TYPE 104
|
||||
#define IDS_REG_OWNER 105
|
||||
#define IDS_REG_ORG 106
|
||||
#define IDS_PRODUCT_ID 107
|
||||
#define IDS_INST_DATE 108
|
||||
#define IDS_UP_TIME 109
|
||||
#define IDS_UP_TIME_FORMAT 110
|
||||
#define IDS_SYS_MANUFACTURER 111
|
||||
#define IDS_SYS_MODEL 112
|
||||
#define IDS_SYS_TYPE 113
|
||||
#define IDS_PROCESSORS 114
|
||||
#define IDS_PROCESSORS_FORMAT 115
|
||||
#define IDS_BIOS_DATE 116
|
||||
#define IDS_BIOS_VERSION 117
|
||||
#define IDS_ROS_DIR 118
|
||||
#define IDS_SYS_DIR 119
|
||||
#define IDS_BOOT_DEV 120
|
||||
#define IDS_SYS_LOCALE 121
|
||||
#define IDS_INPUT_LOCALE 122
|
||||
#define IDS_TOTAL_PHYS_MEM 123
|
||||
#define IDS_AVAIL_PHISICAL_MEM 124
|
||||
#define IDS_VIRT_MEM_MAX 125
|
||||
#define IDS_VIRT_MEM_AVAIL 126
|
||||
#define IDS_VIRT_MEM_INUSE 127
|
||||
#define IDS_PAGEFILE_LOC 128
|
||||
#define IDS_TIME_ZONE 129
|
||||
#define IDS_DOMAIN 130
|
||||
#define IDS_NETWORK_CARDS 131
|
||||
#define IDS_HOST_NAME 100
|
||||
#define IDS_OS_NAME 101
|
||||
#define IDS_OS_VERSION 102
|
||||
#define IDS_BUILD 103
|
||||
#define IDS_OS_BUILD_TYPE 104
|
||||
#define IDS_REG_OWNER 105
|
||||
#define IDS_REG_ORG 106
|
||||
#define IDS_PRODUCT_ID 107
|
||||
#define IDS_INST_DATE 108
|
||||
#define IDS_UP_TIME 109
|
||||
#define IDS_UP_TIME_FORMAT 110
|
||||
#define IDS_SYS_MANUFACTURER 111
|
||||
#define IDS_SYS_MODEL 112
|
||||
#define IDS_SYS_TYPE 113
|
||||
#define IDS_PROCESSORS 114
|
||||
#define IDS_PROCESSORS_FORMAT 115
|
||||
#define IDS_BIOS_DATE 116
|
||||
#define IDS_BIOS_VERSION 117
|
||||
#define IDS_ROS_DIR 118
|
||||
#define IDS_SYS_DIR 119
|
||||
#define IDS_BOOT_DEV 120
|
||||
#define IDS_SYS_LOCALE 121
|
||||
#define IDS_INPUT_LOCALE 122
|
||||
#define IDS_TOTAL_PHYS_MEM 123
|
||||
#define IDS_AVAIL_PHISICAL_MEM 124
|
||||
#define IDS_VIRT_MEM_MAX 125
|
||||
#define IDS_VIRT_MEM_AVAIL 126
|
||||
#define IDS_VIRT_MEM_INUSE 127
|
||||
#define IDS_PAGEFILE_LOC 128
|
||||
#define IDS_TIME_ZONE 129
|
||||
#define IDS_DOMAIN 130
|
||||
#define IDS_NETWORK_CARDS 131
|
||||
#define IDS_NETWORK_CARDS_FORMAT 132
|
||||
#define IDS_CONNECTION_NAME 133
|
||||
#define IDS_STATUS 134
|
||||
#define IDS_MEDIA_DISCONNECTED 135
|
||||
#define IDS_DHCP_ENABLED 136
|
||||
#define IDS_NO 137
|
||||
#define IDS_IP_ADDRESSES 138
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
#include "lang/en-US.rc"
|
||||
#include "lang/es-ES.rc"
|
||||
#include "lang/fr-FR.rc"
|
||||
#include "lang/it-IT.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
#include "lang/pl-PL.rc"
|
||||
#include "lang/sk-SK.rc"
|
||||
#include "lang/uk-UA.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
|
||||
|
|
|
@ -25,31 +25,22 @@
|
|||
#include <locale.h>
|
||||
#include <lm.h>
|
||||
#include <shlwapi.h>
|
||||
#include <iphlpapi.h>
|
||||
#include <winsock2.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#define BUFFER_SIZE 32767
|
||||
#define BUFFER_SIZE 1024
|
||||
|
||||
/* Load from resource and convert to OEM */
|
||||
static
|
||||
BOOL
|
||||
GetOemStrings(UINT rcID, LPWSTR OutMsg)
|
||||
{
|
||||
if (LoadStringW(GetModuleHandle(NULL), rcID, OutMsg, BUFFER_SIZE))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Load data from registry */
|
||||
/* Load string from registry */
|
||||
static
|
||||
unsigned
|
||||
RegGetSZ(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR lpBuf, DWORD cchBuf)
|
||||
{
|
||||
DWORD dwBytes = cchBuf*sizeof(WCHAR), dwType;
|
||||
DWORD dwBytes = cchBuf*sizeof(WCHAR), dwType = 0;
|
||||
unsigned cChars;
|
||||
|
||||
/* If SubKy is specified open it */
|
||||
/* If SubKey is specified open it */
|
||||
if (lpSubKey && RegOpenKeyExW(hKey,
|
||||
lpSubKey,
|
||||
0,
|
||||
|
@ -60,6 +51,7 @@ RegGetSZ(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR lpBuf, DWORD c
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Query registry value and check its type */
|
||||
if (RegQueryValueExW(hKey,
|
||||
lpValueName,
|
||||
NULL,
|
||||
|
@ -70,6 +62,11 @@ RegGetSZ(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR lpBuf, DWORD c
|
|||
wprintf(L"Warning! Cannot query %s. Last error: %lu, type: %lu.\n", lpValueName, GetLastError(), dwType);
|
||||
dwBytes = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
wcscpy(lpBuf, L"N/A");
|
||||
dwBytes = 6;
|
||||
}
|
||||
|
||||
/* Close key if we opened it */
|
||||
if (lpSubKey)
|
||||
|
@ -87,6 +84,7 @@ RegGetSZ(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPWSTR lpBuf, DWORD c
|
|||
return cChars;
|
||||
}
|
||||
|
||||
/* Load DWORD from registry */
|
||||
static
|
||||
BOOL
|
||||
RegGetDWORD(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPDWORD lpData)
|
||||
|
@ -94,7 +92,7 @@ RegGetDWORD(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPDWORD lpData)
|
|||
DWORD dwBytes = sizeof(*lpData), dwType;
|
||||
BOOL bRet = TRUE;
|
||||
|
||||
/* If SubKy is specified open it */
|
||||
/* If SubKey is specified open it */
|
||||
if (lpSubKey && RegOpenKeyExW(hKey,
|
||||
lpSubKey,
|
||||
0,
|
||||
|
@ -105,6 +103,7 @@ RegGetDWORD(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPDWORD lpData)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/* Query registry value and check its type */
|
||||
if (RegQueryValueExW(hKey,
|
||||
lpValueName,
|
||||
NULL,
|
||||
|
@ -124,6 +123,7 @@ RegGetDWORD(HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpValueName, LPDWORD lpData)
|
|||
return bRet;
|
||||
}
|
||||
|
||||
/* Format bytes */
|
||||
static
|
||||
VOID
|
||||
FormatBytes(LPWSTR lpBuf, unsigned cBytes)
|
||||
|
@ -147,6 +147,7 @@ FormatBytes(LPWSTR lpBuf, unsigned cBytes)
|
|||
wcscpy(lpBuf + i, L" MB");
|
||||
}
|
||||
|
||||
/* Format date and time */
|
||||
static
|
||||
VOID
|
||||
FormatDateTime(time_t Time, LPWSTR lpBuf)
|
||||
|
@ -181,30 +182,35 @@ static
|
|||
VOID
|
||||
Usage(VOID)
|
||||
{
|
||||
WCHAR Buf[BUFFER_SIZE];
|
||||
|
||||
if(GetOemStrings(IDS_USAGE, Buf))
|
||||
WCHAR Buf[4096];
|
||||
if (LoadStringW(GetModuleHandle(NULL), IDS_USAGE, Buf, 4096))
|
||||
wprintf(L"%s", Buf);
|
||||
}
|
||||
|
||||
static
|
||||
VOID
|
||||
PrintRow(UINT nTitleID, unsigned cxOffset, LPWSTR lpFormat, ...)
|
||||
PrintRow(UINT nTitleID, BOOL bIndent, LPWSTR lpFormat, ...)
|
||||
{
|
||||
WCHAR Buf[BUFFER_SIZE];
|
||||
va_list Args;
|
||||
unsigned c;
|
||||
|
||||
|
||||
if (nTitleID)
|
||||
{
|
||||
c = LoadStringW(GetModuleHandle(NULL), nTitleID, Buf, BUFFER_SIZE);
|
||||
c = LoadStringW(GetModuleHandle(NULL), nTitleID, Buf, BUFFER_SIZE - 2);
|
||||
if (!c)
|
||||
return;
|
||||
|
||||
wcscpy(Buf + c, L":");
|
||||
|
||||
wcscpy(Buf + c, L": ");
|
||||
} else
|
||||
Buf[0] = L'\0';
|
||||
wprintf(L"%-32s ", Buf);
|
||||
|
||||
if (!bIndent)
|
||||
wprintf(L"%-32s", Buf);
|
||||
else if (Buf[0])
|
||||
wprintf(L"%38s%-16s", L"", Buf);
|
||||
else
|
||||
wprintf(L"%38s", L"");
|
||||
|
||||
va_start(Args, lpFormat);
|
||||
vwprintf(lpFormat, Args);
|
||||
|
@ -217,10 +223,10 @@ PrintRow(UINT nTitleID, unsigned cxOffset, LPWSTR lpFormat, ...)
|
|||
VOID
|
||||
AllSysInfo(VOID)
|
||||
{
|
||||
DWORD dwCharCount = BUFFER_SIZE, dwTimestamp;
|
||||
DWORD dwCharCount = BUFFER_SIZE, dwTimestamp, dwResult;
|
||||
OSVERSIONINFOW VersionInfo;
|
||||
SYSTEM_INFO SysInfo;
|
||||
WCHAR Buf[BUFFER_SIZE], Tmp[BUFFER_SIZE], Msg[BUFFER_SIZE], szSystemDir[MAX_PATH];
|
||||
WCHAR Buf[BUFFER_SIZE], Tmp[BUFFER_SIZE], szSystemDir[MAX_PATH];
|
||||
const WCHAR *lpcszSysType;
|
||||
LPWSTR lpBuffer;
|
||||
NETSETUP_JOIN_STATUS NetJoinStatus;
|
||||
|
@ -228,6 +234,8 @@ AllSysInfo(VOID)
|
|||
unsigned int cSeconds, i, j;
|
||||
TIME_ZONE_INFORMATION TimeZoneInfo;
|
||||
HKEY hKey;
|
||||
PIP_ADAPTER_ADDRESSES pAdapters;
|
||||
ULONG cbAdapters;
|
||||
|
||||
if (!GetSystemDirectoryW(szSystemDir, sizeof(szSystemDir)/sizeof(szSystemDir[0])))
|
||||
{
|
||||
|
@ -242,7 +250,7 @@ AllSysInfo(VOID)
|
|||
if (!GetComputerNameW(Buf, &dwCharCount))
|
||||
wprintf(L"Error! GetComputerName failed.\n");
|
||||
else
|
||||
PrintRow(IDS_HOST_NAME, 0, L"%s", Buf);
|
||||
PrintRow(IDS_HOST_NAME, FALSE, L"%s", Buf);
|
||||
|
||||
// open CurrentVersion key
|
||||
if(RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
|
@ -257,7 +265,7 @@ AllSysInfo(VOID)
|
|||
|
||||
//getting OS Name
|
||||
RegGetSZ(hKey, NULL, L"ProductName", Buf, BUFFER_SIZE);
|
||||
PrintRow(IDS_OS_NAME, 0, L"%s", Buf);
|
||||
PrintRow(IDS_OS_NAME, FALSE, L"%s", Buf);
|
||||
|
||||
//getting OS Version
|
||||
ZeroMemory(&VersionInfo, sizeof(VersionInfo));
|
||||
|
@ -267,14 +275,14 @@ AllSysInfo(VOID)
|
|||
if (!LoadStringW(GetModuleHandle(NULL), IDS_BUILD, Tmp, BUFFER_SIZE))
|
||||
Tmp[0] = L'\0';
|
||||
PrintRow(IDS_OS_VERSION,
|
||||
0,
|
||||
L"%u.%u.%u %s %s %u",
|
||||
(unsigned)VersionInfo.dwMajorVersion,
|
||||
(unsigned)VersionInfo.dwMinorVersion,
|
||||
(unsigned)VersionInfo.dwBuildNumber,
|
||||
FALSE,
|
||||
L"%lu.%lu.%lu %s %s %lu",
|
||||
VersionInfo.dwMajorVersion,
|
||||
VersionInfo.dwMinorVersion,
|
||||
VersionInfo.dwBuildNumber,
|
||||
VersionInfo.szCSDVersion,
|
||||
Tmp,
|
||||
(unsigned)VersionInfo.dwBuildNumber);
|
||||
VersionInfo.dwBuildNumber);
|
||||
|
||||
//getting OS Manufacturer
|
||||
|
||||
|
@ -282,24 +290,24 @@ AllSysInfo(VOID)
|
|||
|
||||
//getting OS Build Type
|
||||
RegGetSZ(hKey, NULL, L"CurrentType", Buf, BUFFER_SIZE);
|
||||
PrintRow(IDS_OS_BUILD_TYPE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_OS_BUILD_TYPE, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Registered Owner
|
||||
RegGetSZ(hKey, NULL, L"RegisteredOwner", Buf, BUFFER_SIZE);
|
||||
PrintRow(IDS_REG_OWNER, 0, L"%s", Buf);
|
||||
PrintRow(IDS_REG_OWNER, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Registered Organization
|
||||
RegGetSZ(hKey, NULL, L"RegisteredOrganization", Buf, BUFFER_SIZE);
|
||||
PrintRow(IDS_REG_ORG, 0, L"%s", Buf);
|
||||
PrintRow(IDS_REG_ORG, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Product ID
|
||||
RegGetSZ(hKey, NULL, L"ProductId", Buf, BUFFER_SIZE);
|
||||
PrintRow(IDS_PRODUCT_ID, 0, L"%s", Buf);
|
||||
PrintRow(IDS_PRODUCT_ID, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Install Date
|
||||
RegGetDWORD(hKey, NULL, L"InstallDate", &dwTimestamp);
|
||||
FormatDateTime((time_t)dwTimestamp, Buf);
|
||||
PrintRow(IDS_INST_DATE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_INST_DATE, FALSE, L"%s", Buf);
|
||||
|
||||
// close Current Version key now
|
||||
RegCloseKey(hKey);
|
||||
|
@ -309,7 +317,7 @@ AllSysInfo(VOID)
|
|||
if (!LoadStringW(GetModuleHandle(NULL), IDS_UP_TIME_FORMAT, Tmp, BUFFER_SIZE))
|
||||
Tmp[0] = L'\0';
|
||||
swprintf(Buf, Tmp, cSeconds / (60*60*24), (cSeconds / (60*60)) % 24, (cSeconds / 60) % 60, cSeconds % 60);
|
||||
PrintRow(IDS_UP_TIME, 0, L"%s", Buf);
|
||||
PrintRow(IDS_UP_TIME, FALSE, L"%s", Buf);
|
||||
|
||||
//getting System Manufacturer; HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation\Manufacturer for Win >= 6.0
|
||||
swprintf(Tmp, L"%s\\oeminfo.ini", szSystemDir);
|
||||
|
@ -319,7 +327,7 @@ AllSysInfo(VOID)
|
|||
Buf,
|
||||
sizeof(Buf)/sizeof(Buf[0]),
|
||||
Tmp);
|
||||
PrintRow(IDS_SYS_MANUFACTURER, 0, L"%s", Buf);
|
||||
PrintRow(IDS_SYS_MANUFACTURER, FALSE, L"%s", Buf);
|
||||
|
||||
//getting System Model; HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation\Model for Win >= 6.0
|
||||
GetPrivateProfileStringW(L"General",
|
||||
|
@ -328,7 +336,7 @@ AllSysInfo(VOID)
|
|||
Buf,
|
||||
sizeof(Buf)/sizeof(Buf[0]),
|
||||
Tmp);
|
||||
PrintRow(IDS_SYS_MODEL, 0, L"%s", Buf);
|
||||
PrintRow(IDS_SYS_MODEL, FALSE, L"%s", Buf);
|
||||
|
||||
//getting System type
|
||||
switch (SysInfo.wProcessorArchitecture)
|
||||
|
@ -346,13 +354,13 @@ AllSysInfo(VOID)
|
|||
lpcszSysType = L"Unknown";
|
||||
break;
|
||||
}
|
||||
PrintRow(IDS_SYS_TYPE, 0, L"%s", lpcszSysType);
|
||||
PrintRow(IDS_SYS_TYPE, FALSE, L"%s", lpcszSysType);
|
||||
|
||||
//getting Processor(s)
|
||||
if (!LoadStringW(GetModuleHandle(NULL), IDS_PROCESSORS_FORMAT, Tmp, BUFFER_SIZE))
|
||||
Tmp[0] = L'\0';
|
||||
swprintf(Buf, Tmp, (unsigned)SysInfo.dwNumberOfProcessors);
|
||||
PrintRow(IDS_PROCESSORS, 0, L"%s", Buf);
|
||||
PrintRow(IDS_PROCESSORS, FALSE, L"%s", Buf);
|
||||
for(i = 0; i < (unsigned int)SysInfo.dwNumberOfProcessors; i++)
|
||||
{
|
||||
swprintf(Tmp, L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\%u", i);
|
||||
|
@ -363,7 +371,7 @@ AllSysInfo(VOID)
|
|||
Buf[j++] = L' ';
|
||||
RegGetSZ(HKEY_LOCAL_MACHINE, Tmp, L"VendorIdentifier", Buf + j, BUFFER_SIZE - j);
|
||||
|
||||
PrintRow(0, 0, L"%s", Buf);
|
||||
PrintRow(0, FALSE, L"%s", Buf);
|
||||
}
|
||||
|
||||
//getting BIOS Version
|
||||
|
@ -372,7 +380,7 @@ AllSysInfo(VOID)
|
|||
L"SystemBiosVersion",
|
||||
Buf,
|
||||
BUFFER_SIZE);
|
||||
PrintRow(IDS_BIOS_VERSION, 0, L"%s", Buf);
|
||||
PrintRow(IDS_BIOS_VERSION, FALSE, L"%s", Buf);
|
||||
|
||||
//gettings BIOS date
|
||||
RegGetSZ(HKEY_LOCAL_MACHINE,
|
||||
|
@ -380,13 +388,13 @@ AllSysInfo(VOID)
|
|||
L"SystemBiosDate",
|
||||
Buf,
|
||||
BUFFER_SIZE);
|
||||
PrintRow(IDS_BIOS_DATE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_BIOS_DATE, FALSE, L"%s", Buf);
|
||||
|
||||
//getting ReactOS Directory
|
||||
if (!GetWindowsDirectoryW(Buf, BUFFER_SIZE))
|
||||
wprintf(L"Error! GetWindowsDirectory failed.");
|
||||
else
|
||||
PrintRow(IDS_ROS_DIR, 0, L"%s", Buf);
|
||||
PrintRow(IDS_ROS_DIR, FALSE, L"%s", Buf);
|
||||
|
||||
//getting System Directory
|
||||
PrintRow(IDS_SYS_DIR, 0, L"%s", szSystemDir);
|
||||
|
@ -397,7 +405,7 @@ AllSysInfo(VOID)
|
|||
L"SystemPartition",
|
||||
Buf,
|
||||
BUFFER_SIZE);
|
||||
PrintRow(IDS_BOOT_DEV, 0, L"%s", Buf);
|
||||
PrintRow(IDS_BOOT_DEV, FALSE, L"%s", Buf);
|
||||
|
||||
//getting System Locale
|
||||
if (GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_ILANGUAGE, Tmp, BUFFER_SIZE))
|
||||
|
@ -412,7 +420,7 @@ AllSysInfo(VOID)
|
|||
if (lpBuffer)
|
||||
SHLoadIndirectString(lpBuffer+1, lpBuffer+1, BUFFER_SIZE - (lpBuffer-Buf) - 1, NULL);
|
||||
|
||||
PrintRow(IDS_SYS_LOCALE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_SYS_LOCALE, FALSE, L"%s", Buf);
|
||||
}
|
||||
|
||||
//getting Input Locale
|
||||
|
@ -432,7 +440,7 @@ AllSysInfo(VOID)
|
|||
if (lpBuffer)
|
||||
SHLoadIndirectString(lpBuffer+1, lpBuffer+1, BUFFER_SIZE - (lpBuffer-Buf) - 1, NULL);
|
||||
|
||||
PrintRow(IDS_INPUT_LOCALE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_INPUT_LOCALE, FALSE, L"%s", Buf);
|
||||
}
|
||||
|
||||
//getting Time Zone
|
||||
|
@ -448,16 +456,16 @@ AllSysInfo(VOID)
|
|||
unsigned i;
|
||||
|
||||
/* Find current timezone */
|
||||
dwCharCount = 256; // Windows seems to have a bug - it doesnt accept BUFFER_SIZE here
|
||||
dwCharCount = BUFFER_SIZE;
|
||||
for(i = 0; RegEnumKeyExW(hKey, i, Tmp, &dwCharCount, NULL, NULL, NULL, NULL) == ERROR_SUCCESS; ++i, dwCharCount = 255)
|
||||
{
|
||||
RegGetSZ(hKey, Tmp, L"Std", Buf, BUFFER_SIZE);
|
||||
|
||||
if(!wcscmp(Buf, TimeZoneInfo.StandardName))
|
||||
if (!wcscmp(Buf, TimeZoneInfo.StandardName))
|
||||
{
|
||||
RegGetSZ(hKey, Tmp, L"Display", Buf, BUFFER_SIZE);
|
||||
|
||||
PrintRow(IDS_TIME_ZONE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_TIME_ZONE, FALSE, L"%s", Buf);
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -468,23 +476,23 @@ AllSysInfo(VOID)
|
|||
//getting Total Physical Memory
|
||||
GlobalMemoryStatus(&MemoryStatus);
|
||||
FormatBytes(Buf, MemoryStatus.dwTotalPhys);
|
||||
PrintRow(IDS_TOTAL_PHYS_MEM, 0, L"%s", Buf);
|
||||
PrintRow(IDS_TOTAL_PHYS_MEM, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Available Physical Memory
|
||||
FormatBytes(Buf, MemoryStatus.dwAvailPhys);
|
||||
PrintRow(IDS_AVAIL_PHISICAL_MEM, 0, L"%s", Buf);
|
||||
PrintRow(IDS_AVAIL_PHISICAL_MEM, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Virtual Memory: Max Size
|
||||
FormatBytes(Buf, MemoryStatus.dwTotalVirtual);
|
||||
PrintRow(IDS_VIRT_MEM_MAX, 0, L"%s", Buf);
|
||||
PrintRow(IDS_VIRT_MEM_MAX, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Virtual Memory: Available
|
||||
FormatBytes(Buf, MemoryStatus.dwAvailVirtual);
|
||||
PrintRow(IDS_VIRT_MEM_AVAIL, 0, L"%s", Buf);
|
||||
PrintRow(IDS_VIRT_MEM_AVAIL, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Virtual Memory: In Use
|
||||
FormatBytes(Buf, MemoryStatus.dwTotalVirtual-MemoryStatus.dwAvailVirtual);
|
||||
PrintRow(IDS_VIRT_MEM_INUSE, 0, L"%s", Buf);
|
||||
PrintRow(IDS_VIRT_MEM_INUSE, FALSE, L"%s", Buf);
|
||||
|
||||
//getting Page File Location(s)
|
||||
if (RegGetSZ(HKEY_LOCAL_MACHINE,
|
||||
|
@ -504,13 +512,14 @@ AllSysInfo(VOID)
|
|||
}
|
||||
}
|
||||
|
||||
PrintRow(IDS_PAGEFILE_LOC, 0, L"%s", Buf);
|
||||
PrintRow(IDS_PAGEFILE_LOC, FALSE, L"%s", Buf);
|
||||
}
|
||||
|
||||
//getting Domain
|
||||
if (NetGetJoinInformation (NULL, &lpBuffer, &NetJoinStatus) == NERR_Success)
|
||||
{
|
||||
PrintRow(IDS_DOMAIN, 0, L"%s", lpBuffer);
|
||||
if (NetJoinStatus == NetSetupWorkgroupName || NetJoinStatus == NetSetupDomainName)
|
||||
PrintRow(IDS_DOMAIN, FALSE, L"%s", lpBuffer);
|
||||
|
||||
NetApiBufferFree(lpBuffer);
|
||||
}
|
||||
|
@ -518,22 +527,100 @@ AllSysInfo(VOID)
|
|||
//getting Logon Server
|
||||
|
||||
//getting NetWork Card(s)
|
||||
if(GetOemStrings(IDS_NETWORK_CARDS, Msg))
|
||||
cbAdapters = 4096;
|
||||
pAdapters = malloc(cbAdapters);
|
||||
while((dwResult = GetAdaptersAddresses(AF_UNSPEC, 0x0002, NULL, pAdapters, &cbAdapters)) == ERROR_BUFFER_OVERFLOW)
|
||||
{
|
||||
|
||||
cbAdapters += 4096;
|
||||
pAdapters = (PIP_ADAPTER_ADDRESSES)realloc(pAdapters, cbAdapters);
|
||||
}
|
||||
|
||||
if (dwResult == ERROR_SUCCESS)
|
||||
{
|
||||
PIP_ADAPTER_ADDRESSES pCurrentAdapter = pAdapters;
|
||||
unsigned cAdapters = 0;
|
||||
|
||||
/* Count adapters */
|
||||
for(i = 0; pCurrentAdapter; ++i)
|
||||
{
|
||||
if (pCurrentAdapter->IfType != 24 && pCurrentAdapter->IfType != 131)
|
||||
++cAdapters;
|
||||
pCurrentAdapter = pCurrentAdapter->Next;
|
||||
}
|
||||
|
||||
|
||||
/* Print adapters count */
|
||||
if (!LoadStringW(GetModuleHandle(NULL), IDS_NETWORK_CARDS_FORMAT, Tmp, BUFFER_SIZE))
|
||||
Tmp[0] = L'\0';
|
||||
swprintf(Buf, Tmp, cAdapters);
|
||||
PrintRow(IDS_NETWORK_CARDS, FALSE, L"%s", Buf);
|
||||
|
||||
/* Show information about each adapter */
|
||||
pCurrentAdapter = pAdapters;
|
||||
for(i = 0; pCurrentAdapter; ++i)
|
||||
{
|
||||
if (pCurrentAdapter->IfType != 24 && pCurrentAdapter->IfType != 131)//IF_TYPE_SOFTWARE_LOOPBACK)
|
||||
{
|
||||
PIP_ADAPTER_UNICAST_ADDRESS pAddress;
|
||||
|
||||
PrintRow(0, FALSE, L"[%02u]: %s", i + 1, pCurrentAdapter->Description);
|
||||
PrintRow(IDS_CONNECTION_NAME, TRUE, L"%s", pCurrentAdapter->FriendlyName);
|
||||
if (!(pCurrentAdapter->Flags & 0x0004))
|
||||
{
|
||||
if (!LoadStringW(GetModuleHandle(NULL), IDS_NO, Buf, BUFFER_SIZE))
|
||||
Buf[0] = L'\0';
|
||||
PrintRow(IDS_DHCP_ENABLED, TRUE, Buf);
|
||||
}
|
||||
if (pCurrentAdapter->OperStatus == IfOperStatusDown)
|
||||
{
|
||||
if (!LoadStringW(GetModuleHandle(NULL), IDS_MEDIA_DISCONNECTED, Buf, BUFFER_SIZE))
|
||||
Buf[0] = L'\0';
|
||||
PrintRow(IDS_STATUS, TRUE, Buf);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!LoadStringW(GetModuleHandle(NULL), IDS_IP_ADDRESSES, Buf, BUFFER_SIZE))
|
||||
Buf[0] = L'\0';
|
||||
PrintRow(0, TRUE, Buf);
|
||||
pAddress = pCurrentAdapter->FirstUnicastAddress;
|
||||
for (j = 0; pAddress; ++j)
|
||||
{
|
||||
dwCharCount = BUFFER_SIZE;
|
||||
WSAAddressToStringW(pAddress->Address.lpSockaddr, pAddress->Address.iSockaddrLength, NULL, Buf, &dwCharCount);
|
||||
PrintRow(0, TRUE, L"[%02u]: %s", j + 1, Buf);
|
||||
pAddress = pAddress->Next;
|
||||
}
|
||||
}
|
||||
}
|
||||
pCurrentAdapter = pCurrentAdapter->Next;
|
||||
}
|
||||
}
|
||||
free(pAdapters);
|
||||
}
|
||||
|
||||
/* Main program */
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
WSADATA WsaData;
|
||||
int i;
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
|
||||
if (argc > 1 && (!strcmp(argv[1], "/?") || !strcmp(argv[1], "-?")))
|
||||
WSAStartup(MAKEWORD(2, 2), &WsaData);
|
||||
|
||||
for (i = 1; i < argc; ++i)
|
||||
{
|
||||
Usage();
|
||||
return 0;
|
||||
if (!strcmp(argv[i], "/?") || !strcmp(argv[i], "-?"))
|
||||
{
|
||||
Usage();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Unsupported argument: %s\n", argv[i]);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
AllSysInfo();
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
<library>advapi32</library>
|
||||
<library>netapi32</library>
|
||||
<library>shlwapi</library>
|
||||
<library>iphlpapi</library>
|
||||
<library>ws2_32</library>
|
||||
<file>systeminfo.c</file>
|
||||
<file>systeminfo.rc</file>
|
||||
<file>rsrc.rc</file>
|
||||
|
|
Loading…
Reference in a new issue