问题标签 [virtualstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1691 浏览

c# - 如何更改文件权限以阻止 Vista 写入 VirtualStore 目录中的文件?

当我的程序第一次安装时,它会在用户的 AppData 目录中放置一个文件,然后程序将定期写入该文件。问题是在 Vista 中,不会写入用户 AppData 目录中的文件,而是写入“VirtualStore/ProgramData”目录中该文件的副本。用户 AppData 目录中的原始文件永远不会更改,似乎在程序运行时它只能访问 VirtualStore 目录中的文件。

有没有办法从 C# 应用程序内部更改该文件的权限,以便我的程序将写入 AppData 目录中的原始文件,而不是 VirtualStore 目录中的文件?

谢谢,

杰夫

0 投票
3 回答
1160 浏览

c# - VirtualStore 无法在 Vista x64 上运行

我有一个小托盘应用程序,它想要写入 Program Files 目录下自己的文件夹。我知道这不是终极设计,我会修复它,但首先我想了解它是如何工作的。

在 32 位 Vista 机器上运行它会将文件写入 VirtualStore,它的工作方式与它应有的一样。

但是当在 Vista 64 位机器上安装它时,我立即遇到 UnauthorizedAccessException 尝试写入 Program Files(和 Program Files (x86))中的目录。

VirtualStore 重定向似乎不适用于 Vista 64 位。有任何想法吗?

这是一个用 Visual Studio 2008 编写的 C# 应用程序,我使用 FileStream obj 将流保存到磁盘。

0 投票
2 回答
898 浏览

c# - C# - Vista - 使用 CommonApplicationData 时虚拟化解压缩

假设 UAC 为 ON。这不会产生关闭它的问题。

我有具有备份/恢复功能并使用 sql server 2005 express 的 ac# 应用程序。

获取 backupPath 的代码用于备份和还原,所有用途的名称都是 backup.dat

生成备份路径

备份时,db 在 **C:\ProgramData\CompName\AppName** 中生成 backup.dat,并且从该位置压缩到用户选择的目标目录没有任何困难。

恢复时,获取存档目录或文件没有问题,但解压缩时会转到 **C:\Users\UserName\AppData\Local\VirtualStore\ProgramData\CompName\AppName**

我需要知道为什么我的解压缩文件会进入虚拟存储,以便我可以恢复数据库,因为根据我对 vista sql server 编程的理解,不应该/将无法访问该虚拟存储路径。

编辑:未能提供减压 - 我认为这不是问题,但问题就在这里。

感谢您的所有帮助-TK

0 投票
4 回答
1560 浏览

vb6 - 使用 ODBC 从位于 Program Files 文件夹中的数据库读取

我们有一个应用程序将其数据库文件存储在 Program Files 目录的子文件夹中。这些文件在 Vista 和 Windows 7 中被重定向到 VirtualStore。我们使用 Microsoft DataReports (VB6) 表示来自数据库的数据。到目前为止,一切都很好。

但是我们现在想使用 Crystal Reports XI 来表示来自数据库的数据。我们的想法是不要将这些数据从我们的程序传递给 CR,而是让 CR 通过 ODBC 使用系统 DSN 从数据库中检索它。通过这种方式,我们希望为我们的用户提供更多的灵活性来设计他们自己的报告。不过,我们想要确保的是,当用户安装我们的程序或程序调用 Crystal Report 时,这些系统 DSN 配置正确。

例如,是否有一种聪明的方法可以使用系统变量来执行此操作,而不必编写检查操作系统版本、是否在操作系统上启用 UAC、是否已解除对 Program Files 文件夹的写入限制等的例程然后调整他的系统 DSN 以指向 C:\Program Files\OurApp\Data 文件夹或 C:\Users\User\AppData\VirtualStore\Program Files\OurApp\Data 文件夹?

也欢迎提出完全不同的方法的建议!

0 投票
1 回答
412 浏览

winapi - copyfile 正在复制到 VirtualStore 文件夹中?

我在 Vista 上创建了一个应用程序,它以管理员权限运行。

我正在尝试将一个文件复制到ProgramData\Application\文件夹。

而是在那里复制它的复制位置c:\Users\XXX\AppData\Local\VirtualStore\ProgramData\Application\

我不希望这个文件被复制到 Virtul 商店。

任何建议,我该如何克服这个问题?

我正在使用CopyFileAPI。

0 投票
3 回答
5540 浏览

c++ - 如何为 C++ 程序禁用 VirtualStore?

我希望我的程序在尝试在 C:\ 驱动器的根目录(例如:)等受保护位置创建文件时抛出错误FILE* FileHandle = fopen("\\file.txt", a)。而是在 %APPDATA% 下的虚拟存储中创建文件。

如何禁用该虚拟商店?

谢谢

编辑:为了清楚起见,我不是在问如何绕过安全性并在受保护的位置创建我的文件。我希望文件创建失败,以便我可以告诉用户他是个白痴。

0 投票
1 回答
1673 浏览

c# - 从 .Net 写入 HKEY_LOCAL_MACHINE 不会在 Vista 或 Windows 7 中虚拟化?

我无法理解 Vista 和/或 Windows 7 中注册表操作的 VirtualStore 虚拟化。我认为在以标准用户身份运行时尝试将某些内容写入HKEY_LOCAL_MACHINE根目录会提示 Windows 虚拟化操作并写入HKEY_CURRENT_USER/Classes/VirtualStore/机器代替。我已经看到几个较旧的应用程序的行为完全一样。

但是,当尝试在 C# 和 .Net4 中复制该行为时,对 HKLM 的写入操作会失败并出现UnauthorizedAccessException。有没有办法强制虚拟化?

为这个问题提供一些背景信息:我正在尝试读取和操作最初由另一个旧应用程序创建的注册表项。在 Vista 或 Windows 7 中,这些将位于 VirtualStore 中。我想为 WinXP 及更高版本使用相同的注册表访问逻辑,并认为我的注册表操作将被虚拟化,与旧应用程序中的操作相同(因此将在相同的键上操作)。这不能按预期工作,我知道的唯一解决方法是专门访问 VirtualStore 路径,如果用户正在运行 Vista 或 7 并且启用了 UAC ......看起来很难看,特别是如果微软决定改变虚拟化行为未来的 Windows 版本。

0 投票
1 回答
767 浏览

windows - 禁用 UAC 虚拟化后恢复文件

我们终于开始着手将我们的软件文档从程序自己的目录中移出并移到“我的文档”中。我们还在清单中添加了“requestedPrivileges”行,以防止虚拟化进一步出现问题。

但是,如果我们只这样做,那么在 Vista/7 中运行旧版本的任何人都可能在更新后在隐藏的 VirtualStore 目录中丢失他们的工作。那么迁移到 21 世纪的首选方式是什么?

坦率地说,我对复制文件有点警惕,特别是因为我似乎无法找到一种程序化的方式来获取影子目录,但大概很多其他人在我们之前一定遇到过同样的问题。

0 投票
0 回答
185 浏览

windows - Windows 和虚拟商店中隐藏的注册文件

我们刚刚发现了我们在 Windows 7 64 位版本上的注册方案的一个新问题。目前我们在应用程序的资源中保存了一个隐藏的注册文件,但很明显这不是最好的地方。今天我们发现,在 Windows 7 64 位版本中,当应用程序尝试在程序 files(x 86)/.. 中创建文件时,它实际上最终会出现在 virtualStore 中用户的 appData 中。当不同的用户尝试从不同的帐户使用该软件时,这将成为一个严重的问题(因为 virtualStore 特定于用户的帐户,并且要求用户再次注册该软件)。

我想知道人们通常将这些注册文件放在哪里?

0 投票
1 回答
1825 浏览

windows-7 - Windows 7 上的 VB6 应用程序有时仅保存到虚拟商店

我负责维护一个 VB6 应用程序,我在 Windows 7 上遇到了一个奇怪的行为。

当应用程序安装到程序文件(x86)(或者我假设它没有写入权限的任何目录)时,大多数时候,当它去本地保存文件时,它最终会出现在那个奇怪的虚拟存储位置. 这是可以接受的。但偶尔,它会尝试在本地保存并给出错误,说您不允许在此处保存,并询问您是否要保存在其他地方。好吧,至少,如果您尝试将其保存为新文件,它会这样做,如果您尝试将其保存为现有文件,则会因运行时错误 75 而崩溃。

这两个文件都只是用“Open filename As #1”打开的——谁能给我更多信息,说明是什么迫使它使用或不使用用户无权写入的文件夹中的虚拟存储?

或者,我尝试以管理员身份运行该应用程序,但它在启动时崩溃, - 还没有弄清楚为什么程序会在锁定模式下运行而不是以管理员身份运行。