VC++ 任务计划自启动

//////////////////代码测试N小时,呵呵~~在硬盘已经睡了好久////// VC++ 6.0 + SP6编译成功/////////
//新建控制台程序,把代码复制到Classview里Globals编译即可。
#include "stdafx.h"  
#include <stdio.h>  
#include <windows.h>  
#include <lmcons.h>  
#include <lmat.h>  
#include <IOSTREAM>  
  
#pragma comment(lib,"NETAPI32.LIB")  
  
void Jobadd() {  
    DWORD JobId, ret;  
    AT_INFO ai;  
    char *filepath;  
    long Len;  
    char RootPath[MAX_PATH];  
    WCHAR szFilePath[256];  
    GetSystemDirectory(RootPath, MAX_PATH);  
    filepath = new char[strlen(RootPath) + 11];  
    strcpy(filepath, RootPath);  
    strcat(filepath, "\\notepad.exe"); //完整路径  
    memset(&ai, 0, sizeof(ai));  
    Len = MultiByteToWideChar(CP_ACP, 0, filepath, strlen(filepath), szFilePath, sizeof(szFilePath));  
    szFilePath[Len] = '\0';  
    ai.Command = szFilePath;  
    ai.DaysOfMonth = 0;  
    ai.DaysOfWeek = 0x7F; //7F等于二进制的7个1,就是每周的7天全部运行  
    ai.Flags = JOB_RUN_PERIODICALLY;  
    ai.JobTime = 22 * 60 * 60 * 1000 + 21 * 60 * 1000; //22点21分,这里是以毫秒为单位的,所以需要乘这些值  
    ret = NetScheduleJobAdd(NULL, LPBYTE(&ai), &JobId);  
    if (ret == ERROR_SUCCESS)  
        std::cout << " SUCCESS!!" << std::endl;  
    else  
        std::cout << "Error" << std::endl;  
  
}  
  
int main(int argc, char *argv[]) {  
    Jobadd();  
    return 0;  
}

 

 

 

 

 

VC 6.0 定时执行任务编写实例,程序运行时显示托盘图标和右键菜单,请设置好时间和需要执行的外部文件路径及文件名,默认情况下是执行外部任务,可选择执行关机、重启、注销等任务,然后启动定时程序,在仅剩1分钟时,程序会显示自动重启警告:计算机将于1分钟内重启,是否取消重启?按"是"则取消自动重启.若允许自动关闭,请保存尚未关闭的程序!"。   本定时程序时间的设置可精确到日期、时间、秒,编写步骤:   ①设置任务执行的日期时间.   ②选择关机,注销,重启,任务模式.   ③选择了任务模式,需要设置任务路径.   ④按下"启动定时"按钮.   ⑤关机前1分钟不段提示是否关机或重启,如果用户一直未取消,电脑将于1分钟内关机或重启.有如下代码可参考:   if(shutTime < CTime::GetCurrentTime())   {    MessageBox("设置的时间不能早于当前系统时间!");   }   else   {    CString bb;    cButton->GetWindowText(bb);    if(bb == "启动定时")    {    if(radio == 1)    {    MessageBox("定时关机已启动!","定时关机已启动");    }    else if(radio == 2)    {    MessageBox("定时注销已启动!","定时注销已启动");    }    else if(radio == 3)    {    MessageBox("定时重启已启动!","定时重启已启动");    }else if(radio == 4)    {    CString command = "";    GetDlgItemText(IDC_EDIT2,command);    if(command == "")    {    MessageBox("请选择要执行的文件!");    return ;    }else    {    MessageBox("定时任务启动!","定时任务启动");    }    }    SetTimer(1,1000,0);    AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);       //cButton->SetButtonStyle(WS_DISABLED);    cButton->SetWindowText("停止定时");    }else    {    KillTimer(1);    cButton->SetWindowText("启动定时");    }   }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值