Estoy tratando de usar la función CreateProcessWithTokenW()
win32 API para iniciar un nuevo proceso con un token. El problema es que soy bastante nuevo en la API de win32 y no tengo ni idea de cómo usar la función correctamente, y qué estructuras, etc. son necesarias. ¿Podría alguien darme un ejemplo de cómo usar la función correctamente en C#?CreateProcessWithTokenW - Ejemplo de uso en C#
Respuesta
Este es el código no administrado por lo que necesita para utilizar P/Invoke (invocación de plataforma), aquí está la firma de la función de 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);
Se puede utilizar una enumeración como este para pasar en el LogonFlags
parámetro (a mantener la sensación .net :)):
public enum LogonFlags
{
WithProfile = 1,
NetCredentialsOnly
}
Aquí está la enumeración para el siguiente CreationFlags
la documentación disponible here:
public enum CreationFlags
{
DefaultErrorMode = 0x04000000,
NewConsole = 0x00000010,
NewProcessGroup = 0x00000200,
SeparateWOWVDM = 0x00000800,
Suspended = 0x00000004,
UnicodeEnvironment = 0x00000400,
ExtendedStartupInfoPresent = 0x00080000
}
Para obtener más información, consulte esta función en p/invoke.net: http://www.pinvoke.net/default.aspx/Structures/CreateProcessWithTokenW.html –
@ Te agradeceré mucho, lección aprendida –
@DavidHeffernan: NP, ¡gracias por cuidar! – Will
- 1. Ejemplo de uso de MSCHART en C#
- 2. por qué está fallando CreateProcessWithTokenW con ERROR_ACCESS_DENIED
- 3. Uso de propiedades en Python como en el ejemplo C#
- 4. Uso de C++ en Mac para Interactive Broker API? - ¿Ejemplo?
- 5. Ejemplo de uso de TLoginCredentialService
- 6. Ejemplo de uso de SetupDiGetDeviceProperty
- 7. Ejemplo de uso de hipervínculo en WPF
- 8. Ejemplo de uso de assert en Python?
- 9. Ejemplo de uso de BLOB en SQLAlchemy
- 10. Uso simple de IEnumerator (por ejemplo)
- 11. ejemplo de uso de scala.collection.immutable.Set de java
- 12. Marcando "uso de ejemplo" en la documentación del código
- 13. Ejemplo de uso de boost :: condición :: timed_wait
- 14. Ejemplo de uso de Scalaz Monad
- 15. Ejemplo de Android uso de RtpStream
- 16. django-ajax-selecciona el uso de ejemplo
- 17. Cola en C++ - ejemplo simple
- 18. ¿Dónde puedo encontrar un buen ejemplo de los comentarios de documentación de C# /// xml en uso?
- 19. ¿Cuál es un buen ejemplo de uso de variable de registro en C?
- 20. Ejemplo de uso donde Lua se adapta mucho mejor que C/C++
- 21. Ejemplo de interbloqueo de subprocesos en C#
- 22. Uso de dos puntos en javascript nombres de variables (por ejemplo, un:. B: c)
- 23. Ejemplo de uso de AdditionalMetadata en MVC 3
- 24. Ejemplo de uso de canalizaciones con nombre en Linux Bash
- 25. Un ejemplo de uso de LibSVM en java
- 26. FSEvents C++ Ejemplo
- 27. C# MD5 hasher ejemplo
- 28. Pobre ejemplo de herencia en C#
- 29. Ejemplo de Singleton en C++/CLI?
- 30. ¿Un ejemplo de prueba unitaria en C#?
¿De dónde quieres obtener tu ficha? ¿Qué te conduce exactamente a esta función? –
Supongo que está intentando hacer algo como lo que se describe aquí: http://blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an-interactive-process-from-windows -service-in-windows-vista-and-later.aspx –