PowerBuilder重启功能

问题描述 投票:1回答:1

我们在应用程序中使用Restart功能来关闭应用程序,并在应用程序在指定的时间段内处于空闲状态时重新打开它。当我们从SDI应用程序调用该函数时,该功能正常工作,但是当我们从MDI调用该函数时,应用程序在重新启动几次后关闭。

在MDI框架中,当函数是第一次触发时,应用程序重启工作正常。当我们将应用程序离开另一个空闲时间并再次触发重启功能时,应用程序就会关闭。它不会崩溃或任何东西,只是关闭。关于如何排除故障并解决问题的任何想法。谢谢。

restart powerbuilder
1个回答
1
投票

一种方法是在空闲事件触发后,打开应用程序的新实例然后关闭自己。

这个简单的示例不是为在IDE中运行而设计的。

[PB外部功能声明]

FUNCTION int GetModuleFileNameA(&
       ulong hinstModule, &
       REF string lpszPath, &
       ulong cchPath) LIBRARY "kernel32" alias for "GetModuleFileNameA;ansi"

[在申请公开活动中]

if commandline = "RESTARTED" then
    messagebox( "Welcome Back!", "Click to Continue" )
end if

idle(300) // Restart the application if there is no activity for 5 minutes

Open ( w_main )

[在应用程序IDLE事件中]

string ls_ExePathFileName
unsignedlong lul_handle

ls_ExePathFileName = space(1024)

lul_handle = Handle(GetApplication())
GetModuleFilenameA(lul_handle, ls_ExePathFileName, 1024)
run( ls_ExePathFileName + " RESTARTED" )

HALT CLOSE
© www.soinside.com 2019 - 2024. All rights reserved.