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

Windows定时任务计划无法显示任务程序界面的问题解决

笔者这两天写了一个python脚本程序,用来自动从公司的主数据系统获取数据,并按格式编制成excel。脚本程序编写一切顺利,运行结果很是完美,笔者很是舒心。但在最后一步,用上班的电脑每天早上定时运行它时,出了点小状况。

本想着用定时计划应该就是几分钟搞定的事情,结果整了一上午没有成功。过程中一度以为自己的电脑系统是不是有问题。。。

最终,源于笔者把定时任务设置成打开浏览器用于测试后,发现浏览器并未成功打开,而手动打开双击浏览器图标的时候,却提示已经在后台运行,从而发现了问题的根源。打开任务管理器一看,好家伙,几十个浏览器进程(而此时浏览器既未在窗口呈现、也未打开任何内容)。于是,猛然惊醒:怪不得每次的测试,“上次运行结果”都显示“操作成功完成(0x0)”,而就是不见想要的程序运行界面——原来它在且只在后台运行了

找到正确的切入点,网上再搜,终于对症下了药。也有其他人遇到同样问题。解决办法很简单:
定时任务问题截图原先笔者自作聪明,将上图中红框里默认的“只在用户登录时运行”改为了“不管用户是否登录都要运行”,只要改为图中选择“只在用户登录时运行”,即可解决定时任务的程序没有正常打开界面窗口,只在后台运行的问题。

经测试,定时任务就可以一切按照所想执行了。

为什么会这样呢?

查了一下,觉得比较靠谱的解释知乎上的一位叫“小猪wynn”的回答:

因为基于安全性考虑,windows系统已将用户UI与系统服务分在不同session中,除非使用特殊的技术否则系统session无法访问用户UI,无论是service启动还是任务计划的第二个选项“不管用户是否登录都要运行”启动都是运行在系统session。所以就没法看到用户UI了。

那么就只能在用户登录时才能处理自动定时任务了吗?

这个笔者想了一下,选第二种“不管用户是否登录都要运行”主要为的目的就是系统用户未登陆时的情况,那么通过第一种选择“只在用户登录时运行”加上系统不睡眠,也可以这样曲线救国的方式来解决。

而且,只有需要在前台界面运行的工作,才会受到第二种选择的影响,如果任务本身不需要和界面打交道,那么也就不会存在什么运行的问题了。

完毕。

http://www.lryc.cn/news/131350.html

相关文章:

  • 【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
  • Python学习笔记_进阶篇(二)_django知识(一)
  • 【hive】hive中row_number() rank() dense_rank()的用法
  • 【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署
  • 计算实数数组中所有元素的绝对值 numpy.fabs()
  • 深入浅出Pytorch函数——torch.nn.init.orthogonal_
  • ORACLE中UNION、UNION ALL、MINUS、INTERSECT学习
  • 【k8s、云原生】基于metrics-server弹性伸缩
  • 回归预测 | MATLAB实现WOA-SVM鲸鱼算法优化支持向量机多输入单输出回归预测(多指标,多图)
  • VSCode快捷键
  • 贪心算法求数组中能组成三角形的最大周长
  • VMWare Workstation 17 Pro 网络设置 桥接模式 网络地址转换(NAT)模式 仅主机模式
  • 拒绝摆烂!C语言练习打卡第四天
  • KubeSphere 社区双周报 | Java functions framework 支持 SkyWalking | 2023.8.4-8.17
  • 【学习笔记之java】使用RestTemplate调用第三方接口
  • 数据集成革新:去中心化微服务集群的无限潜能
  • 后端返回可下载的xlsx文件,但是前端接收下载后为乱码
  • 提升资源管理效率必备工具推荐
  • HJ23 删除字符串中出现次数最少的字符
  • 文心一言 VS 讯飞星火 VS chatgpt (76)-- 算法导论7.3 1题
  • Leetcode - 滑动窗口
  • 如何保证数据传输的安全?
  • 政务、商务数据资源有效共享:让数据上“链”,记录每一个存储过程!
  • xml转map工具类
  • C++并发多线程--std::future_status、std::shared_future和std::atomic的使用
  • Redis在Java中的基本使用
  • 4.2 C++ Boost 内存池管理库
  • Django模型基础
  • 导读-Linux简介
  • 判断平面中两射线是否相交的高效方法