Share via


SHCREATEPROCESSINFOW-Struktur (shellapi.h)

[SHCreateProcessAsUserW ist nicht mehr in Windows XP oder höheren Versionen implementiert.]

Enthält die Informationen, die shCreateProcessAsUserW zum Erstellen eines Prozesses benötigt.

Syntax

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;

Member

cbSize

Art: DWORD

Die Größe (in Bytes) dieser Struktur.

fMask

Typ: ULONG

Ein Array von Flags, das den Inhalt und die Gültigkeit der anderen Strukturmember angibt. Dies kann eine Kombination der folgenden Werte sein.

SEE_MASK_CLASSKEY

Verwenden Sie den Klassenregistrierungsschlüssel der Datei.

SEE_MASK_CLASSNAME

Verwenden Sie den Klassennamen der Datei.

SEE_MASK_CONNECTNETDRV

Überprüfen Sie die Freigabe, und stellen Sie eine Verbindung mit einem Laufwerkbuchstaben her. Das pszFile-Element ist ein UNC-Pfad einer Datei in einem Netzwerk.

SEE_MASK_DOENVSUBST

Erweitern Sie alle Umgebungsvariablen.

SEE_MASK_FLAG_DDEWAIT

Warten Sie, bis die DDE-Unterhaltung beendet ist, bevor Sie zurückkehren.

SEE_MASK_FLAG_NO_UI

Zeigen Sie kein Fehlermeldungsfeld an, wenn ein Fehler auftritt.

SEE_MASK_HMONITOR

Verwenden Sie dieses Flag, wenn Sie einen Monitor auf Multimonitorsystemen angeben.

SEE_MASK_NOCLOSEPROCESS

Die Anwendung schließt den Prozess. Wenn der lpProcessInformation-Member ein gültiger PROCESS_INFORMATION-Zeiger ist und SEE_MASK_NOCLOSEPROCESS festgelegt ist, bleibt der Prozess geöffnet, wenn SHCreateProcessAsUserW zurückgibt. Die hProcess- und hThread-Member der PROCESS_INFORMATION-Struktur enthalten den Prozess- bzw. Threadhandles. Dieses Flag wird in der Regel festgelegt, damit eine Anwendung herausfinden kann, wann ein mit SHCreateProcessAsUserW erstellter Prozess beendet wird. In einigen Fällen, z. B. wenn die Ausführung über eine DDE-Unterhaltung erfüllt wird, wird kein Handle zurückgegeben. Die aufrufende Anwendung ist dafür verantwortlich, das Handle zu schließen, wenn es nicht mehr benötigt wird. Wenn dieses Flag nicht festgelegt ist, wird der Prozess geschlossen, bevor SHCreateProcessAsUserW zurückgibt, auch wenn lpProcessInformation ein gültiger Zeiger ist.

SEE_MASK_NO_CONSOLE

Erstellen Sie eine Konsole für den neuen Prozess, anstatt die Konsole des übergeordneten Elements zu erben. Dies entspricht der Verwendung eines CREATE_NEW_CONSOLE-Flags mit CreateProcess.

SEE_MASK_UNICODE

Gibt eine Unicode-Anwendung an.

hwnd

Typ: HWND

Ein übergeordnetes Fensterhandle.

pszFile

Typ: LPCWSTR

Ein Zeiger auf eine Unicode-Zeichenfolge mit NULL-Beendigung, die die ausführbare Datei angibt, für die SHCreateProcessAsUserW die aktion ausführt, die durch das runas-Verb angegeben wird. Das Runas-Verb muss von der -Klasse der Datei unterstützt werden.

Hinweis Wenn der Pfad nicht im Dateinamen enthalten ist, wird das aktuelle Verzeichnis angenommen.
 

pszParameters

Typ: LPCWSTR

Ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Beendigung, die die Anwendungsparameter enthält. Die Parameter müssen durch Leerzeichen getrennt werden.

pszCurrentDirectory

Typ: LPCWSTR

Eine Unicode-Zeichenfolge mit Null-Endung, die das aktuelle Verzeichnis enthält.

hUserToken

Typ: HANDLE

Ein Zugriffstoken , das verwendet werden kann, um einen bestimmten Benutzer darzustellen. Dies ist erforderlich, wenn mehrere Benutzer für die Ordner vorhanden sind, die als zu einem einzelnen Benutzer gehören behandelt werden. Die aufrufende Anwendung muss über die entsprechenden Sicherheitsberechtigungen für den jeweiligen Benutzer verfügen, einschließlich TOKEN_QUERY und TOKEN_IMPERSONATE, und die Registrierungsstruktur des Benutzers muss derzeit eingebunden sein. Weitere Informationen zu Zugriffssteuerungsproblemen finden Sie unter Access Control.

lpProcessAttributes

Typ: LPSECURITY_ATTRIBUTES

Ein Zeiger auf eine SECURITY_ATTRIBUTES-Struktur mit der Sicherheitsbeschreibung für den neuen Prozess. Außerdem wird angegeben, ob ein untergeordneter Prozess geerbt werden kann. Wenn dieser Parameter auf NULL festgelegt ist, verfügt der Prozess über eine Standardsicherheitsbeschreibung, und das Handle kann nicht geerbt werden.

Sicherheitswarnung: Die falsche Verwendung eines Sicherheitsdeskriptors kann die Sicherheit Ihrer Anwendung gefährden. Weitere Informationen finden Sie unter SECURITY_ATTRIBUTES.

lpThreadAttributes

Typ: LPSECURITY_ATTRIBUTES

Ein Zeiger auf eine SECURITY_ATTRIBUTES-Struktur mit der Sicherheitsbeschreibung für den neuen Thread. Außerdem wird angegeben, ob ein untergeordneter Prozess geerbt werden kann. Wenn dieser Parameter auf NULL festgelegt ist, verfügt der Prozess über eine Standardsicherheitsbeschreibung, und das Handle kann nicht geerbt werden.

Sicherheitswarnung: Die falsche Verwendung eines Sicherheitsdeskriptors kann die Sicherheit Ihrer Anwendung gefährden. Weitere Informationen finden Sie unter SECURITY_ATTRIBUTES.

bInheritHandles

Typ: BOOL

Ein Indikator dafür, ob der neue Prozess Handles vom aufrufenden Prozess erbt. Wenn true festgelegt ist, wird jedes vererbbare offene Handle im aufrufenden Prozess vom neuen Prozess geerbt. Geerbte Handles verfügen über den gleichen Wert und die gleichen Zugriffsberechtigungen wie die ursprünglichen Handles.

dwCreationFlags

Art: DWORD

Flags, die die Erstellung des Prozesses und der Prioritätsklasse steuern. Eine Liste der verfügbaren Flags finden Sie unter CreateProcessAsUser.

lpStartupInfo

Typ: LPSTARTUPINFOW

Ein Zeiger auf eine STARTUPINFO-Struktur, die angibt, wie das Standard Fenster für den neuen Prozess angezeigt werden soll.

lpProcessInformation

Typ: LPPROCESS_INFORMATION

Ein Zeiger auf eine PROCESS_INFORMATION-Struktur , die Informationen zum neuen Prozess empfängt. Legen Sie dieses Element auf einen gültigen Strukturzeiger fest, und legen Sie das SEE_MASK_NOCLOSEPROCESS-Flag im fMask-Element fest, und der Prozess bleibt geöffnet, wenn die Funktion zurückgibt. Die hProcess- und hThread-Member der PROCESS_INFORMATION Struktur enthalten dann die Prozess- bzw. Threadhandles. Legen Sie diesen Member auf NULL fest, und der Prozess wird geschlossen, bevor die Funktion zurückgegeben wird.

Hinweise

Um doppelte Anführungszeichen in pszParameters einzuschließen, müssen Sie jede Marke in ein Anführungszeichenpaar einschließen, wie im folgenden Beispiel gezeigt:

sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";

In diesem Fall empfängt die Anwendung drei Parameter: An, example:, und "quoted text".

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional, Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile shellapi.h

Weitere Informationen

SHELLEXECUTEINFO