task scheduler启动不了_Task Scheduler

task scheduler启动不了_Task Scheduler理解ITaskService对象此对象需要依赖TaskshdWindows服务,如果此服务被关闭,那么此COM对象也将会失效。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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对象里面提供的各种操作方法,来执行相应的操作。如下图所示:
    Task Scheduler2.0的常用操作
    MSDN提供的Task Scheduler2.0的操作例子

  • 6.操作完成之后,调用CoUninitialize()来释放COM。当然在此之前,需要对各个COM对象,比如ITaskService等COM对象执行Release()`函数进行内存释放,如果使用了智能指针来管理了此对象,那自然就可以偷懒了(^__^)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184017.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 查看Linux内核版本的命令_ubuntu 查看内核

    查看Linux内核版本的命令_ubuntu 查看内核有朋友在使用Linux的过程中要查看Linux的内核版本号,这要怎么看呢?也有朋友文要怎么查看linux系统版本信息呢?下面和小编一起了解一下吧。一、查看linux内核版本号1:登录linux,在终端输入cat/proc/version2:登录linux,在终端输入uname-a即列出linux的内核版本号。二、查看linux系统版本信息1:登录到linux服务器执行lsb_rele…

    2022年8月23日
    7
  • 长轮询的使用实现_长轮询和短轮询

    长轮询的使用实现_长轮询和短轮询轮询(Polling):是指不管服务器端有没有更新,客户端(通常是指浏览器)都定时的发送请求进行查询,轮询的结果可能是服务器端有新的更新过来,也可能什么也没有,只是返回个空的信息。不管结果如何,客户端处理完后到下一个定时时间点将继续下一轮的轮询。长轮询(LongPolling):长轮询的服务其客户端是不做轮询的,客户端在发起一次请求后立即挂起,一直到服务器端有更新的时候,服务器才会主动推送信息到…

    2025年6月17日
    1
  • 极大似然估计和贝叶斯估计的联系(似然估计和最大似然估计)

    1.什么是参数在机器学习中,我们经常使用一个模型来描述生成观察数据的过程。例如,我们可以使用一个随机森林模型来分类客户是否会取消订阅服务(称为流失建模),或者我们可以用线性模型根据公司的广告支出来预测公司的收入(这是一个线性回归的例子)。每个模型都包含自己的一组参数,这些参数最终定义了模型本身。我们可以把线性模型写成y=mx+c的形式。在广告预测收入的例子中,x可以表示广告支…

    2022年4月9日
    97
  • java对象类型转换_cdr轮廓转换为对象

    java对象类型转换_cdr轮廓转换为对象要将Java对象或POJO(普通旧Java对象)转换为JSON,我们可以使用JSONObject将对象作为参数的构造函数之一。在下面的示例中,我们将StudentPOJO转换为JSON字符串。Student类必须提供getter方法,JSONObject通过调用这些方法创建JSON字符串。在此代码段中,我们执行以下操作:使用setter方法创建Student对象并设置其属性。 创建JSONObject调用object并将Student对象用作其构造函数的参数。 J.

    2022年9月18日
    3
  • 0~9迷你上标小数字复制_下标1

    0~9迷你上标小数字复制_下标1A⁰¹²³⁴⁵⁶⁷⁸⁹B₀₁₂₃₄₅₆₇₈₉

    2022年9月30日
    4
  • vue获取浏览器cookie_新型冠状病毒肺炎

    vue获取浏览器cookie_新型冠状病毒肺炎读取Cookie可以通过document.cookie直接读取cookie的内容:varstrCookie=document.cookie; 此时,strCookie是一个由该域名下的所有cookie的名/值对所组成的字符串,名/值对间以“分号加空格”分隔。为了方便查看,可以使用split()方法将cookie中的名/值对解析出来,得到一个cookie的列表。然后,再使用相应的解码方式,把c…

    2025年5月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号