首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求解:erp的时间连接有关问题

2012-07-31 
求解:erp的时间连接问题用delphi7+sql2000做的一软件,想实现以下功能:在用户停止操作10分钟后,软件自动断

求解:erp的时间连接问题
用delphi7+sql2000做的一软件,想实现以下功能:在用户停止操作10分钟后,软件自动断开连接,并有提示,也就是没有鼠标或键盘对该软件的操作10分钟,软件自动断开连接,提示‘连接超时’;

[解决办法]
在Application.OnIdle事件中处理
[解决办法]
搞个timer也可以,或者定时取前后时间差
[解决办法]
用timer取前後時間。。。
[解决办法]
function WindowsNoActionSec(ATargetSecond:Integer = 0):Integer; // 如果ATargetSecond<=0则返回没有动作的秒数。否则,返回1/0 表示true/false

Delphi(Pascal) code
function WindowsNoActionSec(ATargetSecond:Integer=0):Integer;var vLastInputInfo:TLastInputInfo;begin  vLastInputInfo.cbSize := SizeOf(TLastInputInfo);  GetLastInputInfo(vLastInputInfo);  Result := (GetTickCount - vLastInputInfo.dwTime) div 1000;  if ATargetSecond > 0 then  begin    if Result >= ATargetSecond then      Result := 1    else Result := 0;  end;end;
[解决办法]
Delphi(Pascal) code
设一个全局变量:最后操作时间var  dtLast:Tdatetime;刚运行时,要设置一下这个变量: dtLast:=now;每个操作事件里设置一下这个变量: dtLast:=now;加一个周期为1秒的定时器,事件为:if now-dtLast>1.0/24.0/6.0 then  lockErp();
[解决办法]
procedure TMain_frm.Timer3Timer(Sender: TObject);
var
vLastInputInfo: TLastInputInfo;
begin
vLastInputInfo.cbSize := SizeOf(vLastInputInfo);
GetLastInputInfo(vLastInputInfo);
if GetTickCount - vLastInputInfo.dwTime > 5000 then
begin
timer3.Enabled:= false;
showmessage('超过5秒,用户未动鼠标!');
timer3.Enabled:= true;
end;

end;
[解决办法]
帮你解决了问题也不给分的人
12楼的代码基本就能解决问题,你试着有问题的话看下TIMER控件的Enabled属性是不是true,不过有限制的,对WIN 2000以后的操作系统能用,WIN 98以前的就不行,
还有种办法是:timer控件结合键盘鼠标钩子来解决,对所有WIN操作系统都能用,不过复杂多了

另外提个建议,断开连接是否可以用自动注销来代替?也就是自动强制弹出登录界面

热点排行