Structure SHCREATEPROCESSINFOW (shellapi.h)
[SHCreateProcessAsUserW n’est plus implémenté dans Windows XP ou versions ultérieures.]
Contient les informations nécessaires à 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 d’accès UNC d’un fichier sur un réseau.
SEE_MASK_DOENVSUBST
Développez toutes les variables d’environnement.
SEE_MASK_FLAG_DDEWAIT
Attendez que la conversation DDE se termine avant de revenir.
SEE_MASK_FLAG_NO_UI
N’affichez pas 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 multisurveillance.
SEE_MASK_NOCLOSEPROCESS
L’application ferme le processus. Si le membre lpProcessInformation est un pointeur de PROCESS_INFORMATION valide et que SEE_MASK_NOCLOSEPROCESS est défini, le processus reste ouvert lorsque SHCreateProcessAsUserW est retourné. Les membres hProcess et hThread de la structure PROCESS_INFORMATION contiennent respectivement les handles de processus et de thread. Cet indicateur est généralement défini pour permettre à une application de savoir quand un processus créé avec SHCreateProcessAsUserW se termine. Dans certains cas, par exemple lorsque l’exécution est satisfaite par le biais d’une conversation DDE, aucun handle n’est retourné. L’application appelante est responsable de la fermeture du handle lorsqu’il n’est plus nécessaire. Si cet indicateur n’est pas défini, le processus est fermé avant que SHCreateProcessAsUserW ne retourne, même si lpProcessInformation est un pointeur valide.
SEE_MASK_NO_CONSOLE
Créez une console pour le nouveau processus au lieu de lui faire hériter de la console parente. Cela équivaut à utiliser un indicateur CREATE_NEW_CONSOLE avec CreateProcess.
SEE_MASK_UNICODE
Indique une application Unicode.
hwnd
Type : HWND
Handle de fenêtre parente.
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 verbe runas . Le verbe runas 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 d’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
Jeton d’accès qui peut être utilisé pour représenter un utilisateur particulier. Elle est nécessaire lorsqu’il existe plusieurs utilisateurs pour les dossiers qui sont traités comme appartenant à un seul utilisateur. L’application appelante doit disposer des 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 Access Control.
lpProcessAttributes
Type : LPSECURITY_ATTRIBUTES
Pointeur vers une structure de SECURITY_ATTRIBUTES avec le descripteur de sécurité pour le nouveau processus. Il spécifie également si un processus enfant peut être hérité. Si ce paramètre a la valeur NULL, le processus a 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. Il spécifie également si un processus enfant peut être hérité. Si ce paramètre a la valeur NULL, le processus a 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. S’il est défini sur TRUE, chaque handle ouvert pouvant être 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 de la classe de priorité. Pour obtenir la liste des indicateurs disponibles, consultez CreateProcessAsUser.
lpStartupInfo
Type : LPSTARTUPINFOW
Pointeur vers une structure STARTUPINFO qui spécifie comment la fenêtre main 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 SEE_MASK_NOCLOSEPROCESS dans le membre fMask . Le processus reste ouvert lorsque la fonction est retournée. Les membres hProcess et hThread de la structure PROCESS_INFORMATION contiennent alors respectivement les handles de processus et de thread. 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 dans une paire de guillemets, comme dans l’exemple suivant :
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";
Dans ce cas, l’application reçoit trois paramètres : un, exemple :, et « texte entre guillemets ».
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel, Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | shellapi.h |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour