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
);
__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 [輸入]
這個參數可以是零或以下值:
要創建桌面的名稱。桌面名稱不區分大小寫,並且不能包含反斜線字元 (\)。
lpszDevice [保留]
保留 ;必須為 NULL。
pDevmode [保留]
保留 ;必須為 NULL。
dwFlags [輸入]
這個參數可以是零或以下值:
DF_ALLOWOTHERACCOUNTHOOK 允許其它用戶在桌面進程的運行過程中設定鉤子
dwDesiredAccess [輸入]
桌面的許可權,可以是以下值的組合:
DESKTOP_CREATEMENU 要在桌面上創建一個選單。
DESKTOP_CREATEWINDOW 要在桌面上創建一個視窗。
DESKTOP_ENUMERATE 要枚舉桌面
DESKTOP_READOBJECTS 要在桌面上讀取對象
DESKTOP_SWITCHDESKTOP 要用SwitchDesktop函式激活桌面
DESKTOP_WRITEOBJECTS 要在桌面上寫入對象
DESKTOP_HOOKCONTROL 要建立任何視窗鉤子
桌面的許可權,可以是以下值的組合:
DESKTOP_CREATEMENU 要在桌面上創建一個選單。
DESKTOP_CREATEWINDOW 要在桌面上創建一個視窗。
DESKTOP_ENUMERATE 要枚舉桌面
DESKTOP_READOBJECTS 要在桌面上讀取對象
DESKTOP_SWITCHDESKTOP 要用SwitchDesktop函式激活桌面
DESKTOP_WRITEOBJECTS 要在桌面上寫入對象
DESKTOP_HOOKCONTROL 要建立任何視窗鉤子
(詳見MSDN)
lpsa [輸入]
lpsa [輸入]
一個SECURITY_ATTRIBUTES結構指針,確定是否可以由子進程繼承返回句柄。如果lpsa為 NULL,則不能繼承該句柄。
構的lpSecurityDescriptor成員指定新桌面的安全描述符。桌面會從父視窗站繼承其安全描述符。
返回值
如果函式成功,則返回值是新創建桌面的句柄。如果指定的桌面已經存在,該函式成功並返回現有的桌面的句柄。
當你句柄使用完成時,調用CloseDesktop函式將其關閉。如果該函式失敗,則返回值為 NULL。要獲取擴展的錯誤的信息,請調用GetLastError .
構的lpSecurityDescriptor成員指定新桌面的安全描述符。桌面會從父視窗站繼承其安全描述符。
返回值
如果函式成功,則返回值是新創建桌面的句柄。如果指定的桌面已經存在,該函式成功並返回現有的桌面的句柄。
當你句柄使用完成時,調用CloseDesktop函式將其關閉。如果該函式失敗,則返回值為 NULL。要獲取擴展的錯誤的信息,請調用GetLastError .
系統需求
最低支持客戶端 | Windows2000 Professional [只有桌面套用] |
---|---|
最低支持伺服器 | Windows2000 Server [只有桌面套用] |
頭檔案 | Winuser.h (包括Windows.h) |
程式庫檔案 | User32.lib |
DLL | User32.dll |
Unicode編碼和 ANSI編碼名稱 | CreateDesktopW (Unicode)和CreateDesktopA (ANSI) |