Vista操作系統對於App.Path的引用錯誤問題

lanWay 2007-09-11 11:30:36
錯誤描述:
在一個主程序AppMain中使用ado打開AppMdb.mdb文件時,此mdb文件為主程序的下級文件夾FolderMdb,在打開ado時,使用了app.path方式打開connectionstring="provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\FolderMdb\Appmdb.mdb;Jet OLEDB",使用wise制作安裝包AppSetup,
第一次安裝時,AppMdb.mdb文件內Table1的值設定為20070909
第二次重新制作安裝包安裝時,AppMdb.mdb文件內Table1的值設定為20070911
安裝的路徑都為:C:\program FILES\AppMain\FolderMdb,主程序AppMain:C:\program FILES\AppMain

當vista以一個users的user登錄vista操作系統時,如果直接執行appMain時,取出Appmdb的Table1值是20070909{文件打開的是第一次安裝的值,文件所在路徑為:C:\users\使用者(user)\Appdata\local\VirtualStore\Program files\AppMain\FolderMdb\AppMdb.mdb)},如果以系統管理員方式執行主程序時,取出Appmdb的Table1值是20070911,{文件打開的是最後一次安裝(第二次安裝)的值,文件所在路徑為:C:\Program files\AppMain\FolderMdb\AppMdb.mdb)}


現在如果刪除C:\users\使用者(user)\Appdata\local\VirtualStore\Program files\AppMain\FolderMdb\AppMdb.mdb的文件,或以系統管理員身份執行時,則都能正常讀取出20070911的值

問:在VISTA使用App.path時,不以系統管理員身份執行主程式時,如何才能正常讀取出最新的數據,而不是vista的陰影複製的虛擬備份內的值???謝謝
...全文
235 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanWay 2007-09-13
  • 打赏
  • 举报
回复
UP
lanWay 2007-09-12
  • 打赏
  • 举报
回复
我知在net中可以把上授權寫入assembly文件中去,但vb6卻不知...sorry,麻煩你了
lanWay 2007-09-12
  • 打赏
  • 举报
回复
Manifest:IsUserAdmin.exe.manifest
Sample application manifest file:
<?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="IsUserAdmin"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


jiangsheng,不好意思,現在我的程式是用vb6寫的,不知如何設定requestedPrivileges?能何詳細的指點一下,萬分感謝
guyehanxinlei 2007-09-12
  • 打赏
  • 举报
回复
UP
蒋晟 2007-09-11
  • 打赏
  • 举报
回复
You should embed a Vista manifest to avoid any unwanted/unneeded file or registry virtualization. Just set the requestedPrivileges execution level to asInvoker, as described in this document (page 67)
http://www.microsoft.com/downloads/details.aspx?FamilyID=ba73b169-a648-49af-bc5e-a2eebb74c16b&DisplayLang=en
reference

http://www.microsoft.com/technet/technetmag/issues/2007/06/UAC/
lanWay 2007-09-11
  • 打赏
  • 举报
回复
有人幫忙頂一下嗎?
頂著有分...
謝謝大家了
lanWay 2007-09-11
  • 打赏
  • 举报
回复
有人幫忙頂一下嗎?
謝謝了
蒋晟 2007-09-11
  • 打赏
  • 举报
回复
不是说了么
加requestedPrivileges 一节
参考http://www.microsoft.com/downloads/details.aspx?FamilyID=ba73b169-a648-49af-bc5e-a2eebb74c16b&DisplayLang=en
lanWay 2007-09-11
  • 打赏
  • 举报
回复
jiangsheng,您好:
謝謝你提供的資料,http://www.microsoft.com/technet/technetmag/issues/2007/06/UAC/ 中的描述:"针对此虚拟化目的,如果某个进程是 32 位的(与 64 位相对)、不是使用管理权限运行,并且没有指令清单文件表明它是为 Windows Vista 编写的"中的清單文件該如何編寫?
謝謝

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧