VC ++ 6.0 App必须以Admin身份运行才能访问Common Application Data区域中的DB

时间:2011-03-01 17:16:33

标签: visual-c++ mfc

我有一个用VS 6编写的旧C ++ / MFC应用程序。我试图通过将DB目录移动到Common Application Data区域使其符合Windows Vista和7。但是当我尝试使用DAO打开Access数据库时,它会读取主表,找不到记录,并报告没有找到数据。但是,如果我选择“以管理员身份运行”,那么我可以毫无问题地访问它。

我应该将数据库存储在其他位置吗?如果没有,为什么它无法正确读取表格?

此外,我尝试使用下面列出的清单,我在网上找到,但它似乎并没有强制应用程序以管理员身份运行,所以我仍然得到无数据发现消息。但是我对清单还不太了解,所以我可能没有正确配置它。

感谢您提供任何帮助或建议。

    FieldAppl          

1 个答案:

答案 0 :(得分:0)

这是我用来确保我的自定义编写安装程序以管理员身份运行的清单。除了这个清单之外,我还使用Verisign证书对应用程序进行了数字签名。

斯科特

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="Setup"
     type="win32"/> 

  <description>Software Installation</description> 
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly

&GT;