小编Bjo*_*ens的帖子

从C#中的CreateProcessAsUser捕获标准输出

我目前正在使用pinvoke CreateProcessAsUser api在asp.net网站内启动进程.这非常适合模拟已登录的AD用户.

然而,不知何故,控制台输出的结果字符串始终为空.我找不到出了什么问题.没有崩溃或任何东西只是没有输出.

public static class Process
{
    static readonly IntPtr INVALID_HANDLE_VALUE = (IntPtr)(-1);
    static readonly HandleRef NullHandleRef = new HandleRef(null, IntPtr.Zero);

    const int STD_INPUT_HANDLE = -10;
    public const UInt32 Infinite = 0xffffffff;
    const int STARTF_USESTDHANDLES = 0x100;

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern bool SetHandleInformation(IntPtr hObject, HANDLE_FLAGS dwMask, HANDLE_FLAGS dwFlags);

    [DllImport("kernel32.dll", EntryPoint = "CloseHandle", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
    public static extern bool CloseHandle(IntPtr handle);

    [DllImport("kernel32.dll", SetLastError = true)]
    public static extern UInt32 WaitForSingleObject(IntPtr …
Run Code Online (Sandbox Code Playgroud)

c# asp.net process createprocessasuser

8
推荐指数
1
解决办法
1829
查看次数

标签 统计

asp.net ×1

c# ×1

createprocessasuser ×1

process ×1