C#中的使用示例
我正在尝试使用CreateProcessWithTokenW()
win32 API函数来用令牌启动一个新进程。 问题是我对win32 API很陌生,我不知道如何正确使用这个函数,以及需要哪些结构等等。 有人能给我提供一个如何在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);
你可以像这样使用枚举来传递LogonFlags
参数(以保持.net的感觉:)):
public enum LogonFlags
{
WithProfile = 1,
NetCredentialsOnly
}
以下是可用于此处的文档的CreationFlags
的枚举:
public enum CreationFlags
{
DefaultErrorMode = 0x04000000,
NewConsole = 0x00000010,
NewProcessGroup = 0x00000200,
SeparateWOWVDM = 0x00000800,
Suspended = 0x00000004,
UnicodeEnvironment = 0x00000400,
ExtendedStartupInfoPresent = 0x00080000
}
链接地址: http://www.djcxy.com/p/56271.html