Partager via


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 lpProcessInformation est un pointeur PROCESS_INFORMATION valide et que SEE_MASK_NOCLOSEPROCESS est défini, le processus reste ouvert lorsque SHCreateProcessAsUserW retourne. Les membres hProcess et hThread membres de la structure PROCESS_INFORMATION contiennent les handles de processus et de threads, respectivement. Cet indicateur est généralement défini pour permettre à une application de déterminer 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 chargée de fermer le handle lorsqu’il n’est plus nécessaire. Si cet indicateur n’est pas défini, le processus est fermé avant SHCreateProcessAsUserW retourne, même si lpProcessInformation est un pointeur valide.

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.

Remarque Si le chemin d’accès n’est pas inclus avec le nom de fichier, le répertoire actif est supposé.
 

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

Voir aussi

SHELLEXECUTEINFO