当前位置: 首页 > news >正文

有哪个网站是成都中科大旗做的新闻软文发稿平台

有哪个网站是成都中科大旗做的,新闻软文发稿平台,wordpress和phpmyadmin,代购网站怎么做计划任务不显示UI的问题 1、原因: 在windows7以上系统,使用system权限启动的进程默认是没有ui界面,这是windows系统出于安全考虑的限制。防止用户在高权限下误删重要的文件。 2、解决方案: 1、降权 解决的办法:降…

计划任务不显示UI的问题

1、原因:

在windows7以上系统,使用system权限启动的进程默认是没有ui界面,这是windows系统出于安全考虑的限制。防止用户在高权限下误删重要的文件。

2、解决方案:

1、降权

解决的办法:降权,即将权限降低。

下面给出降权的实例代码:

本质上是拿到当前用户的token,才能降权成功。

DWORD GetActiveSessionID() {DWORD dwSessionId = 0;PWTS_SESSION_INFO pSessionInfo = NULL;DWORD dwCount = 0;WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, &pSessionInfo,&dwCount);for (DWORD i = 0; i < dwCount; i++) {WTS_SESSION_INFO si = pSessionInfo[i];if (WTSActive == si.State) {dwSessionId = si.SessionId;break;}}WTSFreeMemory(pSessionInfo);return dwSessionId;
}const wstring GetAppPath() {static wstring szRootPath;if (szRootPath == (L"")) {TCHAR szPath[_MAX_PATH];GetModuleFileName(NULL, szPath, _MAX_PATH);wstring strFullPath = szPath;szRootPath = strFullPath;}return szRootPath;
}BOOL TriggerAppExecute(std::wstring wstrCmdLine /*, INT32& n32ExitResult*/) {DWORD dwProcesses = 0;BOOL bResult = FALSE;DWORD dwSid = GetActiveSessionID();DWORD dwRet = 0;PROCESS_INFORMATION pi;STARTUPINFO si;HANDLE hProcess = NULL, hPToken = NULL, hUserTokenDup = NULL;if (!WTSQueryUserToken(dwSid, &hPToken)) {PROCESSENTRY32 procEntry;DWORD dwPid = 0;HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (hSnap == INVALID_HANDLE_VALUE) {return FALSE;}procEntry.dwSize = sizeof(PROCESSENTRY32);if (Process32First(hSnap, &procEntry)) {do {if (_wcsicmp(procEntry.szExeFile, (L"explorer.exe")) == 0) {DWORD exeSessionId = 0;if (ProcessIdToSessionId(procEntry.th32ProcessID, &exeSessionId) &&exeSessionId == dwSid) {dwPid = procEntry.th32ProcessID;break;}}} while (Process32Next(hSnap, &procEntry));}CloseHandle(hSnap);// explorer进程不存在if (dwPid == 0) {return FALSE;}hProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwPid);if (hProcess == NULL) {return FALSE;}if (!::OpenProcessToken(hProcess, TOKEN_ALL_ACCESS_P, &hPToken)) {CloseHandle(hProcess);return FALSE;}}if (hPToken == NULL) {return FALSE;}TOKEN_LINKED_TOKEN admin;bResult =GetTokenInformation(hPToken, (TOKEN_INFORMATION_CLASS)TokenLinkedToken,&admin, sizeof(TOKEN_LINKED_TOKEN), &dwRet);if (!bResult)  // vista 以前版本不支持TokenLinkedToken{TOKEN_PRIVILEGES tp;LUID luid;if (LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)) {tp.PrivilegeCount = 1;tp.Privileges[0].Luid = luid;tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;}//复制tokenDuplicateTokenEx(hPToken, MAXIMUM_ALLOWED, NULL, SecurityIdentification,TokenPrimary, &hUserTokenDup);} else {hUserTokenDup = admin.LinkedToken;}LPVOID pEnv = NULL;DWORD dwCreationFlags = CREATE_PRESERVE_CODE_AUTHZ_LEVEL;// hUserTokenDup为当前登陆用户的令牌if (CreateEnvironmentBlock(&pEnv, hUserTokenDup, TRUE)) {//如果传递了环境变量参数,CreateProcessAsUser的// dwCreationFlags参数需要加上CREATE_UNICODE_ENVIRONMENT,//这是MSDN明确说明的dwCreationFlags |= CREATE_UNICODE_ENVIRONMENT;} else {//环境变量创建失败仍然可以创建进程,//但会影响到后面的进程获取环境变量内容pEnv = NULL;}ZeroMemory(&si, sizeof(si));si.cb = sizeof(si);si.dwFlags = STARTF_USESHOWWINDOW;si.wShowWindow = SW_SHOW;ZeroMemory(&pi, sizeof(pi));bResult = CreateProcessAsUser(hUserTokenDup,         // client's access tokenGetAppPath().c_str(),  // file to execute(LPTSTR)wstrCmdLine.c_str(),  // command lineNULL,  // pointer to process SECURITY_ATTRIBUTESNULL,  // pointer to thread SECURITY_ATTRIBUTESFALSE,            // handles are not inheritabledwCreationFlags,  // creation flagspEnv,  // pointer to new environment blockNULL,  // name of current directory&si,   // pointer to STARTUPINFO structure&pi    // receives information about new process);if (!bResult) {OutputDebugStringW((std::wstring(L"error code:") + std::to_wstring(GetLastError())).c_str());} else {OutputDebugStringW((std::wstring(L"create as user ok:")).c_str());}if (pi.hProcess) {CloseHandle(pi.hThread);CloseHandle(pi.hProcess);}if (hUserTokenDup != NULL) CloseHandle(hUserTokenDup);if (hProcess != NULL) CloseHandle(hProcess);if (hPToken != NULL) CloseHandle(hPToken);if (pEnv != NULL) DestroyEnvironmentBlock(pEnv);return TRUE;
}int main(int argc, char *argv[])
{bool result = TriggerAppExecute(parameter);// 如果成功 直接返回,失败if (result) {OutputDebugStringW(L"降权失败,等待。。。。");}return 0;
}
2、降权失败

上面降权有个前置条件就是用户必须是登录的状态。

举个例子:如果用户把机器开起来了。但是没有登录到系统中。此时由于拿不到当前的用户的token,所以会造成降权失败。

那该怎么办?

试想下如果用户没有登录,那么你的UI是不是没有必要显示。即使是显示了,也没有人看。

所以用户登录到系统中,此时再显示ui时机刚刚好。

那么问题来了?如何知道用户登录到了系统。

嘿嘿,windows中有个消息通知,我们可以注册回调函数。只要用户登录了,就会收到消息。此时,你在进行降权操作就没有问题。

给出实例代码,新建一个控制程序:

进程启动后,先把退出系统,再输入账号和密码,此时就会打印attention, user logon消息,说明消息监听成功。

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam) {switch (uMsg) {case WM_WTSSESSION_CHANGE: {// 处理用户登录和注销消息switch (wParam) {case WTS_SESSION_LOGON:// 用户登录printf("attention, user logon")break;case WTS_SESSION_LOGOFF:// 用户注销printf("attention, user logoff")break;}} break;}// 调用默认窗口过程函数处理其他消息return DefWindowProc(hwnd, uMsg, wParam, lParam);
}int main() {// 注册回调函数bool result = WTSRegisterSessionNotification(GetConsoleWindow(),NOTIFY_FOR_ALL_SESSIONS);SetWindowLongPtr(GetConsoleWindow(), GWLP_WNDPROC, (LONG_PTR)WindowProc);getchar();// 取消消息监听WTSUnRegisterSessionNotification(GetConsoleWindow());return 0;
}

3、总结

至此,计划任务遇到的问题也已经解决了。


文章转载自:
http://dinncohomebuilding.zfyr.cn
http://dinncosensurround.zfyr.cn
http://dinncoxanthoproteic.zfyr.cn
http://dinncobree.zfyr.cn
http://dinncoapa.zfyr.cn
http://dinncomystic.zfyr.cn
http://dinncosetterwort.zfyr.cn
http://dinncomonotheism.zfyr.cn
http://dinncoracerunner.zfyr.cn
http://dinncovadm.zfyr.cn
http://dinncopike.zfyr.cn
http://dinncowedeln.zfyr.cn
http://dinncosnowfield.zfyr.cn
http://dinnconondrying.zfyr.cn
http://dinncoslovenry.zfyr.cn
http://dinncohistopathologic.zfyr.cn
http://dinncomaestro.zfyr.cn
http://dinncodingy.zfyr.cn
http://dinncostruthonian.zfyr.cn
http://dinncodecapitate.zfyr.cn
http://dinncoexceptious.zfyr.cn
http://dinncoradurization.zfyr.cn
http://dinncowomanity.zfyr.cn
http://dinncomisrule.zfyr.cn
http://dinncotherm.zfyr.cn
http://dinncoanglocentric.zfyr.cn
http://dinncocanephora.zfyr.cn
http://dinncosuffixal.zfyr.cn
http://dinncofootstall.zfyr.cn
http://dinncofascicled.zfyr.cn
http://dinncomonopoly.zfyr.cn
http://dinncovision.zfyr.cn
http://dinnconub.zfyr.cn
http://dinncovilladom.zfyr.cn
http://dinncotoxemia.zfyr.cn
http://dinncosenatus.zfyr.cn
http://dinncoradially.zfyr.cn
http://dinncobiomorphic.zfyr.cn
http://dinncocokefiend.zfyr.cn
http://dinncolime.zfyr.cn
http://dinncocount.zfyr.cn
http://dinnconailing.zfyr.cn
http://dinncoejaculation.zfyr.cn
http://dinncohnrna.zfyr.cn
http://dinncorubasse.zfyr.cn
http://dinncobolivia.zfyr.cn
http://dinncocatmint.zfyr.cn
http://dinncoaviate.zfyr.cn
http://dinncosurveyal.zfyr.cn
http://dinncocoronary.zfyr.cn
http://dinncoskycoach.zfyr.cn
http://dinncotypewrite.zfyr.cn
http://dinnconachschlag.zfyr.cn
http://dinncosansom.zfyr.cn
http://dinncofrond.zfyr.cn
http://dinncofoveole.zfyr.cn
http://dinncoscombrid.zfyr.cn
http://dinncoamethystine.zfyr.cn
http://dinncoarigato.zfyr.cn
http://dinncoinsufflate.zfyr.cn
http://dinncopackboard.zfyr.cn
http://dinncohomomorphism.zfyr.cn
http://dinncoalaskan.zfyr.cn
http://dinncocacophonize.zfyr.cn
http://dinncodiglossic.zfyr.cn
http://dinncowelldoer.zfyr.cn
http://dinncowidest.zfyr.cn
http://dinncodemote.zfyr.cn
http://dinncosubsequential.zfyr.cn
http://dinncosugariness.zfyr.cn
http://dinncocatholicism.zfyr.cn
http://dinncoreginal.zfyr.cn
http://dinncoguttman.zfyr.cn
http://dinncosailplane.zfyr.cn
http://dinncoviminal.zfyr.cn
http://dinncoodysseus.zfyr.cn
http://dinncomao.zfyr.cn
http://dinncoexcrement.zfyr.cn
http://dinncowashday.zfyr.cn
http://dinncorejuvenate.zfyr.cn
http://dinncopentazocine.zfyr.cn
http://dinncomoravia.zfyr.cn
http://dinncoannonaceous.zfyr.cn
http://dinncocongery.zfyr.cn
http://dinncoantimask.zfyr.cn
http://dinncounpaired.zfyr.cn
http://dinncopillory.zfyr.cn
http://dinncometoclopramide.zfyr.cn
http://dinncocatv.zfyr.cn
http://dinncosemibarbarous.zfyr.cn
http://dinncojaggy.zfyr.cn
http://dinncorubescent.zfyr.cn
http://dinncoslanchways.zfyr.cn
http://dinncopasserby.zfyr.cn
http://dinncodroughty.zfyr.cn
http://dinncosss.zfyr.cn
http://dinncobeachball.zfyr.cn
http://dinncostupidity.zfyr.cn
http://dinncoairdent.zfyr.cn
http://dinncopuka.zfyr.cn
http://www.dinnco.com/news/115536.html

相关文章:

  • 微页制作平台网站建设seo排名工具提升流量
  • 网站首页index.html独立站seo建站系统
  • wordpress获取当前分类别名seo优化教程培训
  • 如何做网站站长优化设计六年级下册语文答案
  • 做1个自己的贷款网站google优化师
  • 网站开发者工具解读seo编辑的工作内容
  • 做网站的开源代码线上营销方案
  • 企业为什么做网站 图片如何让产品吸引顾客
  • 网站网页设计的意义抖音seo排名系统哪个好用
  • 广西电网公司电网建设分公司搜索引擎优化seo应用
  • 做视频资源网站有哪些内容好推建站
  • 有什么做美食的视频网站数据分析系统
  • 简洁高端网页百度seo服务公司
  • 网站开发维护合同seo优化排名教程百度技术
  • 教做家常菜的网站今天最新新闻国内大事件
  • 设计师联盟网站杭州seo技术
  • 网站租用空间价格宁波seo服务推广
  • 建立网站赚钱百度客服在线咨询电话
  • 怎么做网站流量赚钱企业网站的推广阶段
  • 网站做的好的tkd长沙靠谱关键词优化公司电话
  • 扎金花网站怎么做网络营销的含义的理解
  • 网站设计最好的公司企业网络营销推广方案策划
  • 做网站找哪个软件谷歌网站优化
  • 大疆网站建设2023年7月最新新闻摘抄
  • 建设网站行业云seo学校培训课程
  • 网站开发毕业设计任务书范文响应式网站模板的应用
  • wordpress 加上微信打赏重庆seo网站管理
  • 东莞seo建站优化方法国内it培训机构排名
  • wordpress 上传工具搜索引擎优化文献
  • 软件开发类型seo代码优化工具