Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 我的注册表项在哪里?windows 7,win64_Windows 7_Registry_Win64 - Fatal编程技术网

Windows 7 我的注册表项在哪里?windows 7,win64

Windows 7 我的注册表项在哪里?windows 7,win64,windows-7,registry,win64,Windows 7,Registry,Win64,Windows7和Win64是一个新的平台me,编程明智,所以不知道发生了什么,我用下面的命令在Windows7中的windows注册表中保存了一个64位的项,问题是相同的代码能够返回REG_OPENED_EXISTING_key返回值,这意味着密钥创建成功,并且该函数能够在后续调用中读取/打开密钥,但当我尝试在regedit.exe中的位置查找密钥时,我无法在树中找到它,无论是在HKLM_LOCAL_MACHINE/Software/MyProject中还是在HKLM_LOCAL_MACHIN

Windows7和Win64是一个新的平台me,编程明智,所以不知道发生了什么,我用下面的命令在Windows7中的windows注册表中保存了一个64位的项,问题是相同的代码能够返回REG_OPENED_EXISTING_key返回值,这意味着密钥创建成功,并且该函数能够在后续调用中读取/打开密钥,但当我尝试在regedit.exe中的位置查找密钥时,我无法在树中找到它,无论是在HKLM_LOCAL_MACHINE/Software/MyProject中还是在HKLM_LOCAL_MACHINE/Software/Wow6432Node/MyProject中都没有显示

有人能告诉我这里发生了什么事吗

 HKEY hKey ;
 HKEY  key = HKEY_LOCAL_MACHINE;
 DWORD disValue ;
 string subKey = "Software\\MyProject\\";

 LONG retValue = RegCreateKeyEx( key, subKey.c_str(), 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &disValue ) ;
 if ( retValue == ERROR_SUCCESS )
 {
    if ( disValue == REG_CREATED_NEW_KEY )// new key created. This value will change to REG_OPENED_EXISTING_KEY if the key already existed, the function then simply open the key.
       return true;
    return false;
 }

如果您的进程不是以管理员身份运行,它将无法访问
HKLM\SOFTWARE
。出于兼容性原因,Windows Vista和Windows 7随后将应用名为“”的内容。这会将对HKLM\软件的访问重定向到进程可以访问的位置。它对尝试写入
C:\Program Files
的遗留进程执行类似的操作


Windows如何确定您的应用程序是“遗留”的,并且需要这种兼容性攻击?您需要通知Windows您的进程是Windows Vista感知的,并且您不想被黑客攻击。

我将以下清单文件添加到项目中,并将CREATEPROCESS\u manifest\u RESOURCE\u ID RT\u manifest“MyProject.exe.manifest”添加到RESOURCE.rc文件中。瞧

**MyProject.exe.Manifest**

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
  xmlns="urn:schemas-microsoft-com:asm.v1"
  manifestVersion="1.0">

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
      <!--This Id value indicates the application supports Windows Vista functionality -->
    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
      <!--This Id value indicates the application supports Windows 7 functionality-->
    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application> 
</compatibility>

<assemblyIdentity
    name="MyCompany.Apps.MyProject"
    processorArchitecture="*"
    version="1.0.0.0"
    type="win32"/>
<description>App description</description>
<dependency>
    <dependentAssembly>
    <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="*"
        publicKeyToken="6595b64144ccf1df"
        language="*"
    />
    </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
    <requestedPrivileges>
        <requestedExecutionLevel
        level="requireAdministrator"
        uiAccess="false"/>
    </requestedPrivileges>
</security>
</trustInfo>
</assembly>
**MyProject.exe.Manifest**
应用程序描述

您是否以管理员身份运行?你对注册表虚拟化有意见吗?@Roger不,我没有,我的程序也没有,即使我以管理员身份运行regedit.exe,我也看不到条目。不确定什么是注册表可视化。我已经发布了下面的更改,请看一看。我做错了什么?