希望在某个时刻运行某个程序,而且要显示时间,本人关于WINAPI很臭,多谢(100分)

  • 主题发起人 主题发起人 nickname
  • 开始时间 开始时间
您的意思是不是要一个时钟程序,而且可以在规定的时间启动规定的程序?
对不起,理解能力奇差,多多包含... :-)
 
对对,不好意思,表达能力奇差,多多见谅.
您老兄一定知道了,不过别说什么流呀,线程的;
没有时间理解和学习,我现在急需的是'解决方案',
请多多帮忙.
 
设置一个时钟, 每隔一定的时间 用 NOW 取得当前时间, 然后判断是否到达你要
的时间. 如是, 用SHELLEXECUTE执行你的特定程序. 显示时间在时钟中更新即可.
 
i'm not sure that if ido
just like what wuyi said,it will
run correctly.because when ido
sth else
,ido
n't know
if the interval is the real interval,maybe there is delay.
but i have no idea about this,so ido
n't want to use Ttimer
and now...
any other solution?
 
不需理解的答案见下:
1.放一个TTimer控件(System页),设时间间隔为1000ms,在响应该时钟消息的函数
内部加时钟的时间,具体画的漂亮不漂亮就要看大虾您的了.
2.获取当前时间,计算与设定时间相差多少毫秒(太麻烦,我是不会这样用的),然后设
一个全局变量,在响应时钟消息的函数内开始每次加1,直到到等待时间为止.或者就
象我等懒人一样,每隔几十秒获取时间,判断是否到时间了,是否要干活了...
3.召唤应用程序:
有3个API可以解决:
WinExeC,最简单,我最喜欢.但是只能召唤可执行程序
ShellExecute 可以启动可执行程序,也可以启动与您给出的文件相关联的应用程序
ShellExecuteEx,好像和上面一样,不过参数传递不一样
 
tea egg,
thanks for your answer,i think you must
know things i want after you read what i said
to wuyi above,actually what you suggest is
just what in my mind,but i'm afraid that there may
be some problem,so ,how?
 
用GetLocalTime可以获得当前系统时间.
 
这要看你的目的是什么了.如果要求精确到秒一级,用timer足以.
如果要非常精确,得用多媒体时钟(timegetevent(),timesetevent()
,timegettime()等等);如果还嫌不够,那就把计时部分
单独用一个thread来处理.
 
诸位大侠已把基本原理说完了,我也没什么好说,提示你一个
控件,以方便你工作吧。
请使用LMD控件集中的HiTimer高精度时钟控件,但请你不要在
系统中使用过多的HiTimer控件,会大大影响系统的性能,非到
没办法时再使用。
Good Luck!
 
nickname啊,您的意思是怕您的操作干扰到系统时钟,使其不准确吗?
WM_TIMER不准的话,可以用多媒体时钟啊!详见我回答的问题:<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=105668">TTimer的困惑</a>
如果文章太长了,您看不到,我可以给您发过来.
也可以用线程(不得不用了),这样对系统的影响就极小了!
 
你可以用GetTickCount()试试!
 
多人接受答案了。
 
后退
顶部