检查文件是否具有Windows c ++的可执行权限
Check if file has executable rights windows c++
我有一个文件名,我想检查它是否可以通过c ++在Windows上执行。我找到了_access和_access_s,但他们只检查读/写。
我的问题是,例如,当我下载蝙蝠文件时,窗口会阻止它作为安全措施。当我运行我的程序并尝试执行它时,Windows 会阻止我的程序并询问用户是否要继续,因为该文件有风险。我想通过在执行之前检查文件权限来避免这种情况。
Windows文件系统NTFS不支持使用基于Unix的操作系统时所期望的可执行属性。
您在此处看到的是 shell 对添加到文件的额外流做出反应。流是 NTFS 的一项功能。
Microsoft有一些示例代码,演示如何访问文件中的流:
- 如何使用 NTFS 备用数据流
对于从互联网下载的文件,Microsoft的浏览器(IE和Edge(添加了一个名为"Zone.Identifier"的流,当被要求执行文件以向用户显示安全提示时,ShellExecute
和相关API会检查该流。
要清理文件以不显示安全提示,必须擦除流。
BOOL didDeleteZoneIdentifier = DeleteFile(TEXT("Path To Batch File.bat:Zone.Idenfier"));
if(!didDeleteZoneIdentifier){
int errorCode = GetLastError();
....
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 检查文件是否具有Windows c ++的可执行权限
- 为可执行文件授予比运行用户更多的权限
- >使用 RegCreateKeyEx() 的 Windows 可执行文件不会提示输入 UAC 管理员权限并失败?
- 可执行文件是否可以要求管理员权限?(Windows 7)