请问,我想做一个小程序来统计用户上机的时间,每当开机1小时后就提示一下,和每当上网一小时提示一下,还有每当整点时提示一下,怎么去捕捉这些时间呢?还要求不影响其它程序的运行,不要占过多的系统资源。请给个思路好吗?我很想知道是怎么在这些时间时自动被程序捕到,总不到做个TIMER一直不停去监测吧?还是通过WIN消息呢?整点触发也有消息?请明示!高分求解
解决方案 »
- delphi 书籍大全 下载
- 有人尝试过 delphi 2007 了吗?谈谈感受
- 寻求代码辅助工具
- listview中隐藏列
- OLE显示数据库中Word文件太慢,高手改进一下这些代码(我认为是由于先保存在C:\再显示,所以慢。)
- 请问CTeeCtrl控件怎样在函数中动态添加多条曲线系列?
- 有哪位高人使用过此控件?没用过可以看看,很不错的!
- 新手请教:有关日期控件的问题,急
- delphi7使用XPManifest控件后,程序在64位系统中不能输入中文问题(乱码)
- 请问DELPHI是如何实现对数据库表的某个字段进行锁定的.请帮帮忙!急!!!
- 串口问题 急,急,急,急...
- 征求OICQ的代理服务器,有用就给分。多谢
function Ticker: int64; register;
var
T : int64Rec;
begin
asm
db $0f,$31
mov [T.Lo],EAX
mov [T.Hi],EDX
end;
Result := int64(T);
end;****************************************const
D32 = $66;function RDTSC: comp;
var
TimeStamp : record
case byte of
1: (Whole: comp);
2: (Lo, Hi: LongInt);
end;
begin
asm
db $0F; db $31; {BASM doesn't support RDTSC}
{Pentium RDTSC - Read Time Stamp Counter - instruction}
{$ifdef Cpu386}
mov [TimeStamp.Lo],eax // the low dword
mov [TimeStamp.Hi],edx // the high dword
{$else}
db D32
mov word ptr TimeStamp.Lo,AX
{mov [TimeStamp.Lo],eax - the low dword}
db D32
mov word ptr TimeStamp.Hi,DX
{mov [TimeStamp.Hi],edx - the high dword}
{$endif}
end;
Result := TimeStamp.Whole;
end;type
CompStr = string[25];
{Comps have up to 18 digits, plus commas, and sign}function CompToStr(N: comp): CompStr;
var
Low3 : string[3];
N1 : extended;
begin
if N < 0 then
Result := '-' + CompToStr(-N)
else
begin
N1 := N / 1000;
Str(Round(Frac(N1) * 1000), Low3);
N := Int(N1);
if N > 0
then
begin
while Length(Low3) < 3 do
Low3 := '0' + Low3;
Result := CompToStr(N) + ThousandSeparator + Low3;
end
else
Result := Low3
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
//showmessage(inttostr( Ticker));
memo1.Lines.Add(CompToStr(RDTSC));