我试图使用CreateProcessWithTokenW()
win32 API函数以令牌启动一个新进程。问题是我对win32 API很陌生,我不知道如何正确使用这个函数,以及需要哪些结构等等。有人能给我提供一个如何在C#中正确使用函数的例子吗?CreateProcessWithTokenW - 在C#中使用的示例
回答
这是托管代码,所以你需要使用的P/Invoke(平台调用),下面是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);
您可以使用一个enum这样的LogonFlags
参数去传递(以保持.NET的感觉:)):
public enum LogonFlags
{
WithProfile = 1,
NetCredentialsOnly
}
这里是为CreationFlags
枚举提供的文档here以下
public enum CreationFlags
{
DefaultErrorMode = 0x04000000,
NewConsole = 0x00000010,
NewProcessGroup = 0x00000200,
SeparateWOWVDM = 0x00000800,
Suspended = 0x00000004,
UnicodeEnvironment = 0x00000400,
ExtendedStartupInfoPresent = 0x00080000
}
有关更多信息,请参阅p/invoke.net上的此功能:http://www.pinvoke.net/default.aspx/Structures/CreateProcessWithTokenW.html –
@非常感谢你,经验教训 –
@DavidHeffernan:NP,谢谢关心! – Will
- 1. C#和CreateProcessWithTokenW - 使用不同的用户令牌启动进程
- 2. 在C#中使用MSCHART的示例#
- 3. 为什么CreateProcessWithTokenW失败,ERROR_ACCESS_DENIED
- 4. PHP在C++中的示例
- 5. 在C/C++中的svg示例
- 6. 在C中使用单例#
- 7. 如何在PHP中使用xml(使用c#示例)
- 8. 如何使用C#示例使用JsonPath?
- 9. 在C++中使用ndisprot示例驱动程序(在WDK中)
- 10. 使用EM_STREAMOUT与c#和RichEditBox的示例
- 11. 在c#中使用Linq to XML解析XML的示例
- 12. 在C#中使用#define的真实世界示例?
- 13. 在C++中使用Boost生成UUID的示例
- 14. 为什么ConnectionString在C#中使用MSN示例的SqlConnection失败?
- 15. 在C++中使用一些简单函数的示例程序
- 16. 从VB.net在C#中使用中继器示例
- 17. 在应用程序中使用Android示例/示例
- 18. 在Airflow中使用参数的示例?
- 19. 在JQueryMobile中使用autoInitializePage的示例
- 20. 在Lucene中使用WikipediaTokenizer的示例
- 21. 在AIR中使用GPS的示例
- 22. 在期货中使用flatmap的示例
- 23. 在WPF中使用FormattedText类的示例?
- 24. C中的多叉示例
- 25. objective-c中的NSURLSessionUploadTask示例?
- 26. C++中的VisualState示例?
- 27. 使用Active MQ的示例JMS示例
- 28. 使用示例
- 29. Java - 在给定示例中使用super()
- 30. FSEvents C++示例
你想从哪里获取令牌?究竟是什么驱使你使用这个功能? –
我猜你正在尝试做类似于此处所述的内容:http://blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an-interactive-process-from-windows -service-in-windows-vista-and-later.aspx –