// regedit.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include "pch.h"//vs新建项目自动生成
#include <iostream>
#include <assert.h>
#include "windows.h"
#include "tchar.h"
#include "conio.h"
#include "stdio.h"
//file
#include <fstream>
#include <string>
//time
#include <stdlib.h>
#include <string.h>
#include <time.h>
using namespace std;void wcharTochar(const wchar_t *wchar, char *chr, int length)//宽字符转char
{WideCharToMultiByte(CP_ACP, 0, wchar, -1,chr, length, NULL, NULL);
}bool OpenRegKey(HKEY& hRetKey)//打开注册表
{LPCWSTR sw = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Bandizip.exe");//_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Bandizip.exe");wprintf(L"SW is %s\n",sw);if (ERROR_SUCCESS == RegOpenKey(HKEY_LOCAL_MACHINE, sw, &hRetKey)){return true;}printf("OpenRegKey return is false!\n");return false;
}bool QueryRegKey(LPCWSTR strSubKey, LPCWSTR strValueName, char *strValue,int length)//从注册表里取值
{DWORD dwType = REG_SZ;//定义数据类型DWORD dwLen = MAX_PATH;wchar_t data[MAX_PATH];HKEY hKey;HKEY hSubKey;if (OpenRegKey(hKey)){if (ERROR_SUCCESS == RegOpenKey(HKEY_LOCAL_MACHINE, strSubKey, &hSubKey)){TCHAR buf[256] = { 0 };if (ERROR_SUCCESS == RegQueryValueEx(hSubKey, strValueName, 0, &dwType, (LPBYTE)data, &dwLen)){wcharTochar(data, strValue,length);wprintf(L"data = %s,len= %d\n", data,strlen((const char *)data));RegCloseKey(hKey); //关闭注册表return true;}}RegCloseKey(hKey); //关闭注册表}return false;
}
//文件int CountLines(char *filename)
{ifstream ReadFile;int n = 0;string tmp;ReadFile.open(filename, ios::in);//ios::in 表示以只读的方式读取文件if (ReadFile.fail())//文件打开失败:返回0{return 0;}else//文件存在{while (getline(ReadFile, tmp, '\n')){n++;}ReadFile.close();return n;}
}string ReadLine(char *filename, int line)
{int lines, i = 0;string temp;fstream file;file.open(filename, ios::in);lines = CountLines(filename);if (line <= 0){return "Error 1";}if (file.fail()){return "Error 2";}if (line > lines){return "Error 3";}while (getline(file, temp) && i < line - 1){i++;}file.close();return temp;
}
//time
/** @fn: int CHttpUtil::GetLocalTime(char* szLocTime)*  @brief : 获取系统本地时间*  @param (out) char * szLocTime: 存放本地时间的缓存区,外部传入*  @return int : szLocTime的实际长度*/
int GetLocalTime(char* szLocTime)//获取本地标准时间
{if (szLocTime == NULL){return -1;}time_t rawTime;struct tm* timeInfo;char szTemp[30] = { 0 };time(&rawTime);timeInfo = localtime(&rawTime);strftime(szTemp, sizeof(szTemp), "%Y-%m-%d-%H-%M-%S", timeInfo);strcpy_s(szLocTime, strlen(szTemp) + 1, szTemp);return strlen(szLocTime);
}
int stamp_to_standard(time_t nSrc, char *sDestTime)//格林威治时间转标准时间
{struct tm p;p = *localtime(&nSrc);strftime(sDestTime, 1000, "%Y-%m-%d-%H-%M-%S", &p);return 0;
}
time_t convert(int year, int month, int day,int H,int M,int S)
{tm info = { 0 };info.tm_year = year-1900;info.tm_mon = month-1;info.tm_mday = day;info.tm_sec=S;   // seconds after the minute - [0, 60] including leap secondinfo.tm_min=M;   // minutes after the hour - [0, 59]info.tm_hour= H;return mktime(&info);
}
int get_days(const char* from, const char* to)
{int year, month, day,H,M,S;sscanf(from, "%d-%d-%d-%d-%d-%d", &year, &month, &day, &H, &M, &S);printf("163--------------%d-%d-%d-%d-%d-%d\n", year, month, day, H, M, S);int fromSecond = (int)convert(year, month, day, H, M, S);printf("--------------%d\n", fromSecond);sscanf(to, "%d-%d-%d-%d-%d-%d", &year, &month, &day, &H, &M, &S);int toSecond = (int)convert(year, month, day, H, M, S);printf("%d\n", toSecond);return (toSecond - fromSecond) / 24 / 3600;
}
int main()
{HKEY  hKey = NULL;string result;LPCWSTR strSubKey= _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Bandizip.exe");LPCWSTR strValueName= _T("Path");char strValue[256];int length = 256;bool status = QueryRegKey(strSubKey,strValueName,strValue,length);printf("status is %d\n", status);printf("result is %s\n", strValue);int line;char filename[] = "C:\\Program Files\\Bandizip\\savapi\\update_AVIRA.txt";string result_file;line = CountLines(filename);if (line > 0){result_file = ReadLine(filename, 1);cout << result_file << endl;}else{cout<<"no file"<<endl;}//旧time_t a = 1343976859;stamp_to_standard(a, strValue);printf("time is %s\n", strValue);
//本地时间char szTemp[30] = { 0 };GetLocalTime(szTemp);printf("szTemp is %s\n", szTemp);int days = get_days(strValue, szTemp);printf("From:%s\nTo:%s\n", strValue, szTemp);printf("%d\n", days);return 0;
}

C++ 注册表取值 按行读取txt文件 时间差天数 格林威治时间转标准时间相关推荐

  1. python按行读取txt文件-Python逐行读取txt文本,按符合分割词并逐行写入txt

    背景Background: 我的txt文件里面存放的是搜索词,由于原始的query(搜索词)都是用/或者.来分割词,而我要达到的是每个词语是单独的一行,并且写入txt 第一步:按行读取txt文件 s ...

  2. java按行读取txt文件内容_对txt文件中的内容进行排序

    如果您的文件中每行都有单词或术语,则可能需要对其进行排序.Java Arrays.sort是执行此操作的常用功能.Collections.sort()是另一个不错的说法.这是一个示例和代码. 在文件E ...

  3. c++ 按行读取txt文件并赋值_python操作txt文件中数据教程[3]python读取文件夹中所有txt文件并将数据转为csv文件...

    觉得有用的话,请点击右下角 推荐给更多小伙伴 neoken_xuAsurada2015Evacloud 参考文献 python 操作 txt 文件中数据教程[1]-使用 python 读写 txt 文 ...

  4. 水文日常~~Python如何按行读取txt文件中的数据并去除每行末尾的回车符\n

    #从文件中读取数据 with open ('data.txt') as file_object:lines = file_object.read().splitlines()#去除每行末尾的回车符

  5. Python按行读取txt文件

    import json# 文件 finename = "demo.txt"f = open(finename) # 返回一个文件对象 line = f.readline() # 调 ...

  6. python读取txt文件如何按数字分隔_python 读txt文件,按‘,’分割每行数据操作

    按行读取TXT文件 fname = './新建文件夹/yob2010.txt' //文件夹路径 with open(fname,'r+',encoding='utf-8') as f: for lin ...

  7. Java 读取TXT文件的多种方式-行读取,字节读取

    Java 读取TXT文件的多种方式 1).按行读取TXT文件 package zc; import java.io.BufferedReader; import java.io.File; impor ...

  8. python读取txt文件的行数_python读取txt文件符合条件的行数-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 关系网图 pyth ...

  9. java读取txt文件

    java如何读入txt文本文件的内容:java从txt文件中读取内容有多种方法,包括按照行读取文件,按照字节读取文件,首先我们来看看按照行读取txt文件中的内容的一般的步骤: 首先是我们创建一个fil ...

最新文章

  1. table thead 固定 tbody滚动
  2. filco蓝牙不好用_最新黑科技感应式音箱!无需接口不用蓝牙,放上手机 1s畅享动听音乐~...
  3. java 远程 shell脚本_Java 远程调用 shell脚本
  4. JSON学习笔记(五)- JSON.stringify()
  5. iPhone上编辑html,在iphone上重新格式化一个简单的html页面
  6. zip安装mysql没有软件,windows10系统安装mysql-8.0.13(zip安装) 的教程详解
  7. fenby C语言 P17
  8. Atitit 字符串模板与 字符串插值 目录 1.1. 字符串插值是将字符串中的占位符替换为局域变量的过程 1 1.2. 模板字面量 是允许嵌入表达式的字符串字面量 1 1.3. 格式化字符串[编辑
  9. 3500振动监测系统培训总结
  10. FPGA 20个例程篇:12.千兆网口实现MDIO接口读写
  11. Ubuntu vsftp搭建和C# Winform FTP操作
  12. 【读书笔记】之【瞬变】
  13. python 正则findall右斜杠_Python正则表达式匹配反斜杠问题解析
  14. 【kali技巧】kali配置ssh服务
  15. 《拥抱变化——社交网络时代的企业转型之道》一第2章 找准组织目标和企业文化...
  16. 编译:一个 C 程序的艺术之旅(转载)
  17. 【CSS3】 CSS3实现“图片阴影”效果
  18. FL Studio教程之排列和编辑歌曲
  19. rust 局域网联机_Steam上有哪些值得推荐的可以多人局域网联机的游戏?
  20. mysql如何降级_降级MySQL(参考MySQL官方文档)

热门文章

  1. 编写代码,实现一个栈(Stack)的类。
  2. html屏幕垂直居中显示,HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结...
  3. MySQL基础之数据类型介绍
  4. Jmeter设置变量与引用变量(三)
  5. 一篇文章带你从认识Python装饰器到熟练使用
  6. Python中最重要的知识点:切片的操作,学习python一定要会的操作!
  7. python3中pip的安装、常见问题及万能解决方案。
  8. 在html中2em是多少px,在css设置单位px、em、rem哪个更好?
  9. php new对象 调用函数,关于JS中new调用函数的原理介绍
  10. C语言do...while语句的妙用(包裹宏替换多句代码)(代替go to语法)(隔绝外部变量)