CreateDesktop

CreateDesktop

CreateDesktop,Windows API函式名,主要作用是創建新的、與調用進程的視窗站相關聯的桌面,可用SetThreadDesktop將它分配給調用執行緒,並可以使用SwitchDesktop切換為當前桌面。

調用進程必須具有關聯的視窗站,在進程創建時由系統分配或通過SetProcessWindowStation函式設定,若要指定桌面堆的大小,請使用CreateDesktopEx函式。

注意:Windows Vista以後互動式服務無法直接互動正是因為處在不同桌面。互動式服務檢測服務切換了當前客戶端的桌面,但一般服務應避免使用桌面對象與用戶進行互動。

基本介紹

  • 中文名:CreateDesktop
  • 作用:創建新的桌面
  • 備註:新桌面與調用進程的視窗站關聯
API函式原型,主要參數,系統需求,

API函式原型

HDESK WINAPI CreateDesktop(
__in LPCTSTR lpszDesktop,
__reserved LPCTSTR lpszDevice,
__reserved DEVMODE *pDevmode,
__in DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa
);

主要參數

lpszDesktop [輸入]
要創建桌面的名稱。桌面名稱不區分大小寫,並且不能包含反斜線字元 (\)。
lpszDevice [保留]
保留 ;必須為 NULL。
pDevmode [保留]
保留 ;必須為 NULL。
dwFlags [輸入]
這個參數可以是零或以下值:
DF_ALLOWOTHERACCOUNTHOOK 允許其它用戶在桌面進程的運行過程中設定鉤子
dwDesiredAccess [輸入]
桌面的許可權,可以是以下值的組合:
DESKTOP_CREATEMENU 要在桌面上創建一個選單。
DESKTOP_CREATEWINDOW 要在桌面上創建一個視窗。
DESKTOP_ENUMERATE 要枚舉桌面
DESKTOP_READOBJECTS 要在桌面上讀取對象
DESKTOP_SWITCHDESKTOP 要用SwitchDesktop函式激活桌面
DESKTOP_WRITEOBJECTS 要在桌面上寫入對象
DESKTOP_HOOKCONTROL 要建立任何視窗鉤子
(詳見MSDN)
lpsa [輸入]
一個SECURITY_ATTRIBUTES結構指針,確定是否可以由子進程繼承返回句柄。如果lpsa為 NULL,則不能繼承該句柄。
構的lpSecurityDescriptor成員指定新桌面的安全描述符。桌面會從父視窗站繼承其安全描述符。
返回值
如果函式成功,則返回值是新創建桌面的句柄。如果指定的桌面已經存在,該函式成功並返回現有的桌面的句柄。
當你句柄使用完成時,調用CloseDesktop函式將其關閉。如果該函式失敗,則返回值為 NULL。要獲取擴展的錯誤的信息,請調用GetLastError .

系統需求

最低支持客戶端
Windows2000 Professional [只有桌面套用]
最低支持伺服器
Windows2000 Server [只有桌面套用]
頭檔案
Winuser.h (包括Windows.h)
程式庫檔案
User32.lib
DLL
User32.dll
Unicode編碼和 ANSI編碼名稱
CreateDesktopW (Unicode)和CreateDesktopA (ANSI)

相關詞條

熱門詞條

聯絡我們