屏幕共享是目前线上会议系统的一个基本功能,在屏幕共享的实际应用过程中,我们经常会遇到这样的实际需求:我只想共享PPT内容,不想共享桌面或者微信等其他应用程序。为了满足这个需求,我们实现了只共享单个应用程序的程序共享功能。
本文从基础背景知识,主要技术点和实际应用过程中的扩展点三大块来详细介绍单个应用程序的程序共享功能的实现。
首先来介绍基础知识,分为以下3点:
1. Windows的窗口站windowstation
一个窗口站对象包含了一个剪贴板、一张原子表以及一个或多个桌面(desktop)对象。当用户登录时,系统会自动创建交互的窗口站(winsta0),并将交互窗口站与登录会话相关联。WinSta0 是唯一的一个可以显示用户界面和接收用户输入的窗口站,其他窗口站都是非交互的,也就说它们不能显示用户界面,也不能接收用户输入。
2. Windows桌面desktop
默认情况下,交互窗口站有三个桌面: Default,ScreenSaver,Winlogon。同一时刻,每交互窗口站只有一个活动的桌面(用来显示用户界面和接收用户输入)。用户会话期间,当用户按下CTRL+ALT+DEL或者用户帐号控制(UA