我正在使用CreateProcess,我想将CREATE_SUSPENDED
和CREATE_NO_WINDOW
作为Process Creation Flags传递。
这是我的pinvoke签名:
[DllImport("kernel32.dll", SetLastError = true)]
private static extern Boolean CreateProcess(String lpApplicationName, String lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes,
Boolean bInheritHandles, UInt32 dwCreationFlags, IntPtr lpEnvironment, String lpCurrentDirectory, Byte[] lpStartupInfo,
out PROCESS_INFORMATION lpProcessInfo);
问题是:如何传递多个标志?
答案 0 :(得分:1)
由于所有标志在单个二进制位置都有一个1
,您可以通过OR-ing或将它们加在一起将它们组合在一起:
CREATE_SUSPENDED | CREATE_NO_WINDOW
以下是它的工作原理:
CREATE_NO_WINDOW is 0x08000000
CREATE_SUSPENDED is 0x00000004
将它们进行OR运算的结果是0x08000004
。