【问题标题】:Callback for running an external application in C++在 C++ 中运行外部应用程序的回调
【发布时间】:2016-08-08 09:10:56
【问题描述】:

我正在开发一个 Kinect v2 应用程序,该应用程序有时会执行一个外部 Unity 迷你游戏,该游戏也适用于 Kinect v2。我正在使用ShellExecute 函数,但我不确定如何实现在 Unity 应用程序关闭后通知主应用程序的回调。我需要它是因为我想在 Unity 运行自己的 Kinect 管理器时暂停主应用程序中的 Kinect 管理器(否则您可以想象两个 Kinect 管理器将同时运行)。现在的代码如下所示:

if (Button->getTag() == "something")
{
    Button->SetActive(false);

    // TODO Pause Kinect manager
    ShellExecute(nullptr,L"open",L"UnityApplication.exe",nullptr,nullptr,SW_SHOWNORMAL);

 // TODO to know once Unity Applications has been closed
 // TODO resume Kinect manager
}

【问题讨论】:

    标签: c++ windows kinect


    【解决方案1】:

    使用ShellExecuteEx 代替ShellExecute,在SHELLEXECUTEINFO 结构的fMask 字段中传递标志SEE_MASK_NOCLOSEPROCESS,然后在@ 中返回的进程句柄上传递WaitForSingleObjectRegisterWaitForSingleObject SHELLEXECUTEINFO 结构的 987654328@ 字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多