使用ShellExecute打开一个没有".exe"扩展名的可执行文件

Ofe*_*fer 3 c++ windows winapi

我想用ShellExecute打开一个没有".exe"扩展名的可执行文件.我可以使用CreateProcess但我更喜欢使用ShellExecute.有办法吗?

我使用带有win32api函数的C++.

谢谢.

Ray*_*hen 14

您使用结构lpClass成员SHELLEXECUTEINFO说,"我希望您将此文件视为EXE,即使它看起来不像扩展名中的那个."

int _tmain(int argc, _TCHAR* argv[])
{
  SHELLEXECUTEINFO sei = {0};
  sei.cbSize = sizeof(sei);
  sei.nShow = SW_SHOWNORMAL;
  sei.lpFile = TEXT("myprogram.wrongextension");
  sei.fMask = SEE_MASK_CLASSNAME;
  sei.lpVerb = TEXT("open");
  sei.lpClass = TEXT("exefile");
  ShellExecuteEx(&sei);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)