我正在尝试使用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);
Run Code Online (Sandbox Code Playgroud)
您可以使用这样的枚举传入LogonFlags
参数(以保持.net的感觉:)):
public enum LogonFlags
{
WithProfile = 1,
NetCredentialsOnly
}
Run Code Online (Sandbox Code Playgroud)
以下是此处CreationFlags
提供的文档的枚举:
public enum CreationFlags
{
DefaultErrorMode = 0x04000000,
NewConsole = 0x00000010,
NewProcessGroup = 0x00000200,
SeparateWOWVDM = 0x00000800,
Suspended = 0x00000004,
UnicodeEnvironment = 0x00000400,
ExtendedStartupInfoPresent = 0x00080000
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2980 次 |
最近记录: |