c++ - 在 Windows 7 和 8 下,openfiles.exe 无法由其他应用程序启动

标签 c++ windows winapi c++builder

如果我使用 C++ Windows API“CreateProcess”或 C 运行时库“system”来启动大多数进程,它们运行良好。但是,如果我使用与 Windows 7 和 8 下的“openfiles.exe/query”中相同的方式启动 openfiles.exe,它永远不会起作用。它提示需要运行 32 位操作系统,或者,如果我使用 runas 提升它,我会得到无效函数。在 Win 7 和 8 下,openfiles.exe 肯定有一些特殊之处,尽管它在命令提示符下运行良好,但在由另一个进程启动时永远不会运行。为什么?

最佳答案

看来在 Windows 64 位下,应用程序必须也是 64 位的(32 位操作系统不确定)。

我的系统是 Windows 7 64 位,如果我将“目标平台”设置为“64 位 Windows”来构建我的应用程序,则可以执行以下操作。

::ShellExecuteW( this->Handle, NULL, L"openfiles.exe", L"/query", NULL, SW_SHOWNORMAL );

我相信其他启动选项也可以像 CreateProcess 一样工作。

但是在构建 32 位应用程序时会出现同样的错误。

关于c++ - 在 Windows 7 和 8 下,openfiles.exe 无法由其他应用程序启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20476658/

相关文章:

c++ - 无法理解 MSDN 关于 _beginthreadex 和 _endthreadex 的文档

c++ - c++ 迭代器有更漂亮的语法吗?

c++ - 为什么编译器不能从默认参数中推导出模板类型?

c++ - 错误 C2664 : 'int wsprintfW(LPWSTR,LPCWSTR,...)' : cannot convert argument 1 from 'char [15]' to 'LPWSTR'

windows - lein repl 使我的 Clojure 源文件在 Windows 上的 Vim 中只读

c - Windows中c的 sleep 功能。是否存在精度更高的函数?

delphi - 为什么组合框在字体更改时将其文本更改为项目文本?

winapi - 你推荐什么反汇编程序?

c++ - 启动 C++ 项目。我应该担心释放动态分配的内存吗?

c++ - 在嵌套类中使用模板值