UE4 如何关闭一个进程?
一,目前已经实现的功能
1,创建了一个C++ 功能类, 专门用来实现功能。 在里面通过调用#include “WindowsPlatformProcess.h”
P_handle1 = FPlatformProcess::CreateProc(Url, nullptr, true, false, false, nullptr, 0, nullptr, nullptr, nullptr);
以上函数可以实现对外部应用程序的开启。 注意URL 地址的书写方式 双斜杠和单斜杠两种路径均可以表示。比如:
FString DefaultStr = “D:\\Program Files (x86)\\Stereoscopic Player\\StereoPlayer.exe”;
FString DefaultStr = “D:/Program Files (x86)/Stereoscopic Player/StereoPlayer.exe”;
二,遇到的问题
以上创建的线程(姑且这么称呼)的数据类型是 FProcHandle 类型的。 我现在想实现在另外一个函数里面将整个线程关闭。 此处就遇到一个很麻烦的问题。 上部函数返回值 如果定义为 FProcHandle 类型 ,在。h 文件中根本就不识别。 请教各位接下来怎么处理?
目前只知道需要用
FPlatformProcess::TerminateProc(P_handle1); 来关闭这个线程。 主要是里面的这个参数怎么获取到?
三,解决方案
1, 借用了其他的程序员的方法 ,直接采用最简单暴力的方式
原文:https://blog.csdn.net/IT_ZB/article/details/51602599
方案一: 关闭程序
system(“TASKKILL /F /IM TestApp.exe”) //直接关闭程序,不需要加路径
优化:
std::string temp = std::string("TASKKILL /F /IM ") + std::string(“TestApp.exe”);
system(temp.c_str());
以上是在传统的C++ 中运行的。
在UE4 中仍然可以调用此类程序
#include “windows.h” 加载一下头文件
system(“TASKKILL /F /IM StereoPlayer.exe”);
直接把你想结束的进程 填写在后面就可以直接关闭。
希望我原始的思路也有大神能给指点完善。