大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
了解ITaskService对象
此对象需要依赖TaskshdWindows服务,如果此服务被关闭,那么此COM对象也将会失效。有关这个COM对象在MSDN里也多有提及,想看官方的在线连接,[点我吧]
注意,Task Scheduler 2.0仅仅可以在Xp以上的Windows系统内可以正常使用哦。
操作Task Scheduler 2.0的常见套路
对于TaskScheduler 2.0而言,开发包括了以下常见步骤,如下所示:
- 1.调用
CoInitialize()
来初始化COM,代码片段如下所示:
CoInitialize(NULL);
- 2.调用
CoInitializeSecurity()
来设置进程安全,避免被杀毒软件报毒
代码如下所示:
CoInitializeSecurity(
NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
0,
NULL
);
- 3.使用
CoCreateInstance()
函数来初始化一个ITaskService
对象。代码片段如下所示:
ITaskService *m_pService=NULL;
CoCreateInstance(CLSID_TaskScheduler,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskService,
(void ** )&m_pService);
- 4.在
Task Scheduler 2.0
之中,与1.0的不同之处就是需要通过ITaskService
对象里面的Connect()
来连接上对应的Windows服务程序。代码片段如下所示:
m_pService->Connect(_variant_t(), _variant_t(), _variant_t(), _variant_t());
-
5.调用
ITaskService
对象里面提供的各种操作方法,来执行相应的操作。如下图所示:
-
6.操作完成之后,调用
CoUninitialize()
来释放COM。当然在此之前,需要对各个COM对象,比如ITaskService等COM对象执行
Release()`函数进行内存释放,如果使用了智能指针来管理了此对象,那自然就可以偷懒了(^__^)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184017.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...