小编sti*_*ijn的帖子

Windows 7 访问拒绝可执行文件.. 什么?

自从我开始使用 Windows 7 以来,这个问题一直困扰着我。有时我会在其他论坛上看到类似的问题,但我从来没有看到答案。以下是几乎总是会重现它的两种场景:

探索者之路

  1. 使用资源管理器,导航到至少包含一个 exe 文件的目录
  2. 立即上一级目录
  3. 删除刚刚导航到的目录
  4. 产生文件夹访问被拒绝对话框,说明您需要执行此操作的权限您需要管理员的权限才能更改此文件夹,按钮再次尝试取消
  5. 点击再次尝试永远不会立即起作用。等待一分钟左右,然后再次单击它确实有效

注意:如果在步骤 2 中等待一分钟或更长时间再上一个目录,则不会出现问题,可以删除该文件夹

Visual Studio 方式

  1. 构建一个生成 exe 文件的项目
  2. 运行可执行文件然后关闭它
  3. 立即再次构建项目(例如,通过更改源文件中的单个字符)
  4. 产生致命错误 LNK1168:无法打开 /path/to/the.exe 进行写入

注意:如果在步骤 2 中等待一分钟或更长时间再重新构建,则不会出现问题。

一些规格

  • 在 VS2008/2010/2011 的 Windows 7 32 位和 64 位上都发生
  • 发生在 3 台不同的机器上
  • 我没有任何类型的病毒扫描程序
  • 我确实禁用了一堆服务,但没有什么可以阻止 Windows 正常运行,UAC 也被禁用
  • 发生在任何类型的光盘上
  • 我总是使用管理员组中的用户帐户

显然,这两种情况都非常相似,并且具有极强的可重现性。所以我认为某些进程出于某种原因必须打开文件,然后再释放它。但是,使用 sysinternals

handle -a
Run Code Online (Sandbox Code Playgroud)

有问题的 exe 文件永远不会出现。(这是使用句柄的正确方法,对吗?)因此,当资源管理器/VS 报告他们无法访问该文件时,handle.exe 表示它没有在任何地方使用。这让我很无能为力,所以我想知道是否有人可以提出解决方案:为什么会发生这种情况,以及如何解决?

针对提出的问题进行更新

  • 我无法在安全模式下重现该问题
  • 安装了一堆shell扩展。从 SellExView,这里是所有机器通用的非微软的:NitroPDF、WinRAR、TortoiseGit、TortoiseSvn、NVidia。我会发现 Tortoise 最可疑,尽管“状态缓存”选项都设置为“状态缓存仅用于一个文件夹,没有递归覆盖”,即没有运行 TortoiseCache.exe。 …

windows-7 visual-studio

14
推荐指数
1
解决办法
8631
查看次数

由于音频控制器(Windows 7),笔记本电脑从睡眠中唤醒一次

笔记本电脑是最近的戴尔 XPS 15z,问题如下(大约 90% 的尝试可重现):

  • 使用“开始”->“睡眠”或合上盖子使笔记本电脑进入睡眠状态
  • 笔记本电脑在大约 5 秒后进入睡眠状态,但立即再次唤醒显示黑屏(触摸键盘或移动鼠标显示唤醒后正常进入的登录屏幕)
  • 再次登录,让笔记本电脑进入睡眠状态
  • 笔记本电脑保持睡眠模式

powercfg -lastwake第一次即时唤醒后的输出显示音频控制器负责。为什么会这样,为什么只尝试第一次,以及如何解决这个问题?

Wake History Count - 1
Wake History [0]
  Wake Source Count - 1
  Wake Source [0]
    Type: Device
    Instance Path: PCI\VEN_8086&DEV_1C20&SUBSYS_04461028&REV_05\3&11583659&0&D8
    Friendly Name:
    Description: High Definition Audio Controller
    Manufacturer: Microsoft
Run Code Online (Sandbox Code Playgroud)

windows-7 sleep power-management

10
推荐指数
1
解决办法
2116
查看次数

在 SSD 系统上禁用 Superfetch 背后的基本原理是什么?

我知道 Superfetch 旨在使用 RAM 来缓存 HDD,因为它们具有高延迟,这是 SSD 所没有的。但是,我不明白 SSD 如何胜过 RAM。

Windows 7 是否会在具有足够快 SSD 的系统上自动禁用 Superfetch 以释放更多 RAM?

windows-7 ssd superfetch

9
推荐指数
2
解决办法
1564
查看次数

使用fzf浏览历史记录时如何删除历史行

bash 历史记录中经常有一些我不再需要的项目和/或太长,以至于与 fzf 一起使用时几乎匹配输入的任何文本,使得历史记录的模糊匹配有点无用。所以我正在寻找一种方法,能够在使用 fzf 查看历史记录时删除这些行,但这太天真了(加上错过了重新加载,但这不是这里的问题):

export FZF_CTRL_R_OPTS="--bind 'ctrl-d:execute-silent(history -d {1})'"
Run Code Online (Sandbox Code Playgroud)

它不会删除任何历史记录,我假设这可能是因为 fzf 运行类似的命令,$SHELL -c "history -d 1000"但这是一个新的 shell(我的 $SHELL 是 /bin/bash),它没有历史记录(或者至少不是当前的历史记录)壳)。这个假设正确吗?以及如何解决这个问题?

bash command-history

8
推荐指数
1
解决办法
2936
查看次数

nvidia 3d 视觉是如何准确实现的

在我的公司,我们多年来一直使用立体快门眼镜以及能够处理垂直刷新率 > 120Hz 的快速 crt 屏幕。最近很难找到这样的显示器,所以我们决定尝试一种支持 120Hz 刷新率的新 LCD,并且正如 nVidia 网站上承诺的那样,支持 3D 视觉。我们得到了三星 2233RZ。我们实现立体声的方式是以 120Hz 的频率交替显示左右图像(使用 DirectX),同时为相应的眼睛交替打开/关闭快门(通过发送与 DirectX 同步的触发器),因此实际图像以 60Hz 的 3D 频率感知。毫无疑问,这个系统是有效的。

然而,运气不好,按原样使用屏幕 + 我们的百叶窗并不太奏效:

  • 液晶显示器上的像素在一帧的持续时间内(8 毫秒)处于开启状态
  • pc发出的帧在实际绘制在屏幕上之前有大约半帧的延迟
  • 换句话说,当快门打开时(也是 8 毫秒),眼睛看到左半部分和右半部分图像

我们用一些硬件解决了这个问题,以补偿延迟并缩短百叶窗打开的时间。到目前为止一切顺利:3D 感知非常好,但仅适用于屏幕中间的小图像。

更多的测量揭示了一些让我们非常惊讶的事情:2233RZ 并没有一次性显示整个画面(我们对 LCD 屏幕的期望:我们这里的任何 LCD,还有 DLP 投影仪,都可以这样做),而是将其写成一行按行,就像 crt 一样。因此,无法通过百叶窗使立体声正常工作,因为左上角像素打开和右下角像素变为 1 之间存在 8 毫秒的延迟。而且,当右下角打开时,左上角已经关闭。

问题是:nVidia 是如何做到的,我们能做到吗?他们的 3D 视觉套件中的眼镜使用与我们相同的原理,所以它必须在屏幕/视频卡中,不是吗?他们如何强制屏幕一次性显示整个帧,以便所有像素同时打开和关闭?这是可以在软件中设置的吗?或者只能在使用其中一张被列为与 3D 套件兼容的 GeForce 卡时才能做到这一点(我们使用 Quadro 570 进行了测试,使用双链路电缆)?如果是这样,他们的 DVI 协议是否类似于“嘿,我是 GeForce,您是 120Hz 屏幕,您能否在 8 毫秒内显示一帧,以便我们可以做一些立体的东西?” 并且屏幕响应“是的,我可以做到”或“不,我不能,因为你是 Quadro”?

编辑:刚刚发现还有一个“3D Vision Pro”,属于该站点的确实支持 Quadro FX570。最大的区别是眼镜使用射频而不是红外发射器。但这意味着我们使用的电脑满足 3D 视觉的要求。

所以“实际”的重要问题是(感谢 Mbraedley):我如何告诉卡和屏幕进入 3D 模式,以便屏幕一次更新所有像素? …

windows 3d-vision nvidia-graphics-card

7
推荐指数
1
解决办法
588
查看次数