草庐IT

windows - WiX:在 ProgramFilesFolder 中安装应用程序会引发 AccessDenied 异常。为什么?

我有一个C#应用程序和一个WiX项目,用于将此应用程序安装在ProgramFilesFolder中。我的应用程序有一个使用dll文件的查看器元素。如果我以普通用户权限启动应用程序,我会收到一个错误,并且我的应用程序中的查看器元素不会加载,并显示我的查看器元素无权访问dll文件的错误消息。作为管理员用户,它工作正常。在我的WiX项目中,我设置了属性perMachine并且我在我的应用程序中使用了其他几个dll文件,但我没有收到此类错误。如果我在ProgramFilesFolder之外安装我的应用程序,则没有问题。我应该怎么办?在VS2010中,我可以为每个文件设置BuildAction和

windows - DigitalProductId 和 InstallDate 会改变吗?

我有一个依赖于三个参数的软件激活逻辑:HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\DigitalProductIdHKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\InstallDate系统卷的Id我感兴趣的问题是:除了在单个操作系统安装中手动修改注册表值(对于1、2)之外,这些参数是否可以在任何情况下更改?据我所知,系统卷ID只能在卷被格式化时更改。DigitalProductId和InstallLDate在单个操作系统中也应该保持不变,因为它们分别标识许可证(具体的Windows安

c++ - 如果在 main 中使用字符串,为什么 CRT 会返回 8 字节泄漏?

#include#include#include#include#include#include#include#include#define_CRTDBG_MAP_ALLOCusingnamespacestd;intmain(void){stringfile="hello";stringfoo;charresponse;_CrtDumpMemoryLeaks();_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);_CrtSetReportMode(_CRT_ERROR,_CRTDBG_MODE_DEBUG);retu

c++ - 有没有办法预先测试 Windows exe 是否会因为缺少 dll 而无法加载?

如果您尝试在没有任何更新的情况下在Windows8.1上安装vs2015可再发行组件,它将无法安装。但是安装过程中guid在注册表中已经足够了,所以如果您运行一个程序来检查注册表中是否存在可再发行组件,您将通过该检查。如果您随后尝试运行一个使用vs2015编译的程序,该程序需要一些安装失败的dll,您将看到一个弹出窗口,显示“该程序无法启动,因为......”你知道该怎么做。我正在开发一个有这个问题的安装程序(使用NSIS),我试图找到一种方法来检测dll丢失问题,然后再运行.exe并获取弹出窗口。是否有任何我可以运行的命令行工具或任何我可以调用的NSIS函数可以在问题发生之前提示我解

windows - 为什么 ECHO 命令会在文件中打印一些额外的尾随空格?

我正在从数据文件中读取多行并将其附加到另一个文件中。问题是附加行末尾的输出文件中有一些额外的空间。根据我的要求修剪尾随空格是强制性的,因为在原始数据文件中,行尾没有空格。我尝试了所有可能的事情,但我仍然无法实现这一目标。@echooffsetlocalenabledelayedexpansionFOR/F"delims="%%cIN(C:\Users\184863\Desktop\mydata.txt)DO(echo%%c>>temp_data.txt)endlocal我试过的选项:echo%%c>>temp_data.txt...在行尾得到1个空格setlines=%%cecho!l

c# - DPAPI 会自动执行 Dynamic Salt 吗?

我正在考虑使用Windows的数据保护API(DPAPI)来加密一些数据。我的一个要求是在加密值时使用动态盐。我通过测试注意到,如果我多次加密同一个字符串,我会得到不同的结果。这是使用相同的字符串、空熵值和相同的范围。这让我感觉好像已经包含了动态盐。我没有看到任何说明这一点的文档。这是我调用的方法https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.protecteddata.protect?view=netframework-4.7.2.DPAPI是否已经处理动态加盐?如果不是,是什么导致加

c++ - VC++ 2008 Express 上的编译器问题,看似正确的代码会引发错误

一段时间以来,我一直试图重新开始编码,所以我想我应该从一些简单的SDL开始,现在,没有文件i/o,编译正常,但是当我输入stdio代码时,它开始抛出错误。这个我不确定,我没有看到代码本身有任何问题,但是,就像我说的,我还是个新手,我想我来这里是为了找一个有更多经验的人这种东西看看吧。我想我的问题可以归结为:“为什么这个不能在Microsoft的VisualC++2008Express下编译?”我已将错误日志附在代码片段的底部。在此先感谢您的帮助。#include"SDL/SDL.h"#include"stdio.h"intmain(intargc,char*argv[]){FILE*s

c++ - 如果未使用 CloseHandle 正确关闭,则重新打开串行端口会失败

我在Windows上使用被视为虚拟串行端口的USB设备。我可以使用CreateFile和ReadFile函数与设备通信,但在某些情况下,我的应用程序不会调用CloseHandle(当我的开发应用程序崩溃时)。之后所有对CreateFile的调用都失败(ERROR_ACCESS_DENIED),唯一的解决办法是重新登录我的电脑。有没有办法以编程方式强制关闭打开的句柄(或重新打开)? 最佳答案 这当然不正常。Windows会在进程终止后自动关闭所有保持打开状态的句柄。这一定是您的USB设备驱动程序中的一个缺陷,尽管很难看出它是如何搞砸的

windows - 在 Windows 中运行 .bat 文件会生成任何系统日志吗?

我想在Windows中创建一个.bat文件来接收密码并将调用自定义实用程序来加密该密码。作为参数发送到.bat文件的密码不会记录在任何地方,这一点非常重要。我的问题是,运行.bat文件是否会创建任何系统日志?任何地方?如果.bat失败怎么办?还有其他更好的方法吗?谢谢! 最佳答案 一般的回答是,“不,批处理文件的运行没有被记录。”但是,在给定系统上不能保证信息不会保存在某处。或者再说一次,没有双重否定,在某些系统上可能会保存信息。例如,可能有一个自定义命令shell(可能由“坏”人创建)来记录信息。

windows - 为什么字母数字字符串中的前导数字会转换为东方阿拉伯数字?

我正在尝试追踪在阿拉伯语版本的Windows(XPProx86SP3)中出现的(C++)Windows应用程序中的问题。我们在对话框的静态文本字段中显示如下密码:0123456789ABC0123456789ABC...某事导致前导数字显示为阿拉伯数字:٠‎١‎٢‎٣‎٤‎٥‎٦‎٧‎٨‎٩ABC0123456789ABC请注意,只有前导数字会受到影响。这让我觉得是Windows的一些自动功能导致了这个问题,但我搜索了MSDN并没有找到任何线索。我不太了解Windows中从右到左的语言(或阿拉伯语),所以我不确定该机制可能是什么,或者如何抑制这种行为。任何有为英语/阿拉伯语编写Wind