如果用pascal写个倒计时或者定时提醒的程序?
pascal吧
全部回复
仅看楼主
level 5
阿程古DM 楼主
有没有相关的函数可以定时向系统获取时间?即每分钟或者每小时就向系统请求获得时间信息,而这关键就是如何得到多长时间才是每分钟或者每小时。
另外,百度的话可以在文库那里找到一份代码,那是使用crt单元中的sound以及delay来实现上面所说的功能,即使用delay来确定多长时间是一秒。
By the way,吧里有没有使用CP Pascal Editor的?有的话指教下如何使用其中的crt单元。(最新版本用不了crt单元,前一个版本可以用crt单元,但是却不能用dos单元……)
2012年11月26日 16点11分 1
level 11
定义API
2012年11月26日 23点11分 2
怎么限制其在后台运行?
2012年12月03日 11点12分
回复 rdrweb :{$apptype gui}
2012年12月16日 11点12分
level 5
阿程古DM 楼主
具体如何实现?调用windows相关的api?哪些?
2012年11月27日 00点11分 3
level 5
阿程古DM 楼主
刚百度到可以用sleep函数,但经测试sleep在pascal的单位似乎既不是微秒也不是秒,这和机器有关?
2012年11月27日 00点11分 4
level 1
gettingtime函数+delay函数解决……free Pascal就可以解决这个问题的……
2012年11月27日 04点11分 5
delay是crt库中的函数,有没有办法不用到crt库的函数的?
2012年12月03日 11点12分
@ax_pokl 每台电脑for一万次的时间不同。
2016年04月04日 05点04分
@阿程古DM 可以用windows库:windows.sleep(【time】); 和delay差不多的
2016年04月08日 14点04分
level 11
CP?要是想用中文的话换lazarus
2012年11月27日 08点11分 6
吧,CP有一些缺陷
2012年11月27日 08点11分
回复 被袭胸的炮姐 :的确有,例如crt单元就无法使用,尽管它的帮助说明提到可以使用。
2012年12月03日 11点12分
回复 rdrweb :还有Goto语句,他的新功能都和goto是反着的......
2012年12月03日 11点12分
level 5
是的
2012年11月28日 04点11分 7
level 12
http://blog.163.com/lj_2005/blog/static/4586542201173104913483/
uses windows;隔一段时间再messagebox
2012年11月30日 13点11分 8
“隔一段时间”这个时间用什么来计算?
2012年12月03日 10点12分
level 12
调用命令行 at x:xx xxxx
2012年11月30日 14点11分 9
用Pascal调用cmd?如果是的话,那些变量X怎么传递给cmd?
2012年12月03日 11点12分
level 11
命令行
shutdown -s -t 秒
然后到了时间自动关机提醒
2012年12月01日 02点12分 10
用Pascal调用cmd?如果是的话,那些变量X怎么传递给cmd?
2012年12月03日 11点12分
回复 rdrweb :[睡觉]program run;[$1]uses dos;[$1]var s:string;[$1]procedure cmd(s:string);[$1]begin[$1]s:='/k "'+s+'"';[$1]Exec('cmd.exe',s);[$1]begin[$1]readln(s);[$1]cmd(s);[$1]end.
2012年12月03日 11点12分
回复 被袭胸的炮姐 :也就是说把要关机的秒数当作字符串s输入,然后通过s:='shutdown -s -t '+s这样的运算,再调用cmd执行?
2012年12月03日 11点12分
回复 rdrweb :shutdown -s -t S 是cmd的定时关机语句,这里就是在cmd使用定时关机来实现,但是你需要改一下程序
2012年12月03日 11点12分
level 5
阿程古DM 楼主
找到一个调用Windows API的pascal代码,但是这个要求在前台运行,有没有什么办法可以令其在后台运行,然后在特定时间内弹出提醒?
---------------------代码分隔符---------------
uses windows;
var
msg:TMSG;
i:integer;
procedure timer_tick(hwnd, uMsg, eventID, dwTime:longword);stdcall;
begin
inc(i);
writeln(i);
end;
BEGIN
SetTimer(0,0, 1000, @timer_tick);
while GetMessage(@msg, 0, 0, 0) do
DispatchMessage(@msg);
END.
2012年12月03日 11点12分 11
thanks
2016年04月04日 03点04分
level 11
@rdrweb 进程劫持explorer.exe,照着网上的程序添加一个智能宝宝的壳发给host
2012年12月03日 13点12分 12
level 9
有这么麻烦么?
Free Pascal的DOS单元有相关子程序:
uses DOS;
gettimg(h,m,s,ms)
注意ms是0-99的。
2012年12月16日 13点12分 13
level 9

function time():longint;
var th,tm,ts,tms:word;
begin gettime(th,tm,ts,tms);
time:=th;
time:=time*60+tm;
time:=time*60+ts;
time:=time*100+tms;
end;
2012年12月16日 13点12分 14
level 12
用dos里面的gettime。。。到时候while(true) writeln(chr(7));就可以了。。。
2012年12月22日 09点12分 15
level 12
timer组件或settimer killtimer
2012年12月23日 07点12分 16
level 7
隔一段时间 gettime一次
2016年04月08日 09点04分 18
1