EP_TrialExecutionTime
EP_TrialExecutionTime 函数用来取得试用运行的总时间和剩余时间。试运行的总时间需要在 试用控制 - 运行时间 面板中定义。参看 EP_TrialExecutionTimeLeft 和 EP_TrialExecutionTimeTotal函数。
参数
- Total - 试运行总时间(分钟)。
- Left - 试运行剩余时间(分钟)。
返回值
如果函数执行成功,返回值为1,否则为0。
备注
在以下情况函数不会执行成功:
定义
Show/Hide C++ function definition
extern "C" __declspec( dllimport ) __stdcall BOOL EP_TrialExecutionTime( int* Total, int* Left );
Show/Hide Delphi function definition
function EP_TrialExecutionTime( var Total, Left : Cardinal) : boolean; stdcall;
Show/Hide Visual Basic function definition
Public Declare Function EP_TrialExecutionTime Lib "enigma_ide.dll" (ByRef Total As Long, ByRef Left As Long) As Byte
Show/Hide C# (.NET) function definition
public class Enigma_IDE
{
[DllImport("enigma_ide.dll", CallingConvention = CallingConvention.StdCall)]
public static extern bool EP_TrialExecutionTime(ref Int32 Total, ref Int32 Left);
}
实例
Show/Hide Delphi function example
uses
enigma_ide;
procedure TfrmMain.tmTimerTimer(Sender: TObject);
var
lpSystemTime : _SYSTEMTIME;
dwMinutesTotal : Cardinal;
dwMinutesLeft : Cardinal;
begin
GetSystemTime(lpSystemTime);
eGlobalTime.Text := format('%.2d:%.2d:%.2d', [lpSystemTime.wHour, lpSystemTime.wMinute, lpSystemTime.wSecond]);
inc(dwExecutionTime, tmTimer.Interval);
eExecutionTime.Text := format('%.2d:%.2d:%.2d', [(dwExecutionTime div (60*60*1000)) mod 24, (dwExecutionTime div (60*1000)) mod 60, (dwExecutionTime div (1000)) mod 60]);
if EP_TrialExecutionTime(dwMinutesTotal, dwMinutesLeft) then
begin
eStatus.Color := clGreen;
eStatus.Text := 'OK';
eTotalExecutionTime.Text := IntToStr(dwMinutesTotal);
eLeftExecutionTime.Text := IntToStr(dwMinutesLeft);
end else
begin
eStatus.Color := clRed;
eStatus.Text := 'UNUSED';
end;
end;
Show/Hide C++ function example
#include "include/enigma_api.h"
#pragma link "include/enigma_ide.lib"
void __fastcall TfrmMain::tmTimerTimer(TObject *Sender)
{
_SYSTEMTIME lpSystemTime;
unsigned long dwTotal;
unsigned long dwLeft;
GetSystemTime(&lpSystemTime);
eGlobalTime->Text = Format("%.2d:%.2d:%.2d", ARRAYOFCONST((lpSystemTime.wHour, lpSystemTime.wMinute, lpSystemTime.wSecond)));
dwCounter += tmTimer->Interval;
eExecutionTime->Text = Format("%.2d:%.2d:%.2d",
ARRAYOFCONST((
dwCounter / (60 * 60 * 1000) % 24,
dwCounter / (60 * 1000) % 60,
dwCounter / 1000 % 60
)));
if (EP_TrialExecutionTime(&dwTotal, &dwLeft))
{
Label2->Caption = Format("%d", ARRAYOFCONST(((int)dwTotal)));
Label3->Caption = Format("%d", ARRAYOFCONST(((int)dwLeft)));
pbTrial->Max = (int)dwTotal;
pbTrial->Position = (int)dwLeft;
eStatus->Text = "OK";
eStatus->Color = clGreen;
} else
{
eStatus->Text = "UNUSED";
eStatus->Color = clRed;
}
}
可以在安装文件夹下 Examples\TrialExecutionTime 子文件夹里查看函数实例。