Função SHCreateProcessAsUserW (shellapi.h)
[SHCreateProcessAsUserW não é implementado em sistemas Windows XP ou posteriores.]
Cria um novo processo de modo de usuário e seu thread primário para executar um arquivo executável especificado.
Sintaxe
BOOL SHCreateProcessAsUserW(
[in, out] PSHCREATEPROCESSINFOW pscpi
);
Parâmetros
[in, out] pscpi
Tipo: PSHCREATEPROCESSINFOW
Um ponteiro para uma estrutura SHCREATEPROCESSINFOW com informações sobre como criar o processo.
Retornar valor
Tipo: BOOL
Retornará TRUE se tiver êxito ou FALSE se não for. Para recuperar informações de erro estendidas, chame GetLastError.
Comentários
Essa função é semelhante a ShellExecuteEx com runas como o verbo. No entanto, SHCreateProcessAsUserW cria um processo que é executado no contexto de segurança do usuário representado pelo membro hUserToken da estrutura apontada pelo pscpi. O membro lpProcessInformation pode ser usado para retornar uma estrutura PROCESS_INFORMATION com informações sobre o novo processo.
O verbo runas deve ter suporte pelo tipo de arquivo do arquivo executável. O tipo de arquivo .exe dá suporte a runas. Use a função AssocQueryString para marcar se o runas tem suporte de outros tipos de arquivo. O fragmento de código a seguir ilustra a sintaxe.
AssocQueryString(0, ASSOCSTR_COMMAND, pszFile, TEXT("runas"), NULL, &cchVerb)
Para obter uma discussão sobre como usar o Shell para iniciar aplicativos, consulte Iniciando aplicativos.
Não há suporte para SHCreateProcessAsUserW no Windows XP. Os usuários que exigem funcionalidade semelhante devem examinar CreateProcess, CreateProcessAsUser, CreateProcessWithLogonW e ShellExecuteEx, avaliando cuidadosamente cada um com base na funcionalidade e segurança necessárias. IQueryAssociations pode ser usado para extrair informações usadas com CreateProcess, se necessário.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shellapi.h |
Biblioteca | Shell32.lib |
DLL | Shell32.dll (versão 5.0 ou posterior) |