gpt4 book ai didi

c++ - 从应用程序启动 Java 时在 MFC 应用程序中显示等待光标,直到它完成其进程

转载 作者:太空狗 更新时间:2023-10-29 23:04:56 26 4
gpt4 key购买 nike

我正在开发一个应用程序,我要从我的 MFC 应用程序中启动一个 Java 应用程序。我想显示等待光标从 java 应用程序执行到它结束的时间过程。这是我已实现的代码。

    void CDropboxSync::OnBnClickedDbxPcToCloud()
{
STARTUPINFOW siStartupInfo;
PROCESS_INFORMATION piProcessInfo;

memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
SetCursor(LoadCursor(NULL, IDC_WAIT));
if (CreateProcess(TEXT("C:\\Program Files\\Java\\jre7\\bin\\java.exe"), TEXT(" -jar DbxUpldDwnld.jar u"), NULL, NULL, false, CREATE_NO_WINDOW, NULL, NULL, (LPSTARTUPINFOA)&siStartupInfo, &piProcessInfo) == false) {
AfxMessageBox(_T("Please install Java Runtime Environment(JRE) on your PC\n Link: http://www.oracle.com/technetwork/java/javase/downloads/index.html"), MB_ICONERROR);
}

CloseHandle(piProcessInfo.hProcess);
CloseHandle(piProcessInfo.hThread);
// TODO: Add your control notification handler code here
}

我想在 java 应用程序的处理开始时启动等待游标,并希望在应用程序处理完成时结束等待游标。如何才能做到这一点。我已尝试实现 BeginWaitCursor 和 EndWaitCursor。但可以获得所需的输出。请指出我的方向。提前致谢。

最佳答案

从上面的代码看来,你的代码做了以下事情,

  1. 设置等待光标
  2. 创建java进程
  3. 然后关闭进程和线程句柄

它永远不会设置正常的光标。因此,即使在完成 Java 进程后,您的应用程序仍会显示沙漏。

这是我的想法,

  1. 在 OnBnClickedDbxPcToCloud() 中设置等待光标
  2. 启动一个新线程,执行以下操作

    2.1) 创建java进程

    2.2) 通过调用 WaitForSingleObject(piProcessInfo.hProcess) 等待 java 进程完成

    2.3) 然后通过向窗口发送自定义消息来通知 UI 线程。

  3. 在您设置回正常的自定义窗口消息处理程序中(箭头)光标。

关于c++ - 从应用程序启动 Java 时在 MFC 应用程序中显示等待光标,直到它完成其进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com