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

Under Windows 7 and 8, openfiles.exe cannot be launched by another application

本文关键字:启动 openfiles exe 应用程序 其他 Windows 8下      更新时间:2023-10-16

如果我使用C++Windows API"CreateProcess"或C运行库"system"来启动大多数进程,它们运行良好。但是,如果我在Windows 7和8下使用与"openfiles.exe/query"相同的方法来启动openfiles.exe,它永远不会起作用。它抱怨需要一个32位操作系统来运行,或者,如果我用runas提升它,我会得到Invalid Function。在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位应用程序时,会出现相同的错误。