SHCREATEPROCESSINFOW 結構 (shellapi.h)
[SHCreateProcessAsUserW 不再在 Windows XP 或更新版本中實作。]
包含 SHCreateProcessAsUserW 建立進程所需的資訊。
語法
typedef struct _SHCREATEPROCESSINFOW {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCWSTR pszFile;
LPCWSTR pszParameters;
LPCWSTR pszCurrentDirectory;
HANDLE hUserToken;
LPSECURITY_ATTRIBUTES lpProcessAttributes;
LPSECURITY_ATTRIBUTES lpThreadAttributes;
BOOL bInheritHandles;
DWORD dwCreationFlags;
LPSTARTUPINFOW lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInformation;
} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;
成員
cbSize
類型: DWORD
這個 結構的大小,以位元組為單位。
fMask
類型: ULONG
旗標陣列,表示其他結構成員的內容和有效性。 這可以是下列值的組合。
SEE_MASK_CLASSKEY
使用檔案的類別登錄機碼。
SEE_MASK_CLASSNAME
使用檔案的類別名稱。
SEE_MASK_CONNECTNETDRV
驗證共用並連線到驅動器號。 pszFile 成員是網路上檔案的 UNC 路徑。
SEE_MASK_DOENVSUBST
展開任何環境變數。
SEE_MASK_FLAG_DDEWAIT
等候 DDE 交談在傳回之前終止。
SEE_MASK_FLAG_NO_UI
如果發生錯誤,請勿顯示錯誤消息框。
SEE_MASK_HMONITOR
在多監視系統上指定監視器時,請使用此旗標。
SEE_MASK_NOCLOSEPROCESS
應用程式將會關閉進程。 如果 lpProcessInformation 成員是有效的 PROCESS_INFORMATION 指標,而且 已設定SEE_MASK_NOCLOSEPROCESS , 當 SHCreateProcessAsUserW 傳回時,程式會保持開啟狀態。 PROCESS_INFORMATION 結構的 hProcess 和 hThread 成員分別保存進程和線程句柄。 此旗標通常會設定為允許應用程式瞭解使用 SHCreateProcessAsUserW 建立的進程何時終止。 在某些情況下,例如透過 DDE 交談滿足執行時,不會傳回任何句柄。 當不再需要句柄時,呼叫應用程式會負責關閉句柄。 如果未設定此旗標,則會在 SHCreateProcessAsUserW 傳回之前關閉進程,即使 lpProcessInformation 是有效的指標也一樣。
SEE_MASK_NO_CONSOLE
為新進程建立主控台,而不是讓它繼承父代的主控台。 它相當於搭配 CreateProcess 使用 CREATE_NEW_CONSOLE 旗標。
SEE_MASK_UNICODE
表示 Unicode 應用程式。
hwnd
類型: HWND
父視窗句柄。
pszFile
類型: LPCWSTR
Null 終止 Unicode 字串的指標,指定 SHCreateProcessAsUserW 將執行 runas 指令動詞所指定的動作的可執行檔。 檔案的 類別必須支援 runas 動詞命令。
pszParameters
類型: LPCWSTR
包含應用程式參數之 Null 終止 Unicode 字串的指標。 參數必須以空格分隔。
pszCurrentDirectory
類型: LPCWSTR
包含目前目錄的 Null 終止 Unicode 字串。
hUserToken
類型: HANDLE
可用來代表特定使用者的 存取令牌 。 當這些資料夾有多個使用者被視為屬於單一使用者時,就需要它。 呼叫應用程式必須具有特定使用者的適當安全性許可權,包括TOKEN_QUERY和TOKEN_IMPERSONATE,而且目前必須掛接使用者的登錄區。 如需訪問控制問題的進一步討論,請參閱 存取控制。
lpProcessAttributes
類型: LPSECURITY_ATTRIBUTES
具有新進程之安全性描述項 之SECURITY_ATTRIBUTES 結構的指標。 它也會指定是否可以繼承子進程。 如果此參數設定為 NULL,則進程會有預設的安全性描述元,而且無法繼承句柄。
安全性警告: 使用安全性描述元不正確可能會危害應用程式的安全性。 如需詳細資訊,請參閱 SECURITY_ATTRIBUTES。
lpThreadAttributes
類型: LPSECURITY_ATTRIBUTES
具有新線程之安全性描述元 之SECURITY_ATTRIBUTES 結構的指標。 它也會指定是否可以繼承子進程。 如果此參數設定為 NULL,則進程會有預設的安全性描述元,而且無法繼承句柄。
安全性警告: 使用安全性描述元不正確可能會危害應用程式的安全性。 如需詳細資訊,請參閱 SECURITY_ATTRIBUTES。
bInheritHandles
類型: BOOL
指出新進程是否繼承來自呼叫進程的句柄。 如果設定為 TRUE,則呼叫進程中每個可繼承的開啟句柄都會由新進程繼承。 繼承的句柄的值和訪問許可權與原始句柄相同。
dwCreationFlags
類型: DWORD
控制進程建立和優先順序類別的旗標。 如需可用旗標的清單,請參閱 CreateProcessAsUser。
lpStartupInfo
類型: LPSTARTUPINFOW
STARTUPINFO 結構的指標,指定新進程的主視窗應該如何出現。
lpProcessInformation
類型: LPPROCESS_INFORMATION
接收新進程相關信息 之PROCESS_INFORMATION 結構的指標。 將此成員設定為有效的結構指標,並在 fMask 成員中設定SEE_MASK_NOCLOSEPROCESS旗標,而且當函式傳回時,程式會保持開啟狀態。 PROCESS_INFORMATION 結構的 hProcess 和 hThread 成員會分別保存進程和線程句柄。 將此成員設定為 NULL,而且會在函式傳回之前關閉進程。
備註
若要在 pszParameters 中包含雙引號,您必須以一對引號括住每個標記,如下列範例所示:
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";
在此情況下,應用程式會收到三個參數:An、example:和 “quoted text”。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional、Windows XP [僅限桌面應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | shellapi.h |