Articles of 兼容性

在Linux中replace<conio.h>

我需要将一个Windows C ++项目转移到Linux,但是我目前使用MS <conio.h>这是不是Linux或标准兼容。 你build议什么头replace它在Linux中使用? 我宁愿答案也是跨平台的。

如何以编程方式设置“以pipe理员身份运行此程序”

我在Vista中遇到了一个很好的“bdeadmin.exe”问题。 首先,让我们得到可预见的回应: “你不应该要求你的申请被提升。” 这个呢。 这就是生活。 “你需要embedded一个清单文件。” 它已经被编译,已经有很多年了,创build它的公司无意再重复它,并且从合并模块(MSM文件)安装。 “BDE已经过时了,你应该使用dbExpress” 一百五十万行代码 “Nuff说。 “删除EXE旁边的清单文件”。 试过了,什么也没做。 作为一个testing,同样的清单文件能够使其他几个EXE文件需要提升,而不是我想要的。 在那里有东西阻止外部清单被读取。 “创build一个快捷方式并设置SLDF_RUNAS_USER。” 不能这样做,这是一个控制面板小程序。 唯一有效的工作是在其“属性”窗口的“兼容性”选项卡下设置“以pipe理员身份运行此程序”。 我不应该告诉用户这样做。 生意不好。 我需要安装程序这样做。 MSM文件使用静态path。

Windows 7 RC中的“该程序可能没有正确安装”消息

我有一个完全在NT 5.x,Vista和Windows 7下工作的安装程序。它在NT 6.x上包含适当的UAC清单。 但是从Windows 7 RC开始,每次安装程序closures时,Windows都会产生一个错误的“这个程序可能没有正确安装”的信息,尽pipe程序的安装没有问题。 我从来没有在Vista或Windows 7testing版中得到这些虚假消息。 我向微软发送了一个错误报告,但还没有收到回复。 我认为这可能只是Windows 7 RC中的一个小故障,但问题仍然在于最近一次RTM-escrow构build泄露的新安装。 微软没有任何关于这方面的文档 – 甚至没有提示可能触发它的提示。 更令人沮丧的是,即使在任何安装代码(创build)之前在第一个“您确定要继续”屏幕上取消安装,我也会得到“该程序可能没有正确安装”临时目录,提取文件,复制,registry等)是永远运行。 有没有人想过这个呢?

Windows:如何创build自定义的appcompat填充(应用程序修补程序)?

Windows有能力将垫片应用于错误的应用程序 。 Shims用于拦截API调用并对其进行更改。 例如,垫片可以用来: 改变传入的参数 说谎返回值 改变它来调用别的东西 应用程序兼容性Tookit有相当多的现有垫片可以应用于您自己的错误行为应用程序。 下面是一个忽略你的API调用的例子,而是调用一个完全不同的API: 替代文字http://img.zgserver.com/windows/5n5h5c.png 我需要一个不是微软已经写过的数百个垫片之一的垫片。 我需要一个自定义的垫片 。 在我的情况下,我想拦截调用: GetSystemMetrics(0x1000) 所以它返回0 。 我找不到任何有关如何给Windows我自己的DLL,将有我需要的修复程序的任何信息。 我甚至不知道你是否可以创build自定义的垫片。 Windows是否支持自定义填充?

“__COMPAT_LAYER”实际上做了什么?

最近,我试图给我的应用程序pipe理员权限没有系统要求“你想给pipe理员权限? 我发现了一个完美的工作方式。 我find解决scheme 我创build了一个名为nonadmin.bat的bat文件,并在其中编写了下面的代码 cmd min C set __COMPAT_LAYER=RunAsInvoker && start %1 如果我们拖动它的任何exe文件,它给了他们pipe理员权限(在没有让我访问环境variables之前,但在拖拽文件之后,它确实工作)。 题 现在我的问题是: 实际上'__COMPAT_LAYER'是什么意思,它是做什么的? 我如何删除这样的事情,以便再次要求pipe理员权限? 这是否会降低系统安全性?

Windows 8.1registry的兼容性设置值中的代字号的含义

我试图找出如何自动pipe理一些较旧的程序的兼容性设置 。 这个超级用户问题如何从命令行设置可执行文件的兼容模式? 已经帮助了很多指向用于兼容性设置的registry项。 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 可悲的是,到目前为止还有一小部分细节尚未得到答复。 我试图通过检查相关的registry值来找出应用程序的属性对话中的变化,看起来很简单! 但是我被已知的兼容性开关之前的波形字符所激怒,例如: ~ WINXPSP3 ~ MSIAUTO ~ RUNASADMIN WINXPSP3 我试图在网上search,但没有成功。 我发现这个〜标志正在使用Windows 8.1(和Windows 8),但不是在早期的Windows版本。 有谁知道更多关于它? 什么时候使用? 这是什么意思? 有没有可靠的参考?

Windows 10:兼容性function错误?

我的安装程序通过registry(适用于所有用户)为应用程序设置兼容模式: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\Program Files (x86)\\Program\\Program.exe"="RUNASADMIN" 但是,Windows 10忽略了这一点,直到我打开属性/兼容性选项卡,手动取消select“以pipe理员身份运行”,并select它,没有UAC提示。 另一个解决scheme是为当前用户创build一个registry项: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\Program Files (x86)\\Program\\Program.exe"="RUNASADMIN" 为什么是这样? 我在Win 7下创buildHKLMregistry项没有任何问题 – 系统一直认可所需的兼容性选项。