问题标签 [windows-vista]

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 投票
2 回答
262 浏览

c++ - Vista 上的 IDebugProgramProvider2.GetProviderProcessData

作为 IE 6/7 的 JavaScript Profiler 的一部分,我需要将我创建的自定义调试器加载到 IE 中。我在 XP 上运行良好,但无法在 Vista 上运行(全文在这里:http ://damianblog.com/2008/09/09/tracejs-v2-rip/ )。

在 Vista 上调用 GetProviderProcessData 失败。有人有什么建议吗?

谢谢,达米安

0 投票
4 回答
12550 浏览

windows - 任何类似于超级终端应用程序的工具?

HyperTerminal 是一个程序,您可以使用调制解调器、空调制解调器电缆或以太网连接来连接到其他计算机、Telnet 站点、公告板系统 (BBS)、在线服务和主机计算机。

但我对超级终端的主要用途是通过本地(虚拟)COM 端口与硬件通信。我想由于某种原因它在 Vista 中被删除了。

有没有其他功能类似于超级终端的工具?

【就算不是vista也好想知道】

0 投票
4 回答
101088 浏览

networking - Virtualbox 主机-访客网络设置

如何在 Windows vista 中的主机和来宾操作系统之间建立网络?

0 投票
1 回答
726 浏览

windows-vista - Vista 是否对 DCOM 调用中的接口 ID 进行更严格的检查?(存根收到错误数据)?

我希望每个人都能原谅这个问题的长度和叙述方式。我决定在我的博客中详细描述一下这种情况。后来我看到乔尔对这个网站的邀请,我想我会把它贴在这里看看是否有人对这种情况有任何见解。

我编写了一个应用程序,现在支持一个应用程序,该应用程序包含一个 Visual Basic 胖客户端,它将 DCOM 与使用 ATL 用 C++ 编写的中间层 COM+ 组件进行通信。它在我们所有的八个办公室中运行。每个办公室都有一个后端服务器,其中包含 COM+ 应用程序(由 18 个独立的组件组成)和 SQLServer。SQLServer 通常位于同一后端服务器上,但不一定如此。

我们最近将我们最大的办公室——纽约——的后端服务器从一个 MSC 集群迁移到了一个托管在 VMWare 的 ESX 技术上的新虚拟机。由于 COM+ 应用程序的位置已从旧服务器移动到具有不同名称的新服务器,因此我必须重定向所有客户端,以便它们在新服务器上激活 COM+ 应用程序。该程序是旧帽子,因为我对经历过类似基础设施升级的几个较小的办公室做了基本相同的事情。

一切看起来都很正常,周一早上,整个办公室——大约 1,000 台 Windows XP 工作站——都在新服务器上顺利运行。但随后电话来自我的移动组——有一位在家工作的律师使用 VPN 连接,在被重定向到新服务器后出现奇怪的错误:

嗯?我以前从未见过此错误消息。是新服务器吗?但是办公室里的所有工作站都工作正常。我告诉移动组将律师切换回旧服务器(仍在运行),错误消失了。那么有什么区别呢?原来这位律师正在家里运行 Vista。

我们的任何办公室都没有运行 Vista,但我们确实有一些在家里运行 Vista 的律师(当然有些在我的纽约办公室)。我也这样做,我从未见过这个问题。为了确认存在问题,我启动了我的 Vista 笔记本电脑,将其指向新服务器,并得到了同样的错误。我将它指向旧服务器,它运行良好。显然,Vista 和新服务器上的组件存在一些问题——这个问题似乎不会影响 XP 客户端。会是什么呢?

下一站——我的笔记本电脑上的应用程序错误日志。这产生了有关错误的更多信息:

界面 ID 提供了我解开谜团所需的线索。“预期”接口 id 标识 MDAC 的 Recordset 接口——特别是该接口的 2.1 版。“返回”接口对应于 Recordset 的更高版本(2.5 版与 2.1 版的不同之处在于在 vtable 的末尾包含了一个附加条目——方法 Save)。

实际上,我的组件接口公开了许多将 Recordset 作为输出参数传递的方法。那么他们是否突然返回了更高版本的 Recordset —— 具有不同的接口 ID?显然情况确实如此。然后我想,这有什么关系。对于旧接口的客户端,vtable 看起来是一样的。事实上,我怀疑如果我们谈论的是进程内 COM,而不是 DCOM,这种看似无害的阻抗失配会被默默地忽略,不会造成任何问题。

当然,当进程和机器边界发挥作用时,客户端和服务器之间存在代理和存根。在这种情况下,我将类型库编组与自由线程编组器一起使用。所以有两个谜团需要解开:

为什么我在新服务器上的方法的输出参数中返回了不同的接口?

为什么这只会影响 Vista 客户端?

由于我的服务器软件托管在我的八个办公室的每个服务器上,我决定尝试按顺序将我的 Vista 客户端指向所有这些办公室,以查看哪些与 Vista 有问题,哪些没有。光照测试。一些较旧的服务器仍可与 Vista 一起使用,但较新的服务器则不能。尽管一些较旧的服务器仍在运行 Windows 2000,而较新的服务器在 2003 年,但这似乎不是问题。

在比较了组件 DLL 的日期之后,似乎每当客户端指向具有 2003 年之前的组件 DLL 的服务器时 Vista 都可以。但是那些拥有日期在 2003 年之后的 DLL 是有问题的。信不信由你,多年来,服务器组件上的代码没有(或至少没有重大)变化。显然,不同的日期仅仅是由于在我的开发机器上重新编译了我的组件。似乎其中一个重新编译发生在 2003 年。

灯泡亮了。在将记录集从服务器传回客户端时,我的 ATL C++ 组件将接口称为 _Recordset。此符号来自嵌入在 msado15.dll 中的类型库。这是我在 C++ 代码中的行:

不要被msdad15.dll中的15个骗了。显然,这个 DLL 在长系列的 MDAC 版本中没有更改名称。

那天我编译应用程序时,MDAC 的版本是 2.1。所以 _Recordset 使用 2.1 接口 id 编译,即运行这些组件的服务器返回的接口。

所有客户端都使用 1999 年生成(我相信)的 COM+ 应用程序代理。定义我的接口的类型库包括以下行:

这解释了为什么他们希望在我的方法的输出参数中使用 Recordset 2.1 版。很明显,问题出在我 2003 年的重新编译上,而且当时 _Recordset 符号不再对应于 2.1 版。实际上 _Recordset 对应于 2.5 版本,其接口 id 不同。我的解决方案是在我的 C++ 代码中将所有引用从 _Recordset 更改为 Recordset21。我重建了组件并将它们部署到新服务器。瞧——客户似乎又高兴了。

总之,有两个困扰我的问题留给我。

为什么代理/存根基础结构似乎与 Vista 客户端的行为不同?与 XP 相比,Vista 似乎对从方法参数返回的接口 ID 进行了更严格的检查。

我应该如何在 1999 年以不同的方式对此进行编码,以免发生这种情况?接口应该是不可变的,当我在较新版本的 MDAC 下重新编译时,我无意中更改了我的接口,因为这些方法现在返回了不同的 Recordset 接口作为输出参数。据我所知,当时的类型库没有特定于版本的符号——也就是说,更高版本的 MDAC 类型库定义了 Recordset21,但该符号在 2.1 类型库中不可用。

0 投票
2 回答
2584 浏览

encryption - 跨机器加密/解密是禁忌

我在 XP 和 Vista 之间使用了对“CryptUnprotectData”(从 Crypt32.dll 公开)的相同调用。在 XP 中运行良好。在 Vista 中运行时出现以下异常:

正如预期的那样,crypt32.dll 的版本在 XP 和 Vista 之间是不同的(w/XP 实际上有更新的版本,可能是 SP3 或其他一些更新的结果)。

更具体地说,我正在加密数据,将其放入注册表,然后使用“CryptUnprotectData”读取和解密。UAC 已关闭。

有人见过这个吗?

0 投票
3 回答
680 浏览

windows - 检测 WinHelp 是否安装在 Vista 或更新的 Windows 上

是否有可靠的方法来检测 Windows Vista 或更新版本的 Windows 上是否安装了 WinHelp?如果可能的话,我想要一个不特定于任何特定 Windows 版本的解决方案。

我已将此问题发布到其他留言板上,并在安装 Microsoft 记录的 WinHelp 和注册表条目之前和之后得到了有关 Winhlp32.exe 大小的答案,但没有一个是正确的。

0 投票
43 回答
8081 浏览

php - 适用于 Vista 的最佳 PHP 编辑器

回答我的问题时要考虑的几点:

  1. 我是 PHP 新手,来自 Windows / .NET 背景
  2. 我的 PHP 开发环境由 Vista x64 / IIS7 和 FastCGI / PHP5 组成
  3. 我需要一些轻量级的东西
  4. 以下功能会很好
    • 语法高亮和着色
    • 代码格式化
    • 自动完成
0 投票
1 回答
8292 浏览

windows - 在 Windows Vista 上以管理员身份运行快捷方式时,如何在不同的目录中启动快捷方式?

我的桌面上有一个快捷方式,可以打开一个带有许多我需要的参数的命令提示符。我将“开始于”字段设置为 d:\,它按预期工作(提示从 d: 开始)。当我选择高级 -> 以管理员身份运行然后打开快捷方式时,它会在 C:\Windows\System32 中启动,即使我没有更改“开始于”字段。我怎样才能让它在 d:\ 中启动?

0 投票
4 回答
4720 浏览

windows - 如何在 Windows Vista 中模拟/替换/重新启用经典的混音器控件(或命令)?

我有一个问题(现在已经有一段时间了)——Vista 中的新混音器堆栈具有新的很酷的东西,但也重新发明了轮子。许多过去在 Windows 系统上使用 Volume Mixer 将不同的有声输出混合到一个输入(例如 Wave-out + Line-in --> Stereo Mix)的应用程序已经停止工作。这种行为的主要例子是 Shoutcast DSP 插件(可能对解决方案测试有用)。

如何重新启用 XP 混音器控件,或者以某种方式模拟这种行为,以便程序 (SC DSP) 可以正确管理麦克风/线路输入播放音量以及 Wave-out 播放音量?

我的想法是模拟一个连接到 Vista 混音器中的程序,用于 Wave-Out 和 Line-out(或麦克风扬声器音量——所有播放,显示为单独的可调节“程序”,以便 Vista 混音器可以参考它)并在某种模拟下将其“挂钩”到系统中,该模拟将自己作为程序的旧音量混音器控制界面,但坦率地说,我不知道该怎么做。

澄清一下:这不是我的 PC(它是 HP Pavilion 笔记本电脑)。问题的存在似乎主要是因为 Vista 混音器控制单独的程序,而不是单独的输入/输出。硬件完全能够完成使用 Windows XP 时所需的操作。我很清楚这是一个驱动程序问题,但驱动程序只是为 Vista 通过接口呈现给程序员的内容而准备的。混音器设备 - 如在操作系统中所见,但它可能在软件中 - 基于用于 Windows 音频控制的混音器 API。

在 Vista 上使用 Google 搜索和线路输入播放音量控制以获取有关该问题的更多信息(以及受其影响的用户数量)。当然,为 WinAMP 重写 Shoutcast Source DSP 插件就可以了,但这不太可能发生……

0 投票
2 回答
273 浏览

c# - 以编程方式处理 Vista 侧边栏

是否有一个 api 以编程方式将 vista 侧栏带到前面(Win + Space)并执行相反的操作(将其发送到后台)。