国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

C++學習——獲取時區(qū)列表(windows) [23.08.04]

2023-08-04 23:20 作者:凜丶颯  | 我要投稿

說明:初學C++,望各位大佬批評指正,感謝萬分!歡迎大家評論區(qū)留言討論各種問題;

思路:通過訪問windows的時區(qū)注冊表信息獲?。?/p>

關鍵:這三個函數的使用:RegEnumKeyEx(),RegOpenKeyEx(),RegQueryValueEx();

#include <Windows.h>

#include <iostream>

#include <string>

#include <tchar.h>


//將wstring轉換成string??

std::string wstring2string(std::wstring wstr)

{

???? std::string result;

???? //獲取緩沖區(qū)大小,并申請空間,緩沖區(qū)大小事按字節(jié)計算的??

???? int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), NULL, 0, NULL, NULL);

???? char* buffer = new char[len + 1];

???? //寬字節(jié)編碼轉換成多字節(jié)編碼??

???? WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), buffer, len, NULL, NULL);

???? buffer[len] = '\0';

???? //刪除緩沖區(qū)并返回值??

???? result.append(buffer);

???? delete[] buffer;

???? return result;

}


int main(){

???? HKEY hKey;

???? LONG result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones"), 0, KEY_READ, &hKey);

if (result != ERROR_SUCCESS){

????std::cout << "Failed to open registry key." << std::endl;

????return 1;

}


TCHAR subKeyName[256];

DWORD subKeyNameSize = 256;

DWORD index = 0;


// Redirect wcout to the file stream

// Enumerate all subkeys under the Time Zones key

while (RegEnumKeyEx(hKey, index, subKeyName, &subKeyNameSize, nullptr, nullptr, nullptr, nullptr) == ERROR_SUCCESS){

???? HKEY hSubKey;

???? // Open the subkey for reading

???? result = RegOpenKeyEx(hKey, subKeyName, 0, KEY_READ, &hSubKey);

if (result == ERROR_SUCCESS){

???? TCHAR displayName[256];

???? DWORD displayNameSize = 256;

????

???? // Read the display name of the time zone

???? result = RegQueryValueEx(hSubKey, _T("Display"), nullptr, nullptr, reinterpret_cast<LPBYTE>(displayName), &displayNameSize);

if (result == ERROR_SUCCESS){

???????? std::wcout << L"(" << subKeyName << L") " << displayName << std::endl;

???????? std::wstring output = L"(" + std::wstring(subKeyName) + L") " + displayName +L"\n";

???????? OutputDebugString(output.c_str()); // Send output to Visual Studio Output window

???? ????std::cout << wstring2string(output) << std::endl;

????????}

????????RegCloseKey(hSubKey);

????}


index++;

subKeyNameSize = 256; // Reset subKeyNameSize to its original value

????}


RegCloseKey(hKey);

return 0;

}

執(zhí)行結果如下:

windows時區(qū)列表



C++學習——獲取時區(qū)列表(windows) [23.08.04]的評論 (共 條)

分享到微博請遵守國家法律
福安市| 墨竹工卡县| 大名县| 上林县| 井冈山市| 特克斯县| 柘城县| 博乐市| 德州市| 姚安县| 集安市| 农安县| 南江县| 墨玉县| 武义县| 长兴县| 宁都县| 阳泉市| 呼和浩特市| 仁布县| 得荣县| 甘孜县| 揭西县| 金堂县| 宣恩县| 成安县| 靖安县| 鄂伦春自治旗| 永春县| 桐庐县| 门头沟区| 策勒县| 望奎县| 澜沧| 安塞县| 磐石市| 唐河县| 乌拉特中旗| 泗阳县| 会泽县| 高邮市|