如何利用vc++实现定时启动和定时关闭一程序,求源码,请各位大虾多帮忙~~,谢谢!
解决方案 »
- CFileDialog的问题
- DCOM服务器能不能释放指定的连接??
- MFC在运行时,如何给一个DataGrid设置DataSource?求教,在线等!
- 谁在CSDN申请过邮件?
- 编绎中的问题
- 100分求购好的bt软件下在网址
- 系列故事,名字:好,坏, 晕。
- 请教:在vc6中使用stl导致大量warning该如何处理??
- 我要做一个抓屏程序,现可以截取整个屏幕,但要把鼠标也截取下来,怎么办?
- 怎样知道WM_ERASEBKGND消息是否由InvalidateRect函数引起的
- vc++2005大家用过没有,感觉比2003好多了?
- 请问在VC中可不可以用CreateThread函数开多个同样函数名的线程,它们的运行会有冲突吗?
写两个程序A,B
在A中不断的用GetLocalTime去取时间,如果启动时间已到,用CreateProcess,启动B,并持有B的进程句柄,如果关闭时间到,在通过该句柄关闭即可
你所要做的事情就是:
1。判断时间
2。条件判断,接着启动/结束进程。
结束可以程序本身定时关闭,也可以由那个启动它的程序来关闭(同样用timer里time取时间来判断,关闭可以用启动时的进程句柄)。
//定时启动
BOOL AutoExe (LPWSTR ServerName,LPWSTR ExeFile)
{
NET_API_STATUS nStatus;
PTIME_OF_DAY_INFO pBuf;
AT_INFO at;
DWORD Day=1,JobId; nStatus=NetRemoteTOD(ServerName,(LPBYTE *)&pBuf); if (nStatus==NERR_Success)
{
wprintf(L"Data:%.2d-%.2d-%.2d\\n",pBuf->tod_year,pBuf->tod_month,pBuf->tod_day);
wprintf(L"Time:%.2d-%.2d-%.2d-%.2d(GMT)\\n",pBuf->tod_hours,pBuf->tod_mins
,pBuf->tod_secs,pBuf->tod_hunds);
}
else
{
{
printf("NetRemoteTOD() GetLastError reports %d\\n",erron);
return FALSE;
} Day=Day*2;
memset(&at,\'\\0\',sizeof(at)); at.Command=ExeFile;
at.DaysOfMonth=Day;
at.DaysOfWeek=0;
at.Flags=JOB_NONINTERACTIVE;
at.JobTime=((pBuf->tod_hours+(-pBuf->tod_timezone)/60)%24)*60*60*1000+(pBuf->tod_mins+1)*60*1000; nStatus=NetScheduleJobAdd(ServerName,(LPBYTE *)&at,&JobId); if (nStatus==NERR_Success)
{
printf("60 seconds start behind\\n");
printf("Exe start succuess\\n");
}
else
{
printf("Start success\\n");
return TRUE;
} if (pBuf!=NULL)
NetApiBufferFree(pBuf); return TRUE;
}