CreateProcess 成功,但 GetLastError() 返回访问被拒绝

2023-12-13

由于返回值冲突,我有点困惑CreateProcess() and GetLastError()。当我使用CreateProcess()以类似于下面的方式,它成功并似乎完成了所需的任务。然而,GetLastError()仍然返回访问被拒绝。

如果访问被拒绝,为什么它看起来已完成任务。相反,如果CreateProcess()成功了,为什么GetLastError()返回访问被拒绝?

或者是我使用GetLastError()不正确?我只应该在以下情况下使用它吗CreateProcess()返回失败值? (我对以下行为的理由是,我认为安全总比后悔好)

    SetLastError(0);
    hello = CreateProcess(_T("C:\\Windows\\System32\\cmd.exe"), 
        _T("C:\\Windows\\System32\\cmd.exe /C ant debug"),
        NULL,NULL,false,0,NULL,
        _T("C:\\My\\Directory"),&siStartupInfo, &piProcessInfo);
    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_ALLOCATE_BUFFER 
        |FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastError(), 
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
        (LPTSTR)&errorText, 0, NULL); 
    AfxMessageBox(errorText);

这种行为正常吗?在里面CreateProcess()文档,它提到使用GetLastError() when CreateProcess()失败了,但它没有提到相反的情况。不是批评文档,只是想进行一些澄清。

无论第二个参数在CreateProcess() is NULL或不。也许这与cmd.exe权限?如果是这样的话,不应该CreateProcess()失败?谢谢。


从文档GetLastError

每个设置最后一个错误代码的函数的文档的“返回值”部分注明了该函数设置最后一个错误代码的条件。大多数设置线程最后错误代码的函数都会在失败时设置它。然而,某些函数在成功时还会设置最后一个错误代码。 [强调我的]

我认为你会得到经验丰富的结果,因为一旦成功,CreateProcess不设置错误值GetLastError返回。相反,您致电GetLastError返回由之前调用的另一个函数设置的错误

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CreateProcess 成功,但 GetLastError() 返回访问被拒绝 的相关文章

  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 为什么 BOOST_FOREACH 不完全等同于手工编码的?

    From 增强文档 http www boost org doc libs 1 48 0 doc html foreach html foreach introduction what is literal boost foreach li
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 范围和临时初始化列表

    我试图将我认为是纯右值的内容传递到范围适配器闭包对象中 除非我将名称绑定到初始值设定项列表并使其成为左值 否则它不会编译 这里发生了什么 include
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem

随机推荐

  • 将 dplyr 查询保存到 dbplyr 中的不同架构

    我有一个 JDBC 连接 想要从一个模式查询数据并保存到另一个模式 library tidyverse library dbplyr library rJava library RJDBC access the temp table in
  • Plotly R:根据折线图中的不同线条更改悬停信息字体颜色

    我想更改一些折线图线的悬停信息字体颜色 但不是全部 这是一些与我的代码类似的代码 number lt rep c 00 01 02 each 4 animal lt rep c cat dog mouse each 4 year lt re
  • 按钮上的长文本会弄乱 GridLayout 行

    我有一个 GridLayout 用于承载多个按钮 按两列排序 所有按钮都有固定的高度和宽度 如果其中一个按钮包含太多文本 布局就会混乱 我希望布局能够正确维护行 无论按钮是否有太多文本 我将在稍后处理显示太多文本的情况 使用文本的自动大小
  • T/F:在过程中使用 IF 语句会产生多个计划

    在回应this问题 KM 说 如果您使用的是 SQL Server 2005 或更高版本 则可以使用 IF 在同一过程中进行多个查询 并且每个查询都会为其保存一个查询计划 相当于旧版本上的每个查询的过程 请参阅我的答案中的文章或此链接到正确
  • 如何在查询字符串中安全地包含密码

    是否可以在 C asp net 站点的查询字符串中安全地包含密码 我所知道的一些假设和事情 该网站没有也不会有与其他网站的链接 图像 javascript 分析 因此无需担心引用链接 与 Web 浏览器的所有通信都将通过 https 进行
  • 如何在Python中动态添加If Else语句?

    目前 我开发了一个脚本 该脚本将读取传入 最新的电子邮件并根据某些条件 例如电子邮件主题和文本 过滤电子邮件 当用户选择subject or text 他们可以选择要过滤电子邮件的条件 等于 不包含等 我的问题我有一个演示网站 可以让用户添
  • 如何阻止 X Window 接收用户输入?

    我想在 Linux 桌面上创建一些窗口以用于简单的布局 我需要避免用户输入到这些窗口 并且我认为避免窗口获得焦点就足以实现这种情况 我认为我可以用xprop命令 通过设置WM HINTS属性 但我还没有找到有关如何执行此操作的具体文档 顺便
  • Passport.js - 使用 Passport-local 对来自 MongoDB 的用户进行身份验证

    我的 MongoDB 中有一个简单的用户集合 我使用 mongo native 驱动程序 email email protected password 123456 id oid 50658c835b821298d3000001 当我通过电
  • 将参数传递给 main

    我知道这是相当基本的 但我仍然被困住 所以我有一个需要接受变量 n 的函数 所以这是我的主要函数 int main int argc char argv sort argv 1 我这样调用该程序 sort 4
  • Typescript 枚举作为指定对象中的键预期会出现错误,但没有

    在使用枚举作为对象键时 我遇到了 TS 的一些奇怪行为 我期望 TS 错误 但事实并非如此 我不明白为什么 enum List sm sm md md export interface Dictionary
  • mpatches.FancyArrowPatch 太短

    我想用mpatches FancyArrowPatch绘制许多路径 单个图中数百条 我以前用过plt arrow 但它使绘图窗口变慢 并且比补丁方法花费更长的时间 无论如何 当我开始使用时mpatches Arrow我在大尺度上得到了很好的
  • 错误:.net 中的 db.SaveChanges() 发生引用完整性约束违规?

    我创建了一个 WPF 应用程序Entity framework 4 0 当我尝试插入记录时PhoneNumber表成功插入第一条记录 但是 当我循环遍历某个列表并尝试将另一个项目插入到PhoneNumber表插入记录但显示错误为 Inval
  • 使用 Scipy 与 Matlab 拟合对数正态分布

    我正在尝试使用 Scipy 拟合对数正态分布 我之前已经使用 Matlab 完成了此操作 但由于需要将应用程序扩展到统计分析之外 我正在尝试在 Scipy 中重现拟合值 下面是我用来拟合数据的 Matlab 代码 Read input da
  • HERE Routing API V8:如何获取具有多个经过路径点的路线

    在 v7 中 这是获取具有多个经过路径点的路线的方法 https route api here com routing 7 2 calculateroute json waypoint0 32 353514 61 126775 waypoi
  • PermissionError: [Errno 13] 访问 aws ec2 时权限被拒绝

    我在虚拟机 在 Mac 上 上运行 ubuntu 16 04 在 aws ec2 ubuntu 18 04 上运行 我正在尝试运行 Jupiter 笔记本aws ec2并尝试通过本地 Ubuntu 上的网络浏览器远程访问它 我能够访问远程
  • 如何在 React 组件中从另一个文件渲染 HTML?

    是否可以在 React 组件中从另一个文件渲染 HTML 我已经尝试过以下方法 但它不起作用 var React require react Template html var template require template modul
  • OleDB更新命令不改变数据

    我使用 Microsoft Access 文件作为数据库 我没有问题SELECT and INSERT查询 但当我尝试UPDATE 数据库中的记录不会改变 下面是我用来运行更新的代码 调试日志中没有异常或错误 cnn new OleDbCo
  • Angularjs ng-show 方法被调用太多次[重复]

    这个问题在这里已经有答案了 我有一个 ng repeat 循环 它循环 3 个事件 在每个事件中 我想检查登录的用户是否是与该事件关联的团队的玩家 问题是 我的代码正在进入is player 每次加载页面大约30次 这显然会导致问题 因为它
  • 如何在 AngularJS 中正确使用指令

    我正在使用 AngularJS 上的指令执行第一步 但该指令对我不起作用 我有一个ng repeat list ul li li ul 正在被过滤 scope activeFilter filterValue 我正在尝试创建ng after
  • CreateProcess 成功,但 GetLastError() 返回访问被拒绝

    由于返回值冲突 我有点困惑CreateProcess and GetLastError 当我使用CreateProcess 以类似于下面的方式 它成功并似乎完成了所需的任务 然而 GetLastError 仍然返回访问被拒绝 如果访问被拒绝