c++通过设置计划任务实现自启动

c++通过设置计划任务实现自启动#include "stdafx.h"#include "MyTaskSchedule.h"int _tmain(int argc, _TCHAR* argv[]){ CMyTaskSchedule task; BOOL bRet = FALSE; // 创建 任务计划 bRet = task.NewTask("程序名", "程序路径", "", ""); if (FALSE == bRet) { printf("Create Task Sched
摘要由CSDN通过智能技术生成

c++通过设置计划任务实现自启动

#include "stdafx.h"
#include "MyTaskSchedule.h"

int _tmain(int argc, _TCHAR* argv[])
{
	CMyTaskSchedule task;
	BOOL bRet = FALSE;

	// 创建 任务计划
	bRet = task.NewTask("程序名", "程序路径", "", "");
	if (FALSE == bRet)
	{
		printf("Create Task Schedule Error!\n");
	}

	// 暂停
	printf("Create Task Schedule OK!\n");
	system("pause");

	// 卸载 任务计划
	bRet = task.Delete("520");
	if (FALSE == bRet)
	{
		printf("Delete Task Schedule Error!\n");
	}

	printf("Delete Task Schedule OK!\n");
	system("pause");
	return 0;
}
void ShowError(char *lpszText, DWORD dwErrCode)
{
	char szErr[MAX_PATH] = {0};
	::wsprintf(szErr, "%s Error!\nError Code Is:0x%08x\n", lpszText, dwErrCode);
	::MessageBox(NULL, szErr, "ERROR", MB_OK | MB_ICONERROR);
}


CMyTaskSchedule::CMyTaskSchedule(void)
{
	m_lpITS = NULL;
	m_lpRootFolder = NULL;
	// 初始化COM
	HRESULT hr = ::CoInitialize(NULL);
	if(FAILED(hr))
	{
		ShowError("CoInitialize", hr);
	}
	// 创建一个任务服务(Task Service)实例
	hr = ::CoCreateInstance(CLSID_TaskScheduler,
		NULL,
		CLSCTX_INPROC_SERVER,
		IID_ITaskService,
		(LPVOID *)(&m_lpITS));
	if(FAILED(hr))
	{
		ShowError("CoCreateInstance", hr);
	}
	// 连接到任务服务(Task Service)
	hr = m_lpITS->Connect(_variant_t(), _variant_t(), _variant_t(), _variant_t());
	if(FAILED(hr))
	{
		ShowError("ITaskService::Connect", hr);
	}
	// 获取Root Task Folder的指针,这个指针指向的是新注册的任务
	hr = m_lpITS->GetFolder(_bstr_t("\\"), &m_lpRootFolder);
	if(FAILED(hr))
	{
		ShowError("ITaskService::GetFolder", hr);
	}
}


CMyTaskSchedule::~CMyTaskSchedule(void)
{
	if(m_lpITS)
	{
		m_lpITS->Release();
	}
	if(m_lpRootFolder)
	{
		m_lpRootFolder->Release();
	}
	// 卸载COM
	::CoUninitialize();
}


  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值