64位系统访问注册表SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

 1  public int ChecNonkWoW64()
 2         {
 3
 4             try
 5             {
 6                 int x64 = 0;
 7                 string subKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
 8                 string[] subkeyNames;
 9                 RegistryKey software = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
10                 software = software.OpenSubKey(subKey);
11                 subkeyNames = software.GetSubKeyNames();
12                 MessageBox.Show(subKey.ToString());
13
14                 //取得该项下所有子项的名称的序列,并传递给预定的数组中
15                 foreach (string keyName in subkeyNames)
16                 //遍历整个数组
17                 {
18                     if (keyName.ToUpper().Contains("FF1CE"))
19                     //判断子项的名称
20                     {
21                         bool ok = Isx64Code(keyName);
22                         if (ok)
23                         {
24                             x64 = 1;
25                         }
26                         else
27                         {
28                             x64 = -1;
29                         }
30                         software.Close();
31                         break;
32                     }
33                 }
34                 MessageBox.Show(x64.ToString());
35                 return x64;
36             }
37             catch (Exception)
38             {
39
40                 throw;
41             }
42         }
时间: 2024-08-08 19:17:59

64位系统访问注册表SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall的相关文章

C# 32位程序在64位系统下注册表操作

在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制.目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与64位程序冲突 相关资料请查看32位程序在64位系统下运行的重定向机制 下面是以获取操作系统安装密匙KEY的案例: using System; using System.Collections.Generic; using System.Linq; using System.Text; using

64位系统里注册32位软件

1.在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\netconn.dll 2.对于UAC.低权限用户应使用管理员帐户. 3.有时候注册

64位系统下注册32位dll文件

64位系统下注册32位dll文件 在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\MakerCom.dll 原文地址:https://w

The useful App Paths registry key : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths how to load BPLs without writing them in the system directory or in the application directory. I suggested to use the "App paths" registry key [HKEY_LOCAL_MACHINE\SOFTWARE\Mi

Windows 7/8 64位系统 不能注册32位dll 文件的解决方案

这几天碰到一个问题,运行一个易语言开发的软件出现以下错误.我的系统是 Windows7 64 位 专业版.在系统盘 windows/system32  下查找 dm.dll.但是没有这个文件.于是我到百度去查找相关答案,问的人有很多,答案却是相同的,我断定这些都是复制来粘贴去的,都没有一个好的答案,有些更是离谱的发疯了.到百度知道提问,也是复制粘贴到,牛头不对马嘴. 错误信息:不能载入OCX组件 "Dm1.0版1.0版",其组件或类型库文件名为"dm.dll",数字

Windows 64位操作系统和32位操作系统在注册表上的有一点不一样

Windows 64位操作系统为提供对32位应用程序的兼容,在“C:\Windows\SysWOW64”目录下保留了很多32位的工具(如CMD.exe是32位的).在Windows 64位操作系统上跑三十二位应用程序,操作注册表,搜素目录时,微软通过反射(Reflector),会将“\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall”替换为"\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\C

使用.NET 4.0+ 操作64位系统中的注册表

一.64位系统中的注册表 以 LocalMachine 中的启动项为例: 64位应用的注册表位置还是在: SOFTWARE\Microsoft\Windows\CurrentVersion\Run 而 32位应用的注册表位置却是在: SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run 二.在.NET4.0以前(不含4.0)操作注册表的方法 RegistryKey hklm = Registry.LocalMachine; Regis

关于32位程序在64位系统下运行中需要注意的重定向问题(有图,很清楚)

0x00 前言 最近学习了[email protected]的文章<Persistence Architecture Matters>,恰巧解决了我之前遇到过的一个问题,理清了文件和注册表重定向中需要注意的细节 大家在学习的过程中难免也会碰到,所以在此分享一下. <Persistence Architecture Matters>的链接:https://labs.mwrinfosecurity.com/blog/persistence-architecture-matters/ 0

去除win7 64位系统桌面图标小箭头

去除win7电脑系统桌面图标的快捷方式的小箭头: 首先在桌面新建一个文本文档,设为去除箭头.txt,第二步,把如下代码粘贴到文档中. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,196" /t reg_sz /f taskkill /f /