高分求方法!!!

zjyhit 2004-03-24 03:16:25
char szSysDir[255];
CString strTaskDir;
CString strCmd;
GetWindowsDirectoryA(szSysDir,255);
strTaskDir=szSysDir;
strTaskDir=strTaskDir + "\\tasks";
strCmd="explorer ";
strCmd=strCmd + strTaskDir;
WinExec(strCmd,1);
上面的程序可以调出windows的计划任务的目录下,有什么办法可以直接把windows的计划任务直接启动呢?
或者有什么办法可以在用户安装我的软件的时候可一把我的软件自动加入windows的计划任务里面?
方法可用,马上给分。
谢谢大家!!!
...全文
26 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjyhit 2004-03-25
  • 打赏
  • 举报
回复
还有一个问题:
WinExec("at 9:12 /interactive c:\\winnt\\system32\\calc.exe", SW_HIDE);
上面这个命令我把9:12换成一个参数为什么传不过来呢?
我需要的是用控件(Date Time Picker)用户指定时间和日期,然后把参数传到上面的函数,
大家给个例子好吗?谢谢了!
shenke410 2004-03-25
  • 打赏
  • 举报
回复
哎,受益多多!!!!!
ymbymb 2004-03-25
  • 打赏
  • 举报
回复
你可以先把系统时间设置到你想要的日期,然后启动AT命令,再把日期改回来不就行了?
alvachien 2004-03-25
  • 打赏
  • 举报
回复
指定某一天,使用/NEXT

查看所有的参数设置,可以在命令行程序中查看 at /?
zjyhit 2004-03-25
  • 打赏
  • 举报
回复
还有就是怎么样指定某一天运行计划?譬如2004-3-30日这一天运行
ymbymb 2004-03-25
  • 打赏
  • 举报
回复
不用输入用户名和密码,加上 /interactive就可以了,我在我的机器上试了,可以启动,你的应用程序名最好输入全路径,我在VC中执行如下指令,成功启动计算器
WinExec("at 9:12 /interactive c:\\winnt\\system32\\calc.exe", SW_HIDE);
zjyhit 2004-03-25
  • 打赏
  • 举报
回复
谢谢楼上的几位,还有一个问题,加入的计划不能执行,我发现是没有输入用户名和密码,怎么样才能在加入计划的时候自动加入这些呢?这个问题怎么解决?谢谢!
ymbymb 2004-03-25
  • 打赏
  • 举报
回复
我不告诉你了吗,先把系统时间设置到你想要指定的时间,再执行AT命令,再把时间设回来.
SYSTEMTIME syst, syst_old;
GetSystemTime(&syst);
syst_old = syst;
syst.wYear = 2004;
syst.wMonth = 5;
syst.wDay = 1;
syst.wHour = 0;
syst.wMinute = 0;
syst.wSecond = 0;
SetSystemTime(&syst);
WinExec("at 9:12 /interactive c:\\winnt\\system32\\calc.exe", SW_HIDE);
Sleep(1000);
SetSystemTime(&syst_old);
zjyhit 2004-03-25
  • 打赏
  • 举报
回复
我就是想指定日期,例如2004-5-1,怎么做?
ymbymb 2004-03-25
  • 打赏
  • 举报
回复
next 和 every 的语法一样,区别在于next只执行一次
WinExec("at 9:12 /interactive /next:1,5 c:\\winnt\\system32\\calc.exe", SW_HIDE);
表示下个月1号,5号运行
WinExec("at 9:12 /interactive /next:m c:\\winnt\\system32\\calc.exe", SW_HIDE);
表示下周一运行;
zjyhit 2004-03-25
  • 打赏
  • 举报
回复
大哥,我真的最后一个问题了,真的非常感谢你,帮我解决这个问题再给你100分也没有问题。
WinExec("at 9:12 /interactive c:\\winnt\\system32\\calc.exe", SW_HIDE);
上面这个函数怎么用next命令?譬如我想在2004-5-1运行这个程序
WinExec("at 9:12 /interactive /2004-5-1 c:\\winnt\\system32\\calc.exe", SW_HIDE);
为什么这样写不行呢?
怎么样解决这个问题啊?在线等,谢谢了!

ymbymb 2004-03-25
  • 打赏
  • 举报
回复
你还没完了,问题越问越多,100 分太少了吧?
你可以先生成一个字符串再传递给WinExec
CString cmdStr;
int hour = 9;
int minute = 12;
cmdStr.Format("at %d:%d /interactive c:\\winnt\\system32\\calc.exe", hour, minute);
WinExec(cmdStr, SW_HIDE);
mrf2con 2004-03-24
  • 打赏
  • 举报
回复
good
:)
薛定谔之死猫 2004-03-24
  • 打赏
  • 举报
回复
mark
ymbymb 2004-03-24
  • 打赏
  • 举报
回复
在时间后面加上 /interactive 才能显示程序界面
WinExec("at 12:00 /interactive c:\\winnt\\system32\\calc.exe", SW_HIDE);设定每天12:00运行计算器
ymbymb 2004-03-24
  • 打赏
  • 举报
回复
你输入的命令带路径,起始里就有了
zjyhit 2004-03-24
  • 打赏
  • 举报
回复
还有问题就是计划可以加入,但是时间到了不能正常运行,我看了,用这个方法加入的计划在计划的属性里面的起始于 这里是空白的,这个问题怎么解决?
zjyhit 2004-03-24
  • 打赏
  • 举报
回复
谢谢楼上的几位,我试过了,方法很好,小弟还有一个很菜的问题,创建的计划怎么样才能是我自己想起的名称?不用默认的at1,还有就是怎么样自动获取我的软件安装的目录,然后指定运行我的软件?
ymbymb 2004-03-24
  • 打赏
  • 举报
回复
用at命令就可以将你的软件添加到计划任务里

WinExec("at 12:00 yourprogram.exe", SW_HIDE);设定每天12:00运行你的程序
WinExec("at 12:00 /every:1 yourprogram.exe", SW_HIDE);设定每个月1号12:00运行你的程序
WinExec("at 12:00 /every:10,15 yourprogram.exe", SW_HIDE);设定每个月10号和15号12:00运行你的程序
WinExec("at 12:00 /every:m yourprogram.exe", SW_HIDE);设定每周一12:00运行你的程序
WinExec("at 12:00 /every:m,w yourprogram.exe", SW_HIDE);设定每周一, 周三12:00运行你的程序
日期的格式可以是M,T,W,Th,F,S,Su分別代表星期一至星期日,或是1至31,代表每月的某一日,兩者可混合使用,彼此須以逗號隔開,例如: /every:5,10,15,20,M,W
Alice_Hexj 2004-03-24
  • 打赏
  • 举报
回复
计划任务本质就是在特定的时间执行一个或多个任务,只要知道是什么任务,就可以随时执行。
添加任务计划:如“at 16:25/every:W MSDev.exe”为每周三16:25自动一些VC.
加载更多回复(2)

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧