一个好用的Windows 函数

ShellExecuteEx是一个挺好用的Windows API函数,不但延续了ShellExecute 函数所具备的自动关联文件扩展名和应用程序的能力,还能够通过LPSHELLEXECUTEINFO 结构返回被执行程序的进程句柄,所以也可以在程序内终止该进程。

BOOL ShellExecuteEx(      
    LPSHELLEXECUTEINFO lpExecInfo

);

例如,在Wego中,我们用一个微小程序(C++)作为代理,启动Python所写的Wego主程序:

  SHELLEXECUTEINFO Info;
  
  memset(&Info,0,sizeof(Info));
  Info.cbSize=sizeof(Info);
  Info.lpVerb=L”open”;
  Info.lpFile=L”e:\\\\lab\\wego\\Wego.py”;
  Info.lpParameters=NULL;
  Info.lpDirectory=L”e:\\\\lab\\wego”;
  Info.fMask=SEE_MASK_NOCLOSEPROCESS;
  Info.nShow=SW_HIDE;
  ShellExecuteEx(&Info);
  hp = Info.hProcess;