Unicode 转码 Ansi ,用于读取注册表后的值转换

 1 char* UnicodeToAnsi(TCHAR* wstr)     //转换字符编码
 2 {
 3     if( !wstr )
 4         return NULL;
 5
 6     int strlen = ::WideCharToMultiByte(CP_ACP, NULL, wstr, wcslen(wstr), NULL, 0, NULL, FALSE);
 7     char* str = new char[strlen + 1];
 8     ::WideCharToMultiByte(CP_ACP, NULL, wstr, wcslen(wstr), str, strlen, NULL, FALSE);
 9     str[strlen] = ‘\0‘;
10
11     return str;
12 }

读取注册表后转换为可用的 字符串!!!

时间: 2024-08-01 22:45:37

Unicode 转码 Ansi ,用于读取注册表后的值转换的相关文章

64位读取注册表与32位的区别

有一个读取注册表信息的程序  if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, subkeystring , 0, KEY_READ, &hKey) == ERROR_SUCCESS)/ ,在32位下完全正常,但是在64位返回值正确,但就是读不到东西.后来单步发现读不到东西,就搜64位读注册表失败,发现需要加 if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, subkeystring , 0,KEY_READ|KEY_WOW64_64KEY, &am

C++读取注册表

昨天受一朋友要求,帮忙写一个用C++读取注册表的程序.这个朋友是搞Java的,肯定不知道C++怎么写啦!他的需求也奇怪:用js调用一个浏览器插件,通过插件获取注册表中指定键的值,插件肯定是用C++写了. 于是乎我就在网上查了一下"C++读取注册表",一搜一大片但都是一些初学C++的人写的,多数不能用,而且那写的程序真是无力吐槽--一怒之下我就自己花一个小时写了一个,费话不说了,直接上代码: C++读取注册表 GetRegValue.h: #ifndef __GETREGVALUE_H_

C#读取注册表信息

注册表是视窗系统的一个核心的数据库,在这个数据库中存放中与系统相关的各种参数,这些参数直接控制中系统的启动.硬件的驱动程序安装信息以及在视窗系统上运行的各种应用程序的注册信息等.这就意味着,如果注册表因为某些原因受到了破坏,轻者是视窗系统启动过程出现异常,重者就有可能导致整个系统的完全瘫痪.所以正确的认识注册表,及时的备份注册表,对于视窗用户就显得相当重要. C#就可以十分方便.简洁的开发出操作注册表的程序.单击"开始/运行",在"打开"的后面填入"reg

Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法

原文:Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法 今天同事在做安装包的时候,有一个读取注册表路径的需求,需要根据读取的值来写配置文件,按照常规的做法,写好了注册表搜索方法,但是在测试的时候,发现总是会将系统盘下的Program Files\xxx路径读取为Program Files (x86)\xxx,如下图所示: 之后测试了如果读取非系统盘下的此路径,不会出现这个问题. 但是这个路径一般情况下都是默认安装在

用javascript技术读取注册表中软件安装位置并启动本地软件

1.首先读取注册表中本地软件安装的位置,如果未安装则无就跳转到下载页面. 2.启动软件,关闭页面. 3.如报错提示. <SCRIPT language=javascript>  <!--   function killErrors(){  alert("请将您浏览器Internet选项中的“对没有标记为安全的ActiveX控件进行初始化和脚本运行”设置为“启用”!/n/n然后刷新本页登陆!");  return true;}   window.onerror = ki

读取注册表获取Windows系统XP/7/8/10类型(使用wcscmp比较wchar[]内容)

很多方案是采用GetVersion.GetVersionEx这两个API来查询操作系统的版本号来判断当前的操作系统是Windows系列中的哪个,在Win10没有出现前,这种方法是行的通的,但是Win10出现后此方法对于判断Win10就不准了. 在此提供一个读取注册表的方法,已经验证过可行: [cpp] view plain copy //查看注册表获知:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentV

如何写入和读取注册表

参考下面代码,写入和读取注册表 1 string registrySubKey = @"SOFTWARE\RegistryTest"; 2 RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(registrySubKey, true); 3 if (registryKey == null)//没有则创建路径 4 { 5 Registry.LocalMachine.CreateSubKey(registrySubKey);

读取注册表

读取注册表需要using Microsoft.Win32 读取指定路径的注册表,例如如下位置: RegistryKey uninstall = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\MicroSoft\Windows\CurrentVersion\Uninstall"); 从其子项中读取名称含"QQ"的子项 1 RegistryKey uninstall = Registry.LocalMac

C#读取注册表中二进制类型的值(REG_BINARY)

如需要读取注册表中某个键的值, 例如读取DriverDesc对应的值,一般情况下为String类型,读取代码如下: RegistryKey driverKey = Registry.LocalMachine.OpenSubKey(@"System\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000"); string result = (String)driverKey.GetValue