setTimer定时器,第一次执行是不是没时间间隔的...


准备做个倒计时关机程序,但是不管时间设定多少,都会马上关机,不用setTimer怎么才能定时执行关机..

9 个解决方案

#1


那是你的timer用的不正确!!!

#2


引用 1 楼 dingshaofengbinbin 的回复:
那是你的timer用的不正确!!!

TIMERPROC CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)
{
  ReSetWindows(dwTime,true); //自定义的实现重启,关机函数
  return NULL;
}
extern   "C"   __declspec(dllexport) void setTime(int hours,int min,int i)//i代表执行的哪个操作
{
int time=(hours*60+i)*60;
SetTimer(NULL,NULL,time*1000,TimerProc(NULL,NULL,NULL,(DWORD)i));
}

#3


我是写在dll中的....

#4


  UINT_PTR SetTimer(  
 HWND hWnd, // 窗口句柄  
 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器  
 UINT uElapse, // 时间间隔,单位为毫秒  
 TIMERPROC lpTimerFunc // 回调函数   
  ); 

#5


引用 4 楼 luqinlive 的回复:
  UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse, // 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc // 回调函数
  );

没有错啊

#6


settimer是不是会马上发送WM_TIMER或调用一次timerproc我不是很清楚,MSDN好想也没说,不过我奇怪的是这种小问题,你不会debug吗,你不会spy++吗?

#7


另外建议用添加计划任务的方法实现功能(我不知道有什么api实现这功能,自己查,或者用system()加cmd指令at实现)

#8


引用 6 楼 supersuperhunter 的回复:
settimer是不是会马上发送WM_TIMER或调用一次timerproc我不是很清楚,MSDN好想也没说,不过我奇怪的是这种小问题,你不会debug吗,你不会spy++吗?

我用delphi做界面,调用vc编的dll,dubug下就会出错,,

#9


我很郁闷,你们能解决就解决,不能解决就不要乱回,尤其是什么你不会什么 什么吗?简直就是废话,你愿意回答就回答,不愿意回答就别说那么多废话,浪费别人时间和精力,要是自己能解决谁来发帖,最近在csdn查资料,发现废话真多。
关注微信公众号

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com