添加,删除任务计划
2011-11-01 10:12
190 查看
#include <windows.h>
#include <initguid.h>
#include <ole2.h>
#include <mstask.h>
#include <msterr.h>
#include <wchar.h>
#include<stdio.h>
//////////////////////////////////////////////////////////////////////////
//函数名称:DeleteTask
//函数功能:删除指定的任务计划
//参数说明:lpcwszTaskName:要删除的任务计划的名称
//////////////////////////////////////////////////////////////////////////
HRESULT DeleteTask(LPCWSTR lpcwszTaskName);
//////////////////////////////////////////////////////////////////////////
//函数名称:CreateTask
//函数功能:创建新的任务计划
//参数说明:lpcwszTaskName:要创建的任务计划的名称
// lpcwszApplicationName:要创建的任务计划的应用程序路径
//////////////////////////////////////////////////////////////////////////
HRESULT CreateTask(LPCWSTR lpcwszTaskName,LPCWSTR lpcwszApplicationName);
int main(int argc, char **argv)
{
HRESULT hr = S_OK;
LPCWSTR lpcwszTaskName = L"Test Task";
LPCWSTR lpcwszApplicationName = L"C://Windows//notepad.exe";
//hr = CreateTask(lpcwszTaskName,lpcwszApplicationName);//创建新的任务计划
hr = DeleteTask(lpcwszTaskName);//删除指定的任务计划
if (FAILED(hr))
{
wprintf(L"Failed calling ITask::Run, error = 0x%x/n",hr);
}
return 0;
}
//删除指定的计划任务
HRESULT DeleteTask(LPCWSTR lpcwszTaskName)
{
HRESULT hr = S_OK;
///////////////////////////////////////////////////////////////////
// Call CoInitialize to initialize the COM library and then
// CoCreateInstance to get the Task Scheduler object.
///////////////////////////////////////////////////////////////////
ITaskScheduler *pITS;
hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
hr = CoCreateInstance(CLSID_CTaskScheduler,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskScheduler,
(void **) &pITS);
if (FAILED(hr))
{
CoUninitialize();
return 1;
}
}
else
{
return 1;
}
//删除指定的任务计划
hr = pITS->Delete(lpcwszTaskName);
if (FAILED(hr))
{
//wprintf(L"Failed calling ITask::Run, error = 0x%x/n",hr);
CoUninitialize();
return hr;
}
CoUninitialize();
return S_OK;
}
HRESULT CreateTask(LPCWSTR lpcwszTaskName,LPCWSTR lpcwszApplicationName)
{
HRESULT hr = S_OK;
///////////////////////////////////////////////////////////////////
// Call CoInitialize to initialize the COM library and then
// CoCreateInstance to get the Task Scheduler object.
///////////////////////////////////////////////////////////////////
ITaskScheduler *pITS;
hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
hr = CoCreateInstance(CLSID_CTaskScheduler,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskScheduler,
(void **) &pITS);
if (FAILED(hr))
{
CoUninitialize();
return 1;
}
}
else
{
return 1;
}
//创建一个新的空白计划任务
ITask *pITask;
IPersistFile *pIPersistFile;
hr = pITS->NewWorkItem(lpcwszTaskName, // Name of task
CLSID_CTask, // Class identifier
IID_ITask, // Interface identifier
(IUnknown**)&pITask); // Address of task interface
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pITask->QueryInterface(IID_IPersistFile,
(void **)&pIPersistFile);
pITask->Release();
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pIPersistFile->Save(NULL,
TRUE);
pIPersistFile->Release();
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
//为上面创建的任务计划指定应用程序路径
hr = pITS->Activate(lpcwszTaskName,
IID_ITask,
(IUnknown**) &pITask);
// Release the ITaskScheduler interface.
pITS->Release();
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pITask->SetApplicationName(lpcwszApplicationName);
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pITask->QueryInterface(IID_IPersistFile,
(void **)&pIPersistFile);
// Release the ITask interface.
pITask->Release();
hr = pIPersistFile->Save(NULL,
TRUE);
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
// Release the IPersistFile interface.
pIPersistFile->Release();
CoUninitialize();
return hr;
}
//(windows7)上面代码(1.0版本的接口)在windows/tasks,目录建立。删除.job文件,并不会添加到控制面板的任务计划中,应该是还需要其他步骤(未找到完整例子)
下面的是MS的代码(2.0版本的接口)
http://msdn.microsoft.com/en-us/library/aa381915(v=VS.85).aspx
#include <initguid.h>
#include <ole2.h>
#include <mstask.h>
#include <msterr.h>
#include <wchar.h>
#include<stdio.h>
//////////////////////////////////////////////////////////////////////////
//函数名称:DeleteTask
//函数功能:删除指定的任务计划
//参数说明:lpcwszTaskName:要删除的任务计划的名称
//////////////////////////////////////////////////////////////////////////
HRESULT DeleteTask(LPCWSTR lpcwszTaskName);
//////////////////////////////////////////////////////////////////////////
//函数名称:CreateTask
//函数功能:创建新的任务计划
//参数说明:lpcwszTaskName:要创建的任务计划的名称
// lpcwszApplicationName:要创建的任务计划的应用程序路径
//////////////////////////////////////////////////////////////////////////
HRESULT CreateTask(LPCWSTR lpcwszTaskName,LPCWSTR lpcwszApplicationName);
int main(int argc, char **argv)
{
HRESULT hr = S_OK;
LPCWSTR lpcwszTaskName = L"Test Task";
LPCWSTR lpcwszApplicationName = L"C://Windows//notepad.exe";
//hr = CreateTask(lpcwszTaskName,lpcwszApplicationName);//创建新的任务计划
hr = DeleteTask(lpcwszTaskName);//删除指定的任务计划
if (FAILED(hr))
{
wprintf(L"Failed calling ITask::Run, error = 0x%x/n",hr);
}
return 0;
}
//删除指定的计划任务
HRESULT DeleteTask(LPCWSTR lpcwszTaskName)
{
HRESULT hr = S_OK;
///////////////////////////////////////////////////////////////////
// Call CoInitialize to initialize the COM library and then
// CoCreateInstance to get the Task Scheduler object.
///////////////////////////////////////////////////////////////////
ITaskScheduler *pITS;
hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
hr = CoCreateInstance(CLSID_CTaskScheduler,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskScheduler,
(void **) &pITS);
if (FAILED(hr))
{
CoUninitialize();
return 1;
}
}
else
{
return 1;
}
//删除指定的任务计划
hr = pITS->Delete(lpcwszTaskName);
if (FAILED(hr))
{
//wprintf(L"Failed calling ITask::Run, error = 0x%x/n",hr);
CoUninitialize();
return hr;
}
CoUninitialize();
return S_OK;
}
HRESULT CreateTask(LPCWSTR lpcwszTaskName,LPCWSTR lpcwszApplicationName)
{
HRESULT hr = S_OK;
///////////////////////////////////////////////////////////////////
// Call CoInitialize to initialize the COM library and then
// CoCreateInstance to get the Task Scheduler object.
///////////////////////////////////////////////////////////////////
ITaskScheduler *pITS;
hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
hr = CoCreateInstance(CLSID_CTaskScheduler,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskScheduler,
(void **) &pITS);
if (FAILED(hr))
{
CoUninitialize();
return 1;
}
}
else
{
return 1;
}
//创建一个新的空白计划任务
ITask *pITask;
IPersistFile *pIPersistFile;
hr = pITS->NewWorkItem(lpcwszTaskName, // Name of task
CLSID_CTask, // Class identifier
IID_ITask, // Interface identifier
(IUnknown**)&pITask); // Address of task interface
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pITask->QueryInterface(IID_IPersistFile,
(void **)&pIPersistFile);
pITask->Release();
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pIPersistFile->Save(NULL,
TRUE);
pIPersistFile->Release();
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
//为上面创建的任务计划指定应用程序路径
hr = pITS->Activate(lpcwszTaskName,
IID_ITask,
(IUnknown**) &pITask);
// Release the ITaskScheduler interface.
pITS->Release();
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pITask->SetApplicationName(lpcwszApplicationName);
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
hr = pITask->QueryInterface(IID_IPersistFile,
(void **)&pIPersistFile);
// Release the ITask interface.
pITask->Release();
hr = pIPersistFile->Save(NULL,
TRUE);
if (FAILED(hr))
{
CoUninitialize();
return hr;
}
// Release the IPersistFile interface.
pIPersistFile->Release();
CoUninitialize();
return hr;
}
//(windows7)上面代码(1.0版本的接口)在windows/tasks,目录建立。删除.job文件,并不会添加到控制面板的任务计划中,应该是还需要其他步骤(未找到完整例子)
下面的是MS的代码(2.0版本的接口)
http://msdn.microsoft.com/en-us/library/aa381915(v=VS.85).aspx
相关文章推荐
- Saltstack sls文件:批量添加删除计划任务
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- 3.spring Boot 定时任务升级篇(动态添加修改删除定时任务)
- quartz动态添加、更新、删除定时任务
- 自动创建计划任务之删除7天以前的备份文件批处理
- Linux计划任务,自动删除n天前的旧文件
- Linux系统下使用crontab添加计划任务的方法
- NetScheduleJobAdd函数添加任务计划的方法
- 解决,windows的任务计划中添加一个批处理脚本,总是显示命令行窗口的问题
- 使用任务计划程序添加计划任务
- 解决mysql添加任务计划作业时,报‘事件计划已关闭。事件只能在服务器启动并开启事件计划时才能处理。’
- Windows系统使用vbs脚本或bat脚本强制杀死指定所有进程 vbs实现循环持续写入内容到vbs打开开的记事本 使用vbs、bat添加windows计划任务 使用cmd schtasks命令添加windows计划任务
- Spring4.0.6 +Quartz 2.2.1动态添加、修改、删除、关闭定时任务
- c#.net向windows添加计划任务(task schduler)项
- Linux计划任务,自动删除n天前的旧文件【转】
- Quartz2定时任务动态 重新安排 ,暂停 ,恢复,重启 , 删除 ,重新添加
- .net中用代码添加服务器上的计划任务
- Linux下添加任务计划,计划内容以sh文件表示