{"id":152,"date":"2025-03-26T01:50:02","date_gmt":"2025-03-25T17:50:02","guid":{"rendered":"https:\/\/itcat.me\/?p=152"},"modified":"2025-03-26T01:59:04","modified_gmt":"2025-03-25T17:59:04","slug":"windows%e4%b8%8b%e6%b7%bb%e5%8a%a0%e4%bb%bb%e5%8a%a1%e8%ae%a1%e5%88%92%e7%a8%8b%e5%ba%8f","status":"publish","type":"post","link":"https:\/\/itcat.me\/?p=152","title":{"rendered":"windows\u4e0b\u6dfb\u52a0\u4efb\u52a1\u8ba1\u5212\u7a0b\u5e8f"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u7528Qt6\u5199\u4e2a\u7a0b\u5e8f\uff0c\u60f3\u628a\u81ea\u5df1\u8bbe\u7f6e\u4e3a\u767b\u5f55windows\u540e\u81ea\u52a8\u8fd0\u884c\uff0c\u4e14\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u8fd0\u884c\uff0c\u6700\u540e\u7528windows\u4efb\u52a1\u8ba1\u5212\u5b9e\u73b0\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(3 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#fff;font-style:italic;color:#24292e\"><span style=\"border-bottom:1px solid rgba(16, 41, 67, 0.2)\">C++<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;windows.h&gt;\n#include &lt;comdef.h&gt;\n#include &lt;objbase.h&gt;\n#include &lt;taskschd.h&gt;\n#include &lt;tchar.h&gt;\n#include &lt;QDebug&gt;\n#include &lt;winerror.h&gt;\n#include &lt;QString&gt;\n\n\/\/\u4efb\u52a1\u8ba1\u5212\u9700\u8981\u8fd9\u4e2a\u5e93\u6587\u4ef6\n#pragma comment(lib, &quot;taskschd.lib&quot;)\n\nQString taskErrMessage = &quot;&quot;; \/\/\u4fdd\u5b58\u9519\u8bef\u4fe1\u606f\n\n\/\/ \u4e0b\u9762\u7684\u51fd\u6570\u5728\u4efb\u52a1\u8ba1\u5212\u7684itcat\u76ee\u5f55\u521b\u5efa\u4e86\u4e2a\u540d\u4e3aitcat_amp\u7684\u4efb\u52a1\u8ba1\u5212\uff0c\u767b\u5f55\u65f6\u89e6\u53d1\uff0c\u4ee5\u6700\u9ad8\u6743\u9650\u8fd0\u884c\u3002\n\/\/ \u6bcf\u4e00\u6b65\u90fd\u8981\u5224\u65ad\u662f\u5426\u51fa\u9519\uff0c\u51fa\u9519\u5c31\u5f97\u91ca\u653eCOM\u5bf9\u50cf\u5e76\u9000\u51fa\uff0c\u5acc\u9ebb\u70e6\uff0c\u7528\u4e86\u88ab\u5996\u9b54\u5316\u7684goto\u8bed\u53e5\uff0c\n\/\/ \u4e00\u51fa\u9519\u5c31\u8df3\u5230\u91ca\u653e\u8d44\u6e90\u7684\u5757\u3002 \n\/\/ taskschd\u662fCOM,\u7a0b\u5e8f\u5f00\u59cb\u8981\u521d\u59cb\u5316COM\u73af\u5883 \u7528 CoInitialize(NULL);\n\/\/ \u7a0b\u5e8f\u7ed3\u675f\u8981\u8c03\u7528CoUninitialize(); \u91ca\u653eCOM\u73af\u5883\u3002\nvoid createTask(QString sFilePath){\n    ITaskService* pService = NULL;\n    ITaskFolder* pRootFolder = NULL;\n    ITaskFolder *pItcatFolder = NULL;\n\n    ITaskDefinition *pTask = NULL;\n\n    IRegistrationInfo *pRegInfo= NULL;\n    ITaskSettings *pSettings = NULL;\n\n    ITriggerCollection *pTriggerCollection = NULL;\n    ITrigger *pTrigger = NULL;\n    ILogonTrigger *pLogonTrigger = NULL;\n\n    IActionCollection *pActionCollection = NULL;\n    IAction *pAction = NULL;\n    IExecAction *pExecAction = NULL;\n\n    IPrincipal* pPrin = NULL;\n\n    IRegisteredTask *pRegisteredTask = NULL;\n\n    long lcount = 0;\n    bool bFind = false;\n\n    taskErrMessage = &quot;&quot;;\n\n    HRESULT hr = CoCreateInstance(CLSID_TaskScheduler, \n                                  NULL,\n                                  CLSCTX_INPROC,\n                                  IID_ITaskService,\n                                  (void**)&amp;pService);\n    if (FAILED(hr)) {\n        taskErrMessage = &quot;\u521b\u5efaCOM\u5bf9\u50cf\u5931\u8d25\uff01&quot;;\n        return;\n    }\n\n    hr = pService-&gt;Connect(_variant_t(), _variant_t(), _variant_t(), _variant_t());\n    if (FAILED(hr)) {\n        taskErrMessage = &quot;\u8fde\u63a5\u8ba1\u5212\u4efb\u52a1\u670d\u52a1\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n    hr = pService-&gt;GetFolder(_bstr_t(L&quot;\\\\&quot;), &amp;pRootFolder);\n    if (FAILED(hr)) {\n        taskErrMessage = &quot;\u83b7\u53d6\u6839\u76ee\u5f55\u5931\u8d25&quot;;\n        goto end;\n    }\n\n    \/\/\u83b7\u53d6\u5b50\u76ee\u5f55\uff0c\u5982\u679c\u5b50\u76ee\u5f55\u4e0d\u5b58\u5728\u5c31\u521b\u5efa\u3002\n    hr = pRootFolder-&gt;GetFolder(_bstr_t(L&quot;itcat&quot;),&amp;pItcatFolder);\n    if(FAILED(hr)){\n        QString s = &quot;itcat&quot;;\n        BSTR bstr_name = bstr_t(s.toStdWString().c_str());\n        hr = pRootFolder-&gt;CreateFolder(bstr_name,_variant_t(),&amp;pItcatFolder);\n        if(SUCCEEDED(hr))\n            qDebug() &lt;&lt; &quot;\u521b\u5efaitcat\u76ee\u5f55\u6210\u529f&quot;;\n        else{\n            taskErrMessage = &quot;\u521b\u5efa\u5b50\u76ee\u5f55\u5931\u8d25\uff01&quot;;\n            goto end;\n        }\n    }\n\n    \/\/\u521b\u5efa\u4efb\u52a1\u5f00\u59cb\n    pService-&gt;NewTask(0,&amp;pTask);\n\n    hr = pTask-&gt;get_RegistrationInfo( &amp;pRegInfo );\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u521b\u5efa\u6ce8\u518c\u4fe1\u606f\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    pRegInfo-&gt;put_Author(_bstr_t(L&quot;ITCat&quot;));\n    pRegInfo-&gt;Release();\n\n    hr = pTask-&gt;get_Settings( &amp;pSettings );\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u521b\u5efaSetting\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    \/\/  Set setting values for the task.\n    pSettings-&gt;put_StartWhenAvailable(VARIANT_TRUE);\n    pSettings-&gt;Release();\n\n    hr = pTask-&gt;get_Triggers(&amp;pTriggerCollection);\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u83b7\u53d6\u89e6\u53d1\u5668\u96c6\u5408\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    hr = pTriggerCollection-&gt;Create( TASK_TRIGGER_LOGON, &amp;pTrigger );\n    pTriggerCollection-&gt;Release();\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u521b\u5efa\u89e6\u53d1\u5668\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    hr = pTrigger-&gt;QueryInterface(IID_ILogonTrigger, (void**) &amp;pLogonTrigger );\n    pTrigger-&gt;Release();\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u83b7\u53d6\u767b\u5f55\u89e6\u53d1\u5668\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n    pLogonTrigger-&gt;Release();\n\n\n    hr = pTask-&gt;get_Actions( &amp;pActionCollection );\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u83b7\u53d6Action\u96c6\u5408\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    hr = pActionCollection-&gt;Create( TASK_ACTION_EXEC, &amp;pAction );\n    pActionCollection-&gt;Release();\n    if( FAILED(hr) )\n    {\n        taskErrMessage  = &quot;\u521b\u5efaAction\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    hr = pAction-&gt;QueryInterface(IID_IExecAction, (void**) &amp;pExecAction );\n    pAction-&gt;Release();\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u83b7\u53d6ExeAction\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    \/\/  Set the path of the executable to notepad.exe.\n    hr = pExecAction-&gt;put_Path( _bstr_t(sFilePath.toStdWString().c_str()));\n    pExecAction-&gt;Release();\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u8bbe\u7f6e\u53ef\u6267\u884c\u6587\u4ef6\u8def\u5f84\u5931\u8d25\uff01&quot;;\n        goto end;\n    }\n\n    hr = pTask-&gt;get_Principal(&amp;pPrin);\n    if(SUCCEEDED(hr)){\n        pPrin-&gt;put_RunLevel(TASK_RUNLEVEL_TYPE::TASK_RUNLEVEL_HIGHEST);\n        pPrin-&gt;Release();\n    }\n\n    hr = pItcatFolder-&gt;RegisterTaskDefinition(\n        _bstr_t(L&quot;itcat_amp&quot;),\n        pTask,\n        TASK_CREATE_OR_UPDATE,\n        _variant_t(L&quot;S-1-5-32-544&quot;),\n        _variant_t(),\n        TASK_LOGON_GROUP,\n        _variant_t(L&quot;&quot;),\n        &amp;pRegisteredTask);\n    if( FAILED(hr) )\n    {\n        taskErrMessage = &quot;\u6ce8\u518c\u4efb\u52a1\u5931\u8d25\uff01&quot;;\n        if(hr == E_ACCESSDENIED){\n            qDebug()&lt;&lt;&quot;\u65e0\u6743\u9650\uff01&quot;;\n        }\n    }\n\n    end:\n    qDebug()&lt;&lt; taskErrMessage;\n    if (pTask!=NULL)  pTask-&gt;Release();\n    if (pRegisteredTask!=NULL) pRegisteredTask-&gt;Release();\n    if (pItcatFolder!=NULL)  pItcatFolder-&gt;Release();\n    if (pRootFolder!=NULL) pRootFolder-&gt;Release();\n    if (pService!=NULL) pService-&gt;Release();\n}\" style=\"color:#fff;display:none;background-color:#24292e\" aria-label=\"\u590d\u5236\" data-copied-text=\"\u5df2\u590d\u5236\uff01\" data-has-text-button=\"textSimple\" data-inside-header-type=\"stringSmall\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">\u590d\u5236<\/span><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;windows.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;comdef.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;objbase.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;taskschd.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;tchar.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;QDebug&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;winerror.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#include<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&lt;QString&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/\u4efb\u52a1\u8ba1\u5212\u9700\u8981\u8fd9\u4e2a\u5e93\u6587\u4ef6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">#pragma<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">comment<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #6F42C1\">lib<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&quot;taskschd.lib&quot;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">QString taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;&quot;<\/span><span style=\"color: #24292E\">;<\/span><span style=\"color: #6A737D\"> \/\/\u4fdd\u5b58\u9519\u8bef\u4fe1\u606f<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ \u4e0b\u9762\u7684\u51fd\u6570\u5728\u4efb\u52a1\u8ba1\u5212\u7684itcat\u76ee\u5f55\u521b\u5efa\u4e86\u4e2a\u540d\u4e3aitcat_amp\u7684\u4efb\u52a1\u8ba1\u5212\uff0c\u767b\u5f55\u65f6\u89e6\u53d1\uff0c\u4ee5\u6700\u9ad8\u6743\u9650\u8fd0\u884c\u3002<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ \u6bcf\u4e00\u6b65\u90fd\u8981\u5224\u65ad\u662f\u5426\u51fa\u9519\uff0c\u51fa\u9519\u5c31\u5f97\u91ca\u653eCOM\u5bf9\u50cf\u5e76\u9000\u51fa\uff0c\u5acc\u9ebb\u70e6\uff0c\u7528\u4e86\u88ab\u5996\u9b54\u5316\u7684goto\u8bed\u53e5\uff0c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ \u4e00\u51fa\u9519\u5c31\u8df3\u5230\u91ca\u653e\u8d44\u6e90\u7684\u5757\u3002 <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ taskschd\u662fCOM,\u7a0b\u5e8f\u5f00\u59cb\u8981\u521d\u59cb\u5316COM\u73af\u5883 \u7528 CoInitialize(NULL);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ \u7a0b\u5e8f\u7ed3\u675f\u8981\u8c03\u7528CoUninitialize(); \u91ca\u653eCOM\u73af\u5883\u3002<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">void<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">createTask<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #6F42C1\">QString<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #E36209\">sFilePath<\/span><span style=\"color: #24292E\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITaskService<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\"> pService <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITaskFolder<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\"> pRootFolder <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITaskFolder <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pItcatFolder <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITaskDefinition <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pTask <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    IRegistrationInfo <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pRegInfo<\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITaskSettings <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pSettings <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITriggerCollection <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pTriggerCollection <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ITrigger <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pTrigger <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    ILogonTrigger <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pLogonTrigger <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    IActionCollection <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pActionCollection <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    IAction <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pAction <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    IExecAction <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pExecAction <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    IPrincipal<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\"> pPrin <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    IRegisteredTask <\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">pRegisteredTask <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">long<\/span><span style=\"color: #24292E\"> lcount <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">0<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">bool<\/span><span style=\"color: #24292E\"> bFind <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">false<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    HRESULT hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">CoCreateInstance<\/span><span style=\"color: #24292E\">(CLSID_TaskScheduler, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">                                  <\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">                                  CLSCTX_INPROC,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">                                  IID_ITaskService,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">                                  (<\/span><span style=\"color: #D73A49\">void**<\/span><span style=\"color: #24292E\">)<\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pService);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efaCOM\u5bf9\u50cf\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">return<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pService-&gt;<\/span><span style=\"color: #6F42C1\">Connect<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(), <\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(), <\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(), <\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u8fde\u63a5\u8ba1\u5212\u4efb\u52a1\u670d\u52a1\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pService-&gt;<\/span><span style=\"color: #6F42C1\">GetFolder<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #005CC5\">_bstr_t<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">L&quot;<\/span><span style=\"color: #005CC5\">\\\\<\/span><span style=\"color: #032F62\">&quot;<\/span><span style=\"color: #24292E\">), <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pRootFolder);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u83b7\u53d6\u6839\u76ee\u5f55\u5931\u8d25&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">    \/\/\u83b7\u53d6\u5b50\u76ee\u5f55\uff0c\u5982\u679c\u5b50\u76ee\u5f55\u4e0d\u5b58\u5728\u5c31\u521b\u5efa\u3002<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pRootFolder-&gt;<\/span><span style=\"color: #6F42C1\">GetFolder<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #005CC5\">_bstr_t<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">L&quot;itcat&quot;<\/span><span style=\"color: #24292E\">),<\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pItcatFolder);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr)){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        QString s <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;itcat&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        BSTR bstr_name <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">bstr_t<\/span><span style=\"color: #24292E\">(s.<\/span><span style=\"color: #6F42C1\">toStdWString<\/span><span style=\"color: #24292E\">().<\/span><span style=\"color: #6F42C1\">c_str<\/span><span style=\"color: #24292E\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pRootFolder-&gt;<\/span><span style=\"color: #6F42C1\">CreateFolder<\/span><span style=\"color: #24292E\">(bstr_name,<\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(),<\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pItcatFolder);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #6F42C1\">SUCCEEDED<\/span><span style=\"color: #24292E\">(hr))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">            <\/span><span style=\"color: #6F42C1\">qDebug<\/span><span style=\"color: #24292E\">() <\/span><span style=\"color: #D73A49\">&lt;&lt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efaitcat\u76ee\u5f55\u6210\u529f&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">else<\/span><span style=\"color: #24292E\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">            taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efa\u5b50\u76ee\u5f55\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">            <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">    \/\/\u521b\u5efa\u4efb\u52a1\u5f00\u59cb<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pService-&gt;<\/span><span style=\"color: #6F42C1\">NewTask<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #005CC5\">0<\/span><span style=\"color: #24292E\">,<\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pTask);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTask-&gt;<\/span><span style=\"color: #6F42C1\">get_RegistrationInfo<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pRegInfo );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efa\u6ce8\u518c\u4fe1\u606f\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pRegInfo-&gt;<\/span><span style=\"color: #6F42C1\">put_Author<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #005CC5\">_bstr_t<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">L&quot;ITCat&quot;<\/span><span style=\"color: #24292E\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pRegInfo-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTask-&gt;<\/span><span style=\"color: #6F42C1\">get_Settings<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pSettings );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efaSetting\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">    \/\/  Set setting values for the task.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pSettings-&gt;<\/span><span style=\"color: #6F42C1\">put_StartWhenAvailable<\/span><span style=\"color: #24292E\">(VARIANT_TRUE);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pSettings-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTask-&gt;<\/span><span style=\"color: #6F42C1\">get_Triggers<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pTriggerCollection);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u83b7\u53d6\u89e6\u53d1\u5668\u96c6\u5408\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTriggerCollection-&gt;<\/span><span style=\"color: #6F42C1\">Create<\/span><span style=\"color: #24292E\">( TASK_TRIGGER_LOGON, <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pTrigger );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pTriggerCollection-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efa\u89e6\u53d1\u5668\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTrigger-&gt;<\/span><span style=\"color: #6F42C1\">QueryInterface<\/span><span style=\"color: #24292E\">(IID_ILogonTrigger, (<\/span><span style=\"color: #D73A49\">void**<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pLogonTrigger );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pTrigger-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u83b7\u53d6\u767b\u5f55\u89e6\u53d1\u5668\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pLogonTrigger-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTask-&gt;<\/span><span style=\"color: #6F42C1\">get_Actions<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pActionCollection );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u83b7\u53d6Action\u96c6\u5408\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pActionCollection-&gt;<\/span><span style=\"color: #6F42C1\">Create<\/span><span style=\"color: #24292E\">( TASK_ACTION_EXEC, <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pAction );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pActionCollection-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage  <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u521b\u5efaAction\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pAction-&gt;<\/span><span style=\"color: #6F42C1\">QueryInterface<\/span><span style=\"color: #24292E\">(IID_IExecAction, (<\/span><span style=\"color: #D73A49\">void**<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pExecAction );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pAction-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u83b7\u53d6ExeAction\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">    \/\/  Set the path of the executable to notepad.exe.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pExecAction-&gt;<\/span><span style=\"color: #6F42C1\">put_Path<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #005CC5\">_bstr_t<\/span><span style=\"color: #24292E\">(sFilePath.<\/span><span style=\"color: #6F42C1\">toStdWString<\/span><span style=\"color: #24292E\">().<\/span><span style=\"color: #6F42C1\">c_str<\/span><span style=\"color: #24292E\">()));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    pExecAction-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u8bbe\u7f6e\u53ef\u6267\u884c\u6587\u4ef6\u8def\u5f84\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">goto<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pTask-&gt;<\/span><span style=\"color: #6F42C1\">get_Principal<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pPrin);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #6F42C1\">SUCCEEDED<\/span><span style=\"color: #24292E\">(hr)){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        pPrin-&gt;<\/span><span style=\"color: #6F42C1\">put_RunLevel<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #6F42C1\">TASK_RUNLEVEL_TYPE<\/span><span style=\"color: #24292E\">::TASK_RUNLEVEL_HIGHEST);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        pPrin-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    hr <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> pItcatFolder-&gt;<\/span><span style=\"color: #6F42C1\">RegisterTaskDefinition<\/span><span style=\"color: #24292E\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #005CC5\">_bstr_t<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">L&quot;itcat_amp&quot;<\/span><span style=\"color: #24292E\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        pTask,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        TASK_CREATE_OR_UPDATE,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">L&quot;S-1-5-32-544&quot;<\/span><span style=\"color: #24292E\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        TASK_LOGON_GROUP,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #005CC5\">_variant_t<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #032F62\">L&quot;&quot;<\/span><span style=\"color: #24292E\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">&amp;<\/span><span style=\"color: #24292E\">pRegisteredTask);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">( <\/span><span style=\"color: #6F42C1\">FAILED<\/span><span style=\"color: #24292E\">(hr) )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        taskErrMessage <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&quot;\u6ce8\u518c\u4efb\u52a1\u5931\u8d25\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\">(hr <\/span><span style=\"color: #D73A49\">==<\/span><span style=\"color: #24292E\"> E_ACCESSDENIED){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">            <\/span><span style=\"color: #6F42C1\">qDebug<\/span><span style=\"color: #24292E\">()<\/span><span style=\"color: #D73A49\">&lt;&lt;<\/span><span style=\"color: #032F62\">&quot;\u65e0\u6743\u9650\uff01&quot;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6F42C1\">end<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #6F42C1\">qDebug<\/span><span style=\"color: #24292E\">()<\/span><span style=\"color: #D73A49\">&lt;&lt;<\/span><span style=\"color: #24292E\"> taskErrMessage;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (pTask<\/span><span style=\"color: #D73A49\">!=<\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">)  pTask-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (pRegisteredTask<\/span><span style=\"color: #D73A49\">!=<\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">) pRegisteredTask-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (pItcatFolder<\/span><span style=\"color: #D73A49\">!=<\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">)  pItcatFolder-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (pRootFolder<\/span><span style=\"color: #D73A49\">!=<\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">) pRootFolder-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">if<\/span><span style=\"color: #24292E\"> (pService<\/span><span style=\"color: #D73A49\">!=<\/span><span style=\"color: #005CC5\">NULL<\/span><span style=\"color: #24292E\">) pService-&gt;<\/span><span style=\"color: #6F42C1\">Release<\/span><span style=\"color: #24292E\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">}<\/span><\/span><\/code><\/pre><\/div>\n<div class=\"pvc_clear\"><\/div><p id=\"pvc_stats_152\" class=\"pvc_stats all  \" data-element-id=\"152\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/itcat.me\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p><div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>\u7528Qt6\u5199\u4e2a\u7a0b\u5e8f\uff0c\u60f3\u628a\u81ea\u5df1\u8bbe\u7f6e\u4e3a\u767b\u5f55windows\u540e\u81ea\u52a8\u8fd0\u884c\uff0c\u4e14\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u8fd0\u884c\uff0c\u6700\u540e\u7528window . . . <a class=\"readmore-link\" href=\"https:\/\/itcat.me\/?p=152\">Read more<\/a><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_152\" class=\"pvc_stats all  \" data-element-id=\"152\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/itcat.me\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-152","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/itcat.me\/index.php?rest_route=\/wp\/v2\/posts\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itcat.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itcat.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itcat.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itcat.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=152"}],"version-history":[{"count":4,"href":"https:\/\/itcat.me\/index.php?rest_route=\/wp\/v2\/posts\/152\/revisions"}],"predecessor-version":[{"id":159,"href":"https:\/\/itcat.me\/index.php?rest_route=\/wp\/v2\/posts\/152\/revisions\/159"}],"wp:attachment":[{"href":"https:\/\/itcat.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itcat.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itcat.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}