C#中屏蔽第三方DLL中的Console输出的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //1.引入 private const Int32 STD_OUTPUT_HANDLE = -11; [DllImport( "Kernel32.dll" )] extern static Boolean SetStdHandle(Int32 nStdHandle, SafeHandleZeroOrMinusOneIsInvalid handle); [DllImport( "Kernel32.dll" )] extern static SafePipeHandle GetStdHandle(Int32 nStdHandle); //2.操作 //屏蔽dll中的输出 //2.1 获取输出句柄 var defaultHandle = GetStdHandle(STD_OUTPUT_HANDLE); //2.2 设置输出到匿名管道 SetStdHandle(STD_OUTPUT_HANDLE, new AnonymousPipeServerStream(PipeDirection.Out).SafePipeHandle); //2.3 调用第三方库(内含Console的输出) PaddleOCRSharp.PaddleOCREngine engine = new PaddleOCRSharp.PaddleOCREngine(config); //2.4 恢复 SetStdHandle(STD_OUTPUT_HANDLE,defaultHandle); |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步