用RegQueryValueEx读取数据,应该放在哪种数据类型中呢,求有效代码~
下面这段是自己的提取TypedURLsTime的代码。不知问题在哪。。
int main()
{
HKEY hKey;
DWORD lpType = REG_BINARY;
BYTE time[64];
DWORD timeSize = sizeof(time);
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\TypedURLsTime", 0, KEY_ALL_ACCESS, &hKey);//打开键。
RegQueryValueEx(hKey, "url1", NULL, &lpType, (LPBYTE)time, &timeSize);//提取内容。
printf("%s", time);
system("pause");
}
如何用VC读取注册表二进制值,比如ShutdownTime?求助~
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 「已注销」 2015-05-22 07:11关注
#include
#include
#include //调用FILIETIME等函数。
int main()
{
HKEY hKey;
DWORD lpType = REG_BINARY;
DWORD timeSize;
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\TypedURLsTime", 0, KEY_ALL_ACCESS, &hKey) == 0)//打开键。
{
RegQueryValueEx(hKey, "url1", NULL, &lpType, NULL, &timeSize);
DWORD time = new DWORD[timeSize];
if (RegQueryValueEx(hKey, "url1", NULL, &lpType, (LPBYTE)time, &timeSize) == 0)
{
LONGLONG *t = (LONGLONG)time;//强制类型转换将地址赋给LONGLONG型。
LONGLONG time1 = *t;//time1为注册表中存储的二进制时间。
FILETIME filetime;//filetime为UTC。
filetime.dwHighDateTime = time1 >> 32;//filetime的前半段。
filetime.dwLowDateTime = time1 & 0xffff;//filetime的后半段。
FILETIME localfiletime;//localfiletime为UTC+8。
FileTimeToLocalFileTime(&filetime, &localfiletime);
SYSTEMTIME systemtime;
FileTimeToSystemTime(&localfiletime, &systemtime);
printf("时间为:\n%d年%d月%d日%d时%d分%d秒\n", systemtime.wYear, systemtime.wMonth, systemtime.wDay, systemtime.wHour, systemtime.wMinute, systemtime.wSecond);
}
}
system("pause");
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 怎么让数码管亮的同时让led执行流水灯代码
- ¥20 SAP HANA SQL Script 。如何判断字段值包含某个字符串
- ¥85 cmd批处理参数如果含有双引号,该如何传入?
- ¥15 fx2n系列plc的自控成型机模拟
- ¥15 时间序列LSTM模型归回预测代码问题
- ¥50 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。
- ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),如何通过环岛的原理及完整代码
- ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
- ¥15 c语言数据结构高铁订票系统
- ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)