catch wmi error

This commit is contained in:
HolographicHat
2022-04-06 11:26:05 +08:00
parent d64bf8149e
commit 8a0c82f89f
2 changed files with 20 additions and 9 deletions

View File

@@ -115,7 +115,7 @@ const exportData = async proto => {
const question = (query) => new Promise(resolve => {
rl.question(query, resolve)
})
const chosen = await question("导出至: \n[0] 椰羊 (https://cocogoat.work/achievement)\n[1] Paimon.moe\n[2] Seelie.me\n[3] 表格文件 (默认)\n> ")
const chosen = await question("导出至: \n[0] 椰羊 (https://cocogoat.work/achievement)\n[1] Paimon.moe\n[2] Seelie.me\n[3] 表格文件 (默认)\n输入一个数字(0-3): ")
rl.close()
switch (chosen) {
case "0":

View File

@@ -113,18 +113,29 @@ namespace native {
if (RegUtils::GetString(HKEY_CURRENT_USER, L"Control Panel\\International\\Geo", L"Name", country) != ERROR_SUCCESS) {
country = L"CN";
}
auto computer = retrieveWmi<Win32_ComputerSystem>();
auto os = retrieveWmi<Win32_OperatingSystem>();
string osv = os.Version;
Object obj = Object::New(env);
obj.Set("model", Napi::String::New(env, computer.Model));
obj.Set("locale", Napi::String::New(env, WStringToString(locale)));
obj.Set("oemName", Napi::String::New(env, computer.Manufacturer));
obj.Set("osBuild", Napi::String::New(env, osv + "." + to_string(buildNum)));
obj.Set("osVersion", Napi::String::New(env, osv));
obj.Set("screenSize", Napi::String::New(env, to_string(sw) + "x" + to_string(sh)));
obj.Set("carrierCountry", Napi::String::New(env, WStringToString(country)));
try {
auto computer = retrieveWmi<Win32_ComputerSystem>();
obj.Set("model", Napi::String::New(env, computer.Model));
obj.Set("oemName", Napi::String::New(env, computer.Manufacturer));
} catch (Wmi::WmiException &e) {
obj.Set("model", Napi::String::New(env, "Unknown"));
obj.Set("oemName", Napi::String::New(env, "Unknown"));
}
try {
auto os = retrieveWmi<Win32_OperatingSystem>();
string osv = os.Version;
obj.Set("osBuild", Napi::String::New(env, osv + "." + to_string(buildNum)));
obj.Set("osVersion", Napi::String::New(env, osv));
obj.Set("timeZoneOffset", Napi::Number::New(env, os.CurrentTimeZone));
} catch (Wmi::WmiException &e) {
obj.Set("osBuild", Napi::String::New(env, "Unknown"));
obj.Set("osVersion", Napi::String::New(env, "Unknown"));
obj.Set("timeZoneOffset", Napi::Number::New(env, 480));
}
return obj;
}