【UE4 C++】 启动 / 关闭外部exe、开启虚拟键盘
启动/关闭外部exe
-
引擎自带
- FPlatformProcess::CreateProc()
- FPlatformProcess::TerminateProc()
-
windows api
-
ShellExecute()
-
system()
virtual void Tick(float DeltaTime) override; FProcHandle pHandle ; UFUNCTION(BlueprintCallable) void OpenExternalApp(const FString& AppPath); UFUNCTION(BlueprintCallable) void CloseExternalApp(); UFUNCTION(BlueprintCallable) void ExecuteExternalApp(const FString& AppPath); UFUNCTION(BlueprintCallable) void KillProcess(const FString& ProcessName);
#include <string> #include <windows.h> void ASystemActor::OpenExternalApp(const FString& AppPath) { pHandle= FPlatformProcess::CreateProc(*AppPath, nullptr, true, false, false, nullptr, 0, nullptr, nullptr); UE_LOG(LogTemp,Warning,TEXT(__FUNCTION__"Create App")) } void ASystemActor::CloseExternalApp() { if (pHandle.IsValid()) { FPlatformProcess::TerminateProc(pHandle); pHandle.Reset(); UE_LOG(LogTemp,Warning,TEXT(__FUNCTION__"Close App")) } else { UE_LOG(LogTemp,Warning,TEXT(__FUNCTION__"Close None")) } } void ASystemActor::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); } void ASystemActor::KillProcess(const FString& ProcessName) { std::string process = std::string("TASKKILL /F /IM ") + TCHAR_TO_UTF8(*ProcessName); system(process.c_str()); UE_LOG(LogTemp,Warning,TEXT(__FUNCTION__"Kill App Process")) }
开启虚拟键盘 On-Screen Keyboard
- ShellExecute
void ASystemActor::ShowVirtualKeyboard() { ShellExecute(NULL, L"open", L"osk.exe", NULL, NULL, SW_SHOWNORMAL); //WinExec("TabTip.exe", SW_SHOWNORMAL); }
作者:砥才人
出处:https://www.cnblogs.com/shiroe
本系列文章为笔者整理原创,只发表在博客园上,欢迎分享本文链接,如需转载,请注明出处!