首页 > 编程语言 >C#中屏蔽第三方DLL中的Console输出的方法

C#中屏蔽第三方DLL中的Console输出的方法

时间:2024-03-06 09:58:00浏览次数:23  
标签:STD 输出 Console Int32 C# DLL HANDLE OUTPUT

 

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);

  

标签:STD,输出,Console,Int32,C#,DLL,HANDLE,OUTPUT
From: https://www.cnblogs.com/chyshx/p/18055830

相关文章

  • flink 提交yarn 命令 flink run -m yarn-cluster
    flink提交yarn命令flinkrun-myarn-cluster文章目录Flink集群搭建和使用local本地测试flink集群搭建1、standallonecluster提交任务--将代码打包2.flinkonyarn只需要部署一个节点flink启动方式1、yarn-session2、直接提交任务到yarnFlink集群搭建和使用local本地......
  • Docker API 未授权访问
    DockerAPI未授权访问目录DockerAPI未授权访问1漏洞描述1.1Docker是什么?1.2Docker镜像和容器是什么?1.3什么是Dockerregistry?1.4什么是blobs?2漏洞危害3漏洞检测3.1检查registry版本4修复方案5来源1漏洞描述Docker是一种流行的容器技术,已被世界各地的行业所接受......
  • (21)Lazarus之FilterComboBox1过滤ShellListView1的文件名
    FilterComboBox1只过滤当前目录下的文件名,不过滤目录名,也不过滤子目录名拖一个FilterComboBox1,ShellListView1到界面上1]将FilterComboBox1的ShellListView设置为ShellListView12]添加过滤文件类型 3]还须设置ShellListView1的根目录Root ......
  • windows编译ZLMediaKit流媒体服务webrtc
    环境说明ZLMediaKit编译需要的软件visualstudio2022cmake3.29.0-rc2OpenSSL1.1.1w(不想踩坑的话安装这个版本)libsrtp2.6.0ZLMediaKit编译后运行需要libsrtp编译后且配置环境变量ZLMediaKit编译后文件visualstudiocmakevisualstuid......
  • LY1162 [ 20230323 CQYC省选模拟赛 T3 ] 跳!跳!跳!
    题意给定\(n\)个长度为\(m\)的字符串,进行若干操作,求每个字符串\(S_a\)到\(S_b\)的方案数。另外,你还有一个模式串\(T\),由\({1,...,n}\)与\(0\)(通配符)组成。从\(S_x\)右边的串开始,不断向右移动,直到\(S_y\)与\(T\)匹配。从\(S_x\)左边的串开始,不断向左......
  • httpd使用systemctl启动超时解决过程
    现象:systemctlstarthttpd启动超时,提示信息如下:Jobforhttpd.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatushttpd.service"and"journalctl-xe"fordetails.systemctlstatushttpd信息如下:httpd.service......
  • C# GlobalUsings.cs using dll
    .NET6新特性试用 .NET6发布后支持C#10,C#10向C#语言添加了很多功能,今天我们分享一下全局和隐式usings的使用:using指令简化了使用命名空间的方式。C#10包括一个新的全局using指令和隐式usings,以减少需要在每个文件顶部指定的usings数量。  ImplicitUsings属......
  • 深入解析ASP.NET Core MVC的模块化设计[下篇]
    ASP.NETCoreMVC的“模块化”设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载。《设计篇》介绍了这种为“飞行中的飞机加油”的方案的实现原理?本篇我们将演示将介绍“分散定义Controller”的N种实现方案。源代码从这里下载。一、标......
  • Claude 3 Sonnet 模型现已在亚马逊云科技的 Amazon Bedrock 正式可用!
    今天,我们宣布一个激动人心的里程碑:Anthropic的Claude3Sonnet模型现已在亚马逊云科技的AmazonBedrock正式可用。下一代Claude(Claude3)的三个模型Claude3Opus、Claude3Sonnet和Claude3Haiku将陆续登陆AmazonBedrock。AmazonBedrock是目前第一个也是唯一......
  • CMN简述 --20240305
    以下仅是个人对CMN的浅显理解:CMN全称为coherentmeshnetwork,是一种互联技术,通过在系统中设立多个节点之间的互联来实现高性能和可靠性CMN的具体应用:应用于多核之间的cache一致性以上图为例,每个cluster均有片内cache,当CPU对DDR写一个值时,例如向ddr0x100地址写入0x1 当没有......