J'essaie d'utiliser la fonction APIwin32 pour démarrer un nouveau processus avec un jeton. Le problème est que je suis tout à fait nouveau à l'API Win32 et je n'ai aucune idée de la façon d'utiliser la fonction correctement, et quels structs etc. sont nécessaires. Quelqu'un pourrait-il me fournir un exemple de la façon d'utiliser la fonction correctement en C#?CreateProcessWithTokenW - Exemple d'utilisation en C#
Répondre
C'est un code non géré de sorte que vous devez utiliser P/Invoke (Platform Invoke), voici la signature de fonction pour CreateProcessWithTokenW()
:
[DllImport("advapi32", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool CreateProcessWithTokenW(
IntPtr hToken,
LogonFlags dwLogonFlags,
string lpApplicationName,
string lpCommandLine,
CreationFlags dwCreationFlags,
IntPtr lpEnvironment,
string lpCurrentDirectory,
[In] ref STARTUPINFO lpStartupInfo,
out PROCESS_INFORMATION lpProcessInformation);
Vous pouvez utiliser un ENUM comme celui-ci pour passer dans le LogonFlags
param (à garder le sentiment .net :)):
public enum LogonFlags
{
WithProfile = 1,
NetCredentialsOnly
}
Voici le ENUM pour le CreationFlags
suivant la documentation disponible here:
public enum CreationFlags
{
DefaultErrorMode = 0x04000000,
NewConsole = 0x00000010,
NewProcessGroup = 0x00000200,
SeparateWOWVDM = 0x00000800,
Suspended = 0x00000004,
UnicodeEnvironment = 0x00000400,
ExtendedStartupInfoPresent = 0x00080000
}
Pour plus d'informations, voir cette fonction sur p/invoke.net: http://www.pinvoke.net/default.aspx/Structures/CreateProcessWithTokenW.html –
@ Merci beaucoup, leçon apprise –
@DavidHeffernan: NP, merci de votre attention! – Will
- 1. Exemple Singleton en C++/CLI?
- 2. Pauvre Exemple d'héritage en C#
- 3. Exemple de code Google Outil en C#
- 4. Exemple simple MEF en C++/CLI
- 5. Héritage multiple en C++ (exemple Qt)
- 6. Evénements en C# - Définition et Exemple
- 7. Exemple d'interblocage de threads en C#
- 8. Exemple de code pour MemCached en C
- 9. Téléchargement d'une page Web en exemple C#
- 10. Exemple de paiement PayPal simple en C#
- 11. Exemple de programmation C en temps réel
- 12. Exemple d'une fourchette multiple en C
- 13. Exemple de bibliothèque MPXJ en C#
- 14. Exemple de graphique C++
- 15. MEF [Importer] C# Exemple
- 16. simple C++ hash_set exemple
- 17. Exemple de destructeur C++
- 18. C Unix Pipes Exemple
- 19. Bibliothèque de diffusion simple/exemple en C/C++
- 20. C# LINQ/Initialiseurs d'objets Exemple de C# 4.0 en bref
- 21. Traduire un exemple de code de C# en C++
- 22. exemple serveur/code client en C++ (non C)
- 23. Exemple d'authentification Facebook C#
- 24. Exemple iPhone/iPad C++
- 25. AggregateException C# exemple
- 26. MSDN C# ProcessController Exemple
- 27. ZXing objectif c exemple
- 28. Exemple de copie fantôme en volume (VSS) en C#?
- 29. Exemple de génération d'UUID en utilisant Boost en C++
- 30. strncpy et _tcsncpy C++ exemple
D'où voulez-vous obtenir votre jeton? Qu'est-ce qui vous pousse exactement à cette fonction? –
Je suppose que vous essayez de faire quelque chose comme ce qui est décrit ici: http://blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an-interactive-process-from-windows -service-dans-windows-vista-and-later.aspx –