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

C# Windows登录界面进行截图,控制鼠标键盘等操作实现(一)

首先常规的账户进程是没办法获取登录界面的信息的,因为登录界面已经不在某个账户下了,登录界面显示了每一个账户的切换。所以得使用System权限的进程。

那么Windows系统究竟是怎么将登录界面与用户桌面隔离开的呢?首先先通过一些Windows操作系统基础知识了解一下。

Windows窗口工作站(Window Station)是Windows操作系统中的一个概念,它提供了用户交互的桌面环境。

在Windows操作系统中,下列是一些常见的窗口工作站:

  1. WinSta0:WinSta0是默认的窗口工作站,也被称为"连接窗口工作站"(Connected Window Station)。它为用户登录会话提供用户界面,处理用户的输入和输出。大多数交互式用户进程在此窗口工作站中创建和运行。(由WinLogin.exe进程初始化)所以截图的进程必须是在WinSta0工作站

  2. Service-0x0-3e7$:这是一个服务窗口工作站,用于托管系统服务。它提供了一个独立的工作环境,使得服务可以在后台执行,与用户界面分离。

  3. Service-0x0-4e3$:这是另一个服务窗口工作站,类似于Service-0x0-3e7$,用于托管更多的系统服务。

除了这些常见的窗口工作站,Windows操作系统还允许创建自定义的窗口工作站来满足特定需求。每个窗口工作站都有一个唯一的标识符(Window Station Identifier),并且可以包含一个或多个会话(Session),为不同的用户提供独立的工作环境。

需要注意的是,一般的用户只能访问以其自身会话关联的窗口工作站。系统服务通常在相应的服务窗口工作站中运行。

Winsta0(Windows Station 0)窗口工作站中,可以包含多个桌面。具体有以下几种类型的桌面:

  1. Winlogon桌面:Winlogon桌面是用于用户登录和注销的桌面。当用户登录时,系统会创建一个新的Winlogon桌面,用于显示用户登录界面和处理登录过程中的各种操作。当用户注销时,该桌面会被销毁。

  2. Default桌面:Default桌面是Winsta0窗口工作站的默认桌面。它是在用户登录之前创建的桌面,用于显示Windows操作系统的初始界面和用户登录之前的准备工作。截图的进程必须是Default桌面

  3. ScreenSaver桌面:ScreenSaver桌面是用于显示屏保程序的桌面。当系统闲置一定时间后,屏保会启动,并在ScreenSaver桌面上显示屏保程序。

  4. Disconnect桌面:Disconnect桌面是用于存储用户会话在断开连接时的当前状态。当用户通过远程桌面或其他方式与计算机建立连接后,会话会从Disconnect桌面恢复,并将用户从上一次断开连接时的状态和数据恢复到当前会话中。

而在 Windows 操作系统中,一个会话(session)拥有多个工作站和窗口。只能拥有一个交互式工作站(Winsta0)。Session ID 为 0 表示的是系统(System)进程的 Session ID。这通常与默认的 Windows Station(Winsta0)相对应,用于展示 Windows 操作系统的初始界面和用户登录以及注销等操作。

 系统服务在Session 0中。而Session 1对应于第一个登陆的用户,Session 2对应于第二个登录系统的用户,以此类推。各个Session之间是相互独立的。在不同Session中运行的实体,相互之间不能发送Windows消息、共享UI元素。

截图的进程sesion id与winlogon进程一致。

 从上面的基本概念中我们总结一下如果要在登录界面截图,需要满足以下条件:

  1. Winsta0窗口站+Default桌面。因为截图需要用用户桌面交互,所以进程必须在Winsta0\Default桌面下。
  2. Session为当前登录账户对应Session,不能为Session 0。
  3. 进程需要System权限。
  4. 进程需要与winlogon一样的访问权限,并且一样的Session id。(通过复制winlogon.exe进程的访问令牌赋给该进程实现)

相关文章:

C# Windows登录界面进行截图,控制鼠标键盘等操作实现(一)

首先常规的账户进程是没办法获取登录界面的信息的,因为登录界面已经不在某个账户下了,登录界面显示了每一个账户的切换。所以得使用System权限的进程。 那么Windows系统究竟是怎么将登录界面与用户桌面隔离开的呢?首先先通过一些Windows操作系…...

因果推断(五)基于谷歌框架Causal Impact的因果推断

因果推断(五)基于谷歌框架Causal Impact的因果推断 除了传统的因果推断外,还有一些机器学习框架可以使用,本文介绍来自谷歌框架的Causal Impact。该方法基于合成控制法的原理,利用多个对照组数据来构建贝叶斯结构时间…...

VR全景加盟项目如何开展?如何共赢VR时代红利?

VR全景作为一个新兴蓝海项目,相信有着很多人刚接触VR行业的时候都会有这样的疑问:VR全景加盟后项目如何开展?今天,我们就从项目运营的三个阶段为大家讲解。 一、了解项目时 目前VR全景已经被应用到各行各业中去,学校、…...

Win10+anaconda+CUDA+pytorch+vscode配置

Win10anacondaCUDApytorchvscode配置 1.安装anaconda2.安装CUDA确认CUDA版本确认CUDA和pytorch版本安装CUDA 3.安装cudnn4.安装Pytorch5.vscode配置安装VScodevscode配置pytorch环境 1.安装anaconda 官网https://www.anaconda.com 下载安装,路径全英文然后记得有一…...

vue-router在vue2/3区别

构建选项区别 vue2-router const router-new VueRouter({mode:history,base:_name,})vue-next-router import { createRouter,createWebHistory} from vue-next-router const routercreateRouter({history:createHistory(/) })在上述代码中我们发现,vue2中的构建选项mode和ba…...

Apache Doris 入门教程33:统计信息

统计信息 统计信息简介​ Doris 查询优化器使用统计信息来确定查询最有效的执行计划。Doris 维护的统计信息包括表级别的统计信息和列级别的统计信息。 表统计信息: 信息描述row_count表的行数data_size表的⼤⼩(单位 byte)update_rows收…...

有效需求的特征

如何区分优秀的软件需求和软件需求规格说明书(SRS)与可能导致问题的需求和规格说明书?在这篇文章中,我们将首先讨论单个需求应该具有的几种不同特性。然后,我们将讨论成功的SRS整体应具有的理想特征。 1.有效需求的特…...

基于51单片机无线温度报警控制器 NRF24L01 多路温度报警系统设计

一、系统方案 1、本设计默认采用STC89C52单片机,如需更换单片机请联系客服。 2、接收板LCD1602液晶实时显示当前检测的2点温度值以及对应的上下限报警值。发射板由DS18B20采集温度值,通过无线模块NRF24L01传给接收板。 3、按键可以设置温度上下限值&…...

Spring Data JPA的@Entity注解

一、示例说明 rules\CouponTypeConverter.java Converter public class CouponTypeConverterimplements AttributeConverter<CouponType, String> {Overridepublic String convertToDatabaseColumn(CouponType couponCategory) {return couponCategory.getCode();}Overr…...

CANoe panel中,Path Dialog如何保存选择的文件路径

这里写目录标题 Path Dialog控件的设置系统变量和环境变量 Path Dialog控件的设置 过滤加载的文件类型 填写格式为&#xff1a;Hex file |.hex 其中Hex file为自定义name&#xff0c;.hex为你想识别的文件类型 系统变量和环境变量 系统变量&#xff1a;在canoe的Environmen…...

关于es中索引,倒排索引的理解

下面是我查询进行理解的东西 也就是说我们ES中的索引就相当于我们mysql中的数据库表&#xff0c;索引库就相当于我们的数据库&#xff0c;我们按照mapping规则会根据相应的字段&#xff08;index为true默认&#xff09;来创建倒排索引&#xff0c;这个倒排索引就相当于我们索引…...

k8s service (二)

K8s service (二) Endpoint Endpoint是kubernetes中的一个资源对象&#xff0c;存储在etcd中&#xff0c;用来记录一个service对应的所有pod访问地址&#xff0c;它是根据service匹配文件中selector描述产生的。 一个Service由一组Pod组成&#xff0c;这些Pod通过Endpoints…...

桌面软件开发框架 Electron、Qt、WPF 和 WinForms 怎么选?

一、Electron Electron 是一个基于 Web 技术的跨平台桌面应用程序开发框架。它使用 HTML、CSS 和 JavaScript 来构建应用程序界面,并借助 Chromium 渲染引擎提供强大的页面渲染能力。Electron 的主要特点包括: 跨平台:Electron 可以在 Windows、macOS 和 Linux 等多个主流操…...

SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第二天)Mybatis的深入学习

SSM框架的学习与应用(Spring Spring MVC MyBatis)-Java EE企业级应用开发学习记录&#xff08;第二天&#xff09;Mybatis的深入学习&#xff08;增删改查的操作&#xff09; 上一篇我们的项目搭建好了&#xff0c;也写了简答的Junit测试类进行测试&#xff0c;可以正确映射…...

学习笔记:Opencv实现限制对比度得自适应直方图均衡CLAHE

2023.8.19 为了完成深度学习的进阶&#xff0c;得学习学习传统算法拓展知识面&#xff0c;记录自己的学习心得 CLAHE百科&#xff1a; 一种限制对比度自适应直方图均衡化方法&#xff0c;采用了限制直方图分布的方法和加速的插值方法 clahe&#xff08;限制对比度自适应直方图…...

R语言处理缺失数据(1)-mice

#清空 rm(listls()) gc()###生成模拟数据### #生成100个随机数 library(magrittr) set.seed(1) asd<-rnorm(100, mean 60, sd 10) %>% round #平均60&#xff0c;标准差10 #将10个数随机替换为NA NA_positions <- sample(1:100, 10) asd[NA_positions] <- NA #转…...

SpringBoot自动配置原理

Spring Boot 的自动配置可以根据添加的jar依赖&#xff0c;自动配置 Spring Boot 应用程序。例如&#xff0c;我们想要使用Redis&#xff0c;直接在POM文件中增加spring-boot-starter-data-redis依赖&#xff0c;然后我们配置下连接信息就可以使用了。 那么Spring Boot 是如何…...

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 五)

管理应用拥有的状态概述 LocalStorage&#xff1a;页面级UI状态存储 LocalStorage是页面级的UI状态存储&#xff0c;通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例。LocalStorage也可以在UIAbility内&#xff0c;页面间共享状态。 本文仅介绍LocalStora…...

Java基础篇——反射枚举

反射&枚举 课程目标 1. 【理解】类加载器 2. 【理解】什么是反射 3. 【掌握】获取Class对象的三种方式 4. 【掌握】反射获取构造方法并创建对象 5. 【掌握】反射获取成员变量并使用 6. 【掌握】反射获取成员方法并使用 7. 【掌握】反射综合案例 8. 【理解】枚举B友:http…...

每日一学——案例难点Windows配置

在Windows上配置DNS服务器有几个步骤&#xff1a; 步骤1&#xff1a;打开网络连接设置 在任务栏上右键单击网络图标&#xff0c;并选择“打开网络和Internet设置”。 在新窗口中&#xff0c;选择“更改适配器选项”。 在打开的窗口中&#xff0c;找到正在使用的网络适配器&a…...

2023.8 - java - 运算符

Java 运算符 算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符 算术运算符 算术运算符用在数学表达式中&#xff0c;它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。 表格中的实例假设整数变量A的值为10&#xff0c;变量B的值为20&#xff1a; …...

推荐三款Scrum敏捷项目管理工具/敏捷管理实践

免费版敏捷工具推荐&#xff1a; Leangoo领歌 Leangoo领歌是ScrumCN&#xff08;scrum.cn&#xff09;旗下的一款永久免费的专业敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、缺陷管理、统计度量等。包括小…...

WARNING: undefined behavior - version of Delve is too old for Go version

在更新了 go 版本后&#xff0c;使用 goland 进行调试会报错 WARNING: undefined behavior - version of Delve is too old for Go version 1.20.5 (maximum supported version 1.19)这是因为 go 的版本升级后&#xff0c;相对 dlv 的版本就低了。 所以解决办法就是升级对应的…...

https非对称加密算法

非对称加密算法原理 在客户端公开公钥&#xff0c;服务端保存私钥 1.客户端第一次请求先请求443端口&#xff0c;从443端口下载公钥。 2.客户端将数据进行公钥算法进行加密&#xff0c;将秘文发送到服务端 服务端收到秘文后&#xff0c;通过私钥算法进行解密得到明文数据。…...

“深入探索JVM:Java虚拟机背后的奥秘“

标题&#xff1a;深入探索JVM&#xff1a;Java虚拟机背后的奥秘 摘要&#xff1a;本文将深入探索Java虚拟机&#xff08;JVM&#xff09;的内部工作原理和关键组成部分&#xff0c;揭示JVM背后的奥秘。通过对类加载机制、内存管理、垃圾回收、即时编译等方面的详细介绍&#x…...

树莓派系统入门教程(三)—— 使用Windows上的VSCode远程连接树莓派进行Python开发

树莓派系统入门教程&#xff08;三&#xff09;—— 使用Windows上的VSCode远程连接树莓派进行Python开发 1. 安装VSCode和SSH扩展2. SSH连接配置3. 连接到树莓派4. 运行Python程序5. 建议和注意事项 很多开发者更喜欢在大屏幕和强大的开发环境中编写代码&#xff0c;但同时他们…...

如何使用HTML5新增的标签来优化SEO?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用HTML5新增的标签来优化SEO&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对…...

LVS之keepalived

1、keepalived 概述 总结&#xff1a;Keepalived 软件就是通过VRRP协议来实现高可用功能。 应用场景&#xff1a;企业应用中&#xff0c;单台服务器承担应用存在单点故障的危险 单点故障一旦发生&#xff0c;企业服务将发生中断&#xff0c;造成极大的危害 VRRP通信原理&…...

Linux(入门篇)

Linux&#xff08;入门篇&#xff09; Linux概述Linux是什么Linux的诞生Linux和Unix的渊源GNU/LinuxLinux的发行版Linux VS Windows Linux概述 Linux是什么 Linux是一个操作系统(OS) Linux的诞生 作者&#xff1a;李纳斯托瓦兹&#xff08;git也是他开发的&#x1f602;&am…...

如何构造不包含字母和数字的webshell

利用不含字母与数字进行绕过 1.异或进行绕过 2.取反进行绕过 3.利用php语法绕过 利用不含字母与数字进行绕过 基本代码运行思路理解 <?php echo "A"^""; ?> 运行结果为! 我们可以看到&#xff0c;输出的结果是字符"!"。之所以会…...

哪个网站做校招/网络优化工程师骗局

算法&#xff0c;即解决问题的方法。同一个问题&#xff0c;使用不同的算法&#xff0c;虽然得到的结果相同&#xff0c;但是耗费的时间和资源是不同的。 时间复杂度的计算 计算一个算法的时间复杂度&#xff0c;不可能把所有的算法都编写出实际的程序出来让计算机跑&#xf…...

天猫秘券网站怎么做/常见的网络营销工具有哪些

本文分享产品经理入门到进阶7套课&#xff0c;带大家开始产品经理学习。理论知识和学习路线参考上图&#xff0c;另外文末有晋升思维导图哦! 一、快速了解产品经理行业 这个阶段对于不了解产品经理这个岗位&#xff0c;没有接触过相关工作的同学来说&#xff0c;重点在于了解…...

网站建设公司西安/上海搜索引擎关键词优化

堆和栈的区别 一个由C/C编译的程序占用的内存分为以下几个部分 1、栈区&#xff08;stack&#xff09;— 由编译器自动分配释放 &#xff0c;存放函数的参数值&#xff0c;局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区&#xff08;heap&#xff09; — 一般由程…...

今天新冠病毒最新消息/怎么做seo网站关键词优化

pycharm同时使用python2.7和python3.5设置方法 - CSDN博客https://blog.csdn.net/qwerty200696/article/details/53015922转载于:https://www.cnblogs.com/jyfootprint/p/9417006.html...

做竞品分析的网站/免费手机网页制作

传送门 我们令\(g(n)\)表示有n个点的无向图的个数&#xff0c;\(f(n)\)表示有n个点的无向连通图个数。\(g(n)\)比较好求&#xff0c;因为一共有\(C_n^2\)条边&#xff0c;每条边可以选或者不选&#xff0c;所以自然有\(g(n) 2^{C_n^2}\). 之后我们换一种方法&#xff0c;在节点…...

网站 实例/广告联盟代理平台

一&#xff1a;说在前头我的第一份工作是做生产工具&#xff0c;当时用的MFC&#xff0c;IDE是VC6.0&#xff0c;现在想想真是古董级别&#xff0c;10年至今&#xff0c;微软也一直没有对MFC进行升级&#xff0c;冥冥中感觉微软自己都放弃MFC了&#xff0c;市场上貌似MFC的岗位…...