理想国柏拉图摘抄:精简版win98没有计划任务

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/25 01:31:27
很老的机器,装精简版98,发现没有计划任务,不知道怎样恢复进去啊。

先UP 一下
你是在程序里做?有一个com组件的,ITaskScheduler 至于怎么用你在MSDN里查一下吧,n年前做过了,代码一时找不到了。
你说的要先获得用户名和密码吗?
应该不用的,当前用户的吧。
不想让用户输入密码,用户名我看过哪个代码,好想要用户名和密码!
可能我记错了,你不急的话我晚上回家去找找以前的代码
http://www.microsoft.com/china/technet/prodtechnol/windows2000serv/downloads/taskschd.asp
谢谢OO兄!
看了以前的代码,是要设置用户名和密码 BOOL CTaskSch::CreateTask(LPCTSTR name) { // TODO: Add your dispatch handler code here HRESULT hr = ERROR_SUCCESS; ITaskScheduler *pITS; m_strName = name; hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS); if (FAILED(hr)) { CoUninitialize(); return FALSE; } } else { return FALSE; } ///////////////////////////////////////////////////////////////// // Call ITaskScheduler::NewWorkItem to create new task. ///////////////////////////////////////////////////////////////// unsigned short* pwszTaskName; ITask *pITask; IPersistFile *pIPersistFile; //pwszTaskName = L"Test Task"; // unsigned short * pName= new unsigned short[m_strName.GetLength()+2]; // CString2LPCWSTR(pName,m_strName); // pwszTaskName = pName; AnsiToUnicode(m_strName, &pwszTaskName); hr = pITS->NewWorkItem(pwszTaskName, // Name of task CLSID_CTask, // Class identifier IID_ITask, // Interface identifier (IUnknown**)&pITask); // Address of task interface CoTaskMemFree(pwszTaskName); // delete pName; pITS->Release(); // Release object if (FAILED(hr)) { CoUninitialize(); return FALSE; } ///////////////////////////////////////////////////////////////// // Call IUnknown::QueryInterface to get a pointer to // IPersistFile and IPersistFile::Save to save // the new task to disk. ///////////////////////////////////////////////////////////////// hr = pITask->QueryInterface(IID_IPersistFile, (void **)&pIPersistFile); pITask->Release(); if (FAILED(hr)) { CoUninitialize(); return FALSE; } hr = pIPersistFile->Save(NULL, TRUE); pIPersistFile->Release(); if (FAILED(hr)) { CoUninitialize(); return FALSE; } ///////////////////////////////////////////////////////////////// // Release all resources. ///////////////////////////////////////////////////////////////// return TRUE; } BOOL CTaskSch::Delete(LPCTSTR strName) { // TODO: Add your dispatch handler code here HRESULT hr = ERROR_SUCCESS; ITaskScheduler *pITS; //m_strName = strName; hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS); if (FAILED(hr)) { CoUninitialize(); return FALSE; } unsigned short * pName; AnsiToUnicode(strName, &pName); hr=pITS->Delete(pName); CoTaskMemFree(pName); pITS->Release(); if(FAILED(hr)) { CoUninitialize(); return FALSE; } else { CoUninitialize(); return TRUE; } } else return FALSE; }
BOOL CTaskSch::Save() { // TODO: Add your dispatch handler code here HRESULT hr = ERROR_SUCCESS; /////////////////////////////////////////////////////////////////// // 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 FALSE; } } else { return FALSE; } /////////////////////////////////////////////////////////////////// // Call ITaskScheduler::Activate to get the Task object. /////////////////////////////////////////////////////////////////// ITask *pITask; unsigned short* lpcwszTaskName; // unsigned short * pName= new unsigned short[m_strName.GetLength()+2]; // memset(pName,0,sizeof(unsigned short) * (m_strName.GetLength()+2)); //CString2LPCWSTR(pName,m_strName); AnsiToUnicode(m_strName, &lpcwszTaskName); // lpcwszTaskName = pName; hr = pITS->Activate(lpcwszTaskName, IID_ITask, (IUnknown**) &pITask); // delete[] pName;//lpcwszTaskName; CoTaskMemFree(lpcwszTaskName); // Release the ITaskScheduler interface. pITS->Release(); if (FAILED(hr)) { CoUninitialize(); return FALSE; } //Set Comment unsigned short* pwszComment;// = m_strApplication.GetBuffer(40); AnsiToUnicode(m_strComment, &pwszComment); hr = pITask->SetComment(pwszComment); CoTaskMemFree(pwszComment); if (FAILED(hr)) { CoUninitialize(); return FALSE; } //set application name unsigned short* pwszApplicationName;// = m_strApplication.GetBuffer(40); // unsigned short * pApplicationName= new unsigned short[m_strApplication.GetLength()+2]; // CString2LPCWSTR(pApplicationName,m_strApplication); // pwszApplicationName = pApplicationName; AnsiToUnicode(m_strApplication, &pwszApplicationName); hr = pITask->SetApplicationName(pwszApplicationName); // delete[] pApplicationName; CoTaskMemFree(pwszApplicationName); if (FAILED(hr)) { CoUninitialize(); return FALSE; } //set working directory unsigned short* pwszWorkingDirectory ;//= m_strStartingDir.GetBuffer(40); // unsigned short * pDir= new unsigned short[m_strStartingDir.GetLength()+2]; // CString2LPCWSTR(pDir,m_strStartingDir); // pwszWorkingDirectory = pDir; AnsiToUnicode(m_strStartingDir, &pwszWorkingDirectory); hr = pITask->SetWorkingDirectory(pwszWorkingDirectory); // delete[] pDir; CoTaskMemFree(pwszWorkingDirectory); if (FAILED(hr)) { CoUninitialize(); return FALSE; } //set parameters unsigned short* pwszParameters ;//= L""; AnsiToUnicode(m_strParameters, &pwszParameters); hr = pITask->SetParameters(pwszParameters); CoTaskMemFree(pwszParameters); if (FAILED(hr)) { wprintf(L"Failed calling ITask::SetParameters: "); wprintf(L"error = 0x%x\n",hr); CoUninitialize(); return 1; } //set prioprity /*DWORD dwPriority = HIGH_PRIORITY_CLASS; hr = pITask->SetPriority(dwPriority); if (FAILED(hr)) { wprintf(L"Failed calling ITask::SetPriority: "); wprintf(L"error = 0x%x\n",hr); CoUninitialize(); return 1; }*/ //set account and password unsigned short* pwszAccountName; unsigned short* pwszPassword; AnsiToUnicode(m_strUserName, &pwszAccountName); AnsiToUnicode(m_strPassword, &pwszPassword); hr = pITask->SetAccountInformation(pwszAccountName, pwszPassword); CoTaskMemFree(pwszAccountName); CoTaskMemFree(pwszPassword); if (FAILED(hr)) { CoUninitialize(); return FALSE; } //set task trigger ITaskTrigger *pITaskTrigger; WORD piNewTrigger; hr = pITask->CreateTrigger(&piNewTrigger, &pITaskTrigger); if (FAILED(hr)) { CoUninitialize(); return FALSE; } ////////////////////////////////////////////////////// // Define TASK_TRIGGER structure. Note that wBeginDay, // wBeginMonth, and wBeginYear must be set to a valid // day, month, and year respectively. ////////////////////////////////////////////////////// TASK_TRIGGER pTrigger; ZeroMemory(&pTrigger, sizeof (TASK_TRIGGER)); // Add code to set trigger structure? pTrigger.wBeginDay =m_nDay%31; // Required pTrigger.wBeginMonth =m_nMonth%12; // Required pTrigger.wBeginYear =m_nYear; // Required pTrigger.cbTriggerSize = sizeof (TASK_TRIGGER); pTrigger.wStartHour = m_nHour%24; pTrigger.wStartMinute = m_nMinute%60; pTrigger.TriggerType = TASK_TIME_TRIGGER_DAILY; pTrigger.Type.Daily.DaysInterval = 1; hr = pITaskTrigger->SetTrigger (&pTrigger); if (FAILED(hr)) { CoUninitialize(); return FALSE; } pITaskTrigger->Release(); /////////////////////////////////////////////////////////////////// // Call IPersistFile::Save to save the modified task to disk. /////////////////////////////////////////////////////////////////// IPersistFile *pIPersistFile; hr = pITask->QueryInterface(IID_IPersistFile, (void **)&pIPersistFile); // Release the ITask interface. pITask->Release(); hr = pIPersistFile->Save(NULL, TRUE); // Release the IPersistFile interface. pIPersistFile->Release(); CoUninitialize(); return TRUE; }