我試圖使用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. 在C++中通過DirectShow在C#UserControl中使用HWND的示例
- 5. PHP在C++中的示例
- 6. 在C/C++中的svg示例
- 7. 在C中使用單例#
- 8. 如何在PHP中使用xml(使用c#示例)
- 9. 如何使用C#示例使用JsonPath?
- 10. 在目標c示例教程中使用C++文件
- 11. 在C++中使用ndisprot示例驅動程序(在WDK中)
- 12. 使用EM_STREAMOUT與c#和RichEditBox的示例
- 13. 爲什麼ConnectionString在C#中使用MSN示例的SqlConnection失敗?
- 14. 在c#中使用Linq to XML解析XML的示例
- 15. 在asp.net中使用c的GSRF示例核心項目#
- 16. 在C++中使用一些簡單函數的示例程序
- 17. 在C#或VB.NET中使用'System.Activities.Statements.StateMachine'類的示例
- 18. 在C++中使用Boost生成UUID的示例
- 19. 在C#中使用#define的真實世界示例?
- 20. 在c#.net中使用委託的示例
- 21. 從VB.net在C#中使用中繼器示例
- 22. 在應用程序中使用Android示例/示例
- 23. C++中的VisualState示例?
- 24. C中的多叉示例
- 25. objective-c中的NSURLSessionUploadTask示例?
- 26. 在Airflow中使用參數的示例?
- 27. 在WPF中使用FormattedText類的示例?
- 28. 在Gnu-Octave中使用fork()的示例
- 29. 在JQueryMobile中使用autoInitializePage的示例
- 30. 在期貨中使用flatmap的示例
你想從哪裏獲取令牌?究竟是什麼驅使你使用這個功能? –
我猜你正在嘗試做類似於此處所述的內容:http://blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an-interactive-process-from-windows -service-in-windows-vista-and-later.aspx –