最近研究虚幻源码的时候看到一个问题,想尝试一下在外部打开打包后的exe文件,就找到了这两个函数
前期需要加入头文件
#include"Runtime/Core/Public/HAL/PlatformFilemanager.h"
#include"Runtime/Core/Public/Misc/FileHelper.h"
#include"Runtime/Core/Public/Misc/Paths.h"
#include "Windows/AllowWindowsPlatformTypes.h"
#include "Windows/PreWindowsApi.h"
#include <windows.h>
#include <string>
#include "Windows/PostWindowsApi.h"
#include "Windows/HideWindowsPlatformTypes.h"
#include <ShlDisp.h>
#include <shellapi.h>
一、UFUNCTION(BlueprintCallable)
void OpenExternalApp(const FString& AppPath);
.h文件
UFUNCTION(BlueprintCallable)
void OpenExternalApp(const FString& AppPath);
.cpp文件
void AMyGameMode::OpenExternalApp(const FString& AppPath)
{
pHandle = FPlatformProcess::CreateProc(*AppPath, nullptr, true, false, false, nullptr, 0, nullptr, nullptr);
UE_LOG(LogTemp, Warning, TEXT(__FUNCTION__"Create App"))
}
二、UFUNCTION(BlueprintCallable)
void ExecuteExternalApp(const FString& AppPath);
.h文件
UFUNCTION(BlueprintCallable)
void ExecuteExternalApp(const FString& AppPath);
.cpp文件
void AMyGameMode::ExecuteExternalApp(const FString& AppPath)
{
std::string str_path = TCHAR_TO_UTF8(*AppPath);
std::wstring wstr_path;
wstr_path.assign(str_path.begin(), str_path.end());
ShellExecute(NULL, L"open", wstr_path.c_str(), NULL, NULL, SW_SHOWDEFAULT);
}
三、蓝图操作
打开关卡蓝图,此处我是放在GamemMode里面写的