UE4 游戏中启动其他的进程(xx.exe)

    核心代码:
    FString FirstExe;
     const int nBufSize = 512;
     TCHAR chBuf[nBufSize];
     ZeroMemory(chBuf, nBufSize);
    const TCHAR* url;
    if (GetModuleFileName(NULL, chBuf, nBufSize))
    {
    FirstExe = chBuf;
    url = *FirstExe;
    GEngine->AddOnScreenDebugMessage(-1, 100.f, FColor::Red, FirstExe);
    FPlatformProcess::CreateProc(url, TEXT(“-xxClient”), true, false, false, nullptr, -1, nullptr, nullptr);
    }
    关键接口
    FPlatformProcess::CreateProc(url, TEXT(“-xxClient”), true, false, false, nullptr, -1, nullptr, nullptr);
    有帮助就分享一下吧!

    转载请注明:少狼 – 敬畏知识的顽皮狗 » UE4 游戏中启动其他的进程(xx.exe)

    喜欢 3

*

已经有12 人抢在你前面了~

  • 住在海边喜欢浪 1年前 (2017-08-17)

    你好,少狼,我对你的这个UE4游戏中启动其他进程很感兴趣。可以告诉我该怎么实现吗?感激不尽!!

    • zhongzhihua 1年前 (2017-08-19)

      你是想要什么细节呢?

      • zhongzhihua 1年前 (2017-08-19)

        uint32 FLocalServerRunnable::Run()
        {
        if (!bLocalServer)
        {
        return 0;
        }

        if (CreatedProc.IsValid())
        {
        return 0;
        }

        FString LocalServerPath;
        const int nBufSize = 512;
        TCHAR ChBuf[nBufSize];
        ZeroMemory(ChBuf, nBufSize);
        const TCHAR* Url;
        if (GetModuleFileName(NULL, ChBuf, nBufSize))
        {
        LocalServerPath = ChBuf;
        int32 Index = UKismetStringLibrary::FindSubstring(LocalServerPath, “\\”, false, true, LocalServerPath.Len() – 1);
        LocalServerPath = UKismetStringLibrary::GetSubstring(LocalServerPath, 0, Index).Append(TEXT(“\\”));
        LocalServerPath = LocalServerPath.Append(LOCALSERVER_URL);
        Url = *LocalServerPath;
        CreatedProc = FPlatformProcess::CreateProc(Url, TEXT(“-log -local”), true, true, false, &ProcessId, -1, nullptr, nullptr);
        if (CreatedProc.IsValid())
        {
        UE_LOG(LogClass, Log, TEXT(“Create Sigle PradaServer Successful! %s”), *LocalServerPath);
        }
        else
        {
        UE_LOG(LogClass, Log, TEXT(“Create Sigle PradaServer Failed! %s”), *LocalServerPath);
        }
        }
        return 0;
        }

        • 给我一份土豆丝 1年前 (2017-08-22)

          你好,我想请问蓝图里面有直接的函数来调用外部的程序吗?我现在想开始场景的时候调用外部的风扇程序,但是没找到相类似的蓝图,c++没什么基础,很困扰 求解答。

          • zhongzhihua 1年前 (2017-08-22)

            蓝图没有!

        • 给我一份土豆丝 1年前 (2017-08-23)

          那请问具体怎么调用你这个程序呢?

          • zhongzhihua 1年前 (2017-08-25)

            关键是开启一个线程,启动你指定的exe,按照路径来的,我贴的那个代码就是里面会处理一下路径!你可以实践一下,蓝图没有现成的接口的

  • 匿名 11个月前 (12-13)

    我的ZeroMemory一直报错,是不是要引入什么头文件的?

    • zhongzhihua 11个月前 (12-19)

      这个你要自己查一下,现在新版本的头文件都是需要自己添加的

  • MrDa 7个月前 (04-09)

    请问ZeroMemory的作用是什么

    • zhongzhihua 5个月前 (06-29)

      类似 bzero,对指定内存区域初始化置0,是一种初始化方式

  • AQ223 2个月前 (09-08)

    大佬! 有中文目录该怎么处理?