STRUCTURE SHCREATEPROCESSINFOW (shellapi.h)
[SHCreateProcessAsUserW n’est plus implémentée dans Windows XP ou versions ultérieures.]
Contient les informations requises par SHCreateProcessAsUserW pour créer un processus.
Syntaxe
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;
Membres
cbSize
Type : DWORD
Taille, en octets, de cette structure.
fMask
Type : ULONG
Tableau d’indicateurs qui indique le contenu et la validité des autres membres de la structure. Il peut s’agir d’une combinaison des valeurs suivantes.
SEE_MASK_CLASSKEY
Utilisez la clé de Registre de classes du fichier.
SEE_MASK_CLASSNAME
Utilisez le nom de classe du fichier.
SEE_MASK_CONNECTNETDRV
Validez le partage et connectez-vous à une lettre de lecteur. Le membre pszFile est un chemin UNC d’un fichier sur un réseau.
SEE_MASK_DOENVSUBST
Développez les variables d’environnement.
SEE_MASK_FLAG_DDEWAIT
Attendez que la conversation DDE se termine avant de retourner.
SEE_MASK_FLAG_NO_UI
N’affichez pas de boîte de message d’erreur si une erreur se produit.
SEE_MASK_HMONITOR
Utilisez cet indicateur lors de la spécification d’un moniteur sur des systèmes multimonitor.
SEE_MASK_NOCLOSEPROCESS
L’application ferme le processus. Si le membre
SEE_MASK_NO_CONSOLE
Créez une console pour le nouveau processus au lieu d’hériter de la console du parent. Il équivaut à utiliser un indicateur de CREATE_NEW_CONSOLE avec CreateProcess.
SEE_MASK_UNICODE
Indique une application Unicode.
hwnd
Type : HWND
Handle de fenêtre parent.
pszFile
Type : LPCWSTR
Pointeur vers une chaîne Unicode terminée par null qui spécifie le fichier exécutable sur lequel SHCreateProcessAsUserW effectuera l’action spécifiée par le runas verbe. Le runas verbe doit être pris en charge par la classe du fichier.
pszParameters
Type : LPCWSTR
Pointeur vers une chaîne Unicode terminée par null contenant les paramètres de l’application. Les paramètres doivent être séparés par des espaces.
pszCurrentDirectory
Type : LPCWSTR
Chaîne Unicode terminée par null qui contient le répertoire actif.
hUserToken
Type : HANDLE
Un jeton d’accès qui peut être utilisé pour représenter un utilisateur particulier. Il est nécessaire lorsqu’il existe plusieurs utilisateurs pour ces dossiers qui sont traités comme appartenant à un seul utilisateur. L’application appelante doit disposer de privilèges de sécurité appropriés pour l’utilisateur particulier, notamment TOKEN_QUERY et TOKEN_IMPERSONATE, et la ruche de Registre de l’utilisateur doit être actuellement montée. Pour plus d’informations sur les problèmes de contrôle d’accès, consultez contrôle d’accès.
lpProcessAttributes
Type : LPSECURITY_ATTRIBUTES
Pointeur vers une structure SECURITY_ATTRIBUTES avec le descripteur de sécurité pour le nouveau processus. Elle spécifie également si un processus enfant peut être hérité. Si ce paramètre est défini sur NULL, le processus aura un descripteur de sécurité par défaut et le handle ne peut pas être hérité.
Avertissement de sécurité : l’utilisation incorrecte d’un descripteur de sécurité peut compromettre la sécurité de votre application. Pour plus d’informations, consultez SECURITY_ATTRIBUTES.
lpThreadAttributes
Type : LPSECURITY_ATTRIBUTES
Pointeur vers une structure SECURITY_ATTRIBUTES avec le descripteur de sécurité pour le nouveau thread. Elle spécifie également si un processus enfant peut être hérité. Si ce paramètre est défini sur NULL, le processus aura un descripteur de sécurité par défaut et le handle ne peut pas être hérité.
Avertissement de sécurité : l’utilisation incorrecte d’un descripteur de sécurité peut compromettre la sécurité de votre application. Pour plus d’informations, consultez SECURITY_ATTRIBUTES.
bInheritHandles
Type : BOOL
Indicateur indiquant si le nouveau processus hérite des handles du processus appelant. Si la valeur est TRUE, chaque handle ouvert hérité dans le processus appelant est hérité par le nouveau processus. Les handles hérités ont la même valeur et les mêmes privilèges d’accès que les handles d’origine.
dwCreationFlags
Type : DWORD
Indicateurs qui contrôlent la création du processus et la classe de priorité. Pour obtenir la liste des indicateurs disponibles, consultez CreateProcessAsUser.
lpStartupInfo
Type : LPSTARTUPINFOW
Pointeur vers une structure STARTUPINFO qui spécifie la façon dont la fenêtre principale du nouveau processus doit apparaître.
lpProcessInformation
Type : LPPROCESS_INFORMATION
Pointeur vers une structure PROCESS_INFORMATION qui reçoit des informations sur le nouveau processus. Définissez ce membre sur un pointeur de structure valide, puis définissez l’indicateur de SEE_MASK_NOCLOSEPROCESS dans le membre fMask, et le processus reste ouvert lorsque la fonction retourne. Les membres PROCESS_INFORMATIONhProcess et hThread contiennent ensuite les handles de processus et de thread, respectivement. Définissez ce membre sur NULL et le processus sera fermé avant le retour de la fonction.
Remarques
Pour inclure des guillemets doubles dans pszParameters, vous devez placer chaque marque entre guillemets, comme dans l’exemple suivant :
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";
Dans ce cas, l’application reçoit trois paramètres : An, example :, and « quoted text ».
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel, Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
d’en-tête | shellapi.h |