日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sessions, Window Stations and Desktops(GetDesktopWindow函数得到的桌面句柄, 是Csrss.exe创建的一个窗口)

發布時間:2023/12/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sessions, Window Stations and Desktops(GetDesktopWindow函数得到的桌面句柄, 是Csrss.exe创建的一个窗口) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于不是搞安全的,對這塊的東西一直不是很清楚,今天特意整理下。

總的來說,他們的關系如下:


我們知道Windows是支持多用戶的,Session可以理解為每個用戶登錄,比如當前登錄和遠程登陸。
Window Stations可以理解為登陸后的不同用戶組,我們在任務管理器中可以看到不同的用戶名(比如 Richard, system, local service等),其中只有一個活動Station WinSta0, 只有這個Station是接受用戶鼠標鍵盤輸入的。而WinSta0 Station 又包括3個Desktop(包括Winlogon, Disconnect, Default), 其中Winlogon指的是登陸Desktop,當我們按Ctrl+Alt+Del時就會進入該Desktop;Disconnect指的是屏保Desktop; Default指的就是我們平時有任務欄的Desktop, 當然真正的Default Desktop是沒有應用程序的在上面的,我們看到的桌面其實是啟動Shell?Explorer后的界面。

總結幾點和我們平時寫程序有關的:?
(1)我們平時通過GetDesktopWindow()得到的桌面句柄, 是Csrss.exe創建的一個窗口,它被放在WinStation內的Desktop內.?
而我們通過Win+D看到的桌面, 其實是Expolore.exe創建的一個Pop up窗口, 它和我們普通的pop up 窗口一樣, Owner是GetDesktopWindow()
(2)我們可以通過CreateDesktop, OpenDesktop, SwitchDesktop等API創建和切換Desktop。
(3)我們平時寫服務程序時發現窗口彈不出來, 因為服務不是運行在Station WinSta0下面. 通過FindWindow也找不到我們要找的窗口,因為它下面沒有我們的當前WinStation
的Desktop。
(4)一個window station 對象包括一個剪貼板、一個全局原子集和多個Desktop對象, 所以你可以在同一個一個window station內的多個Desktop之間通過剪貼板傳送數據.
(5)所有的進程都和Session, WinStation, Desktop相關聯,所以我們可以把它表示成這樣一個路徑: Session 1\WinSta0\Default, 這樣我們也就理解為什么有些API需要我們傳類似這樣的信息.

總結

以上是生活随笔為你收集整理的Sessions, Window Stations and Desktops(GetDesktopWindow函数得到的桌面句柄, 是Csrss.exe创建的一个窗口)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。