如何截获执行命令行的输出

Cibersort免疫浸润 --- 详细教程 免疫浸润是指免疫细胞如淋巴细胞、浆细胞、巨噬细胞等进入到组织或器官中,并在这些组织或器官中发挥免疫功能的过程。免疫细胞的浸润可以是炎症反应的一部分,也可以是针对感染、肿瘤或其他疾病的免疫应答的一部分。免疫浸润通过调节免疫反应和炎症反应的程度和类型,起到维护机体免疫平衡和清除异常细胞或病原体的作用。在某些情况下,免疫浸润可能导致炎症反应过度,引起组织损伤,例如自身免疫性疾病。因此,免疫浸润在许多疾病的诊断和治疗中都具有重要的意义。免疫浸润可以通过组织切片染色和免疫组织化学等方法观察和分析。 阅读详情
Option Explicit
Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Type SECURITY_ATTRIBUTES
 nLength As Long
 lpSecurityDescriptor As Long
 bInheritHandle As Long
End Type
Private Type STARTUPINFO
 cb As Long
 lpReserved As String
 lpDesktop As String
 lpTitle As String
 dwX As Long
 dwY As Long
 dwXSize As Long
 dwYSize As Long
 dwXCountChars As Long
 dwYCountChars As Long
 dwFillAttribute As Long
 dwFlags As Long
 wShowWindow As Integer
 cbReserved2 As Integer
 lpReserved2 As Long
 hStdInput As Long
 hStdOutput As Long
 hStdError As Long
End Type
Private Type PROCESS_INFORMATION
 hProcess As Long
 hThread As Long
 dwProcessId As Long
 dwThreadId As Long
End Type
Private Declare Function CreateProcessAsUser Lib "advapi32.dll" Alias "CreateProcessAsUserA" (ByVal hToken As Long, ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As SECURITY_ATTRIBUTES, ByVal lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As String, ByVal lpCurrentDirectory As String, ByVal lpStartupInfo As STARTUPINFO, ByVal lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20
Private Const STARTF_USESTDHANDLES = &H100
Private Const STARTF_USESHOWWINDOW = &H1
Private Function ExecuteCommandLineOutput(CommandLine As String, Optional BufferSize As Long = 256, Optional TimeOut As Long) As String
 Dim Proc As PROCESS_INFORMATION
 Dim Start As STARTUPINFO
 Dim SA As SECURITY_ATTRIBUTES
 Dim hReadPipe As Long
 Dim hWritePipe As Long
 Dim lBytesRead As Long
 Dim sBuffer As String
 If VBA.Len(CommandLine) > 0 Then
  SA.nLength = Len(SA)
  'SA.nLength = vba.Len(sa)
  SA.bInheritHandle = 1&
  SA.lpSecurityDescriptor = 0&
  If CreatePipe(hReadPipe, hWritePipe, SA, 0) > 0 Then
   Start.cb = Len(Start)
   Start.dwFlags = STARTF_USESTDHANDLES Or STARTF_USESHOWWINDOW
   Start.hStdOutput = hWritePipe
   Start.hStdError = hWritePipe
   If CreateProcessA(0&, CommandLine, SA, SA, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, Start, Proc) = 1 Then
    CloseHandle hWritePipe
    sBuffer = VBA.String(BufferSize, VBA.Chr(0))
    If TimeOut > 0 Then
     Dim BeginTime As Date
     BeginTime = VBA.Now
    End If
    Do Until ReadFile(hReadPipe, sBuffer, BufferSize, lBytesRead, 0&) = 0
     DoEvents
     If TimeOut > 0 Then
      If VBA.DateDiff("s", BeginTime, VBA.Now) > TimeOut Then
       ExecuteCommandLineOutput = "Timeout"
       Exit Do
      End If
     End If
     ExecuteCommandLineOutput = ExecuteCommandLineOutput & VBA.Left(sBuffer, lBytesRead)
    Loop
    CloseHandle Proc.hProcess
    CloseHandle Proc.hThread
    CloseHandle hReadPipe
   Else
    ExecuteCommandLineOutput = "File or command not found"
   End If
  Else
   ExecuteCommandLineOutput = "CreatePipe failed. Error: " & Err.LastDllError & "."
  End If
 End If
End Function
Private Sub Command1_Click() '测试
 'VBA.MsgBox ExecuteCommandLineOutput("ping www.sina.com.cn")
 VBA.MsgBox ExecuteCommandLineOutput("ping www.xxxx.com.cn", , 2)
End Sub
箱式连续提升机 箱式连续提升机,是对具有高度差较大(>1500mm)的输送线之间进连接,将箱式物资进连续输送的提升(或下降)的输送设备,可根据输送线的具体输送要求作相应的参数设计。目前的箱式连续提升机种类比较多,常用的形式主要有Z型和C型,工作原理相同,只是入口和出口分别在两侧和同侧。 阅读详情

相关推荐

热力学仿真软件:SimScale_(1).SimScale入门与基础操作

导航栏:位于页面顶部,包含项目管理、仿真设置、结果分析等主要功能。项目列表:展示用户创建的所有项目。工作区:用于进具体的操作,如几何建模、网格划分、边界条件设置等。控制台:显示操作日志和仿真进度。网格划分是将几何模型离散化为一系列小单元的过程,这些单元用于求解热力学方程。SimScale提供了多种网格划分方法,包括结构化网格和非结构化网格。SimScale提供了丰富的API接口,用户可以通过编程语言进二次开发,实现自动化仿真和结果分析。项目管理:创建、删除和管理项目。几何建模:创建、导入和修复几何模型。

kkchenjj的博客 1793

vb代码让cmd执行命令_VB实现CMD命令的回显的代码

Option ExplicitPrivate Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As LongPrivate Declare Functio...

weixin_39542710的博客 865

通过电源模块降低电源噪声的3种方法

电源噪声是一种常见且不受欢迎的电气现象。如果不降低噪声,其会对敏感的医疗、测试测量、航空航天和国防系统的应用性能产生不利影响。当今的高精度模拟信号链系统需要直流/直流开关稳压器产生稳压电源轨,为低噪声应用中的模数转换器(ADC)、数模转换器(DAC)、现场可编程门阵列(FPGA)及其子系统供电。尽管直流/直流开关稳压器具有高工作效率,它们的开关操作会导致较大的不连续电流,从而产生较高的输入和输出电压纹波、频率尖峰和宽带噪声。

qq_43416206的博客 1393

C# command line output

Today I'm coding an application for monitoring the running status of a bat script just like what I did for a exe

silentwins的专栏 1293

利用Apache Commons Exec调用命令行并取得命令行输出(实例)

public String ping(String ip) { try { String command = "ping "+ip; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ByteArrayOutputStre

【大漠孤烟】 的专栏 1万+

总结两种创建匿名管道来截获控制台命令的方法

第一种为FILE *_popen(   const char *command,   const char *mode); 第一个参数直接传命令,返回端直接为管道的句柄,用fget来提取文件信息。 贴出关键代码: WideCharToMultiByte(CP_ACP, 0, strCmmdLine.GetBuffer(), strCmmdLine.GetLength(), path, MAX_

maybedx的专栏 563

一个命令,将其输出截获的代码-使用无名管道

使用popen库函数的版本: #include<unistd.h> #include<stdio.h> #include<stdlib.h> #include<fcntl.h> #include<limits.h> #defineBUFSZPI...

weixin_30920091的博客 71

windows环境下,JAVA调用Runtime.getRuntime()执行命令时线程阻塞

问题描述 最近在研究开源代码jhipster-online时,在执将代码自动打包上传到gitlab上时,总是不成功。调试时总是阻塞在读取输出的地方。具体表现为: 程序原本应该有很多输出,但是当调用Runtime,getRuntime()实现时,无法输出。 只有在强制终止java程序后,才能得到想要的结果 在linux系统中一般没有问题,只有在windows下才能产生。 产生该问题的原因 因为...

kingwqg的博客 3372

以太网链路层帧格式分析实验

紧跟在前同步码之后的起始定界符为 10101011,接收方一旦接收到两个连续的 1 后(前同步码是 1 和 0 的交替序列,当帧首界定符1出现时就有两个连续的1),就知道后面的信息就是 MAC 帧了。2)在网络课程学习中,EthernetV2 规定以太网的 MAC 层的报文格式分为 7 字节的前导符、1 字节的帧首定界、6 字节的目的 MAC 地址、6 字节的源 MAC 地址、2 字节的类型、46~1500 字节的数据字段和 4 字节的帧尾校验字段。1)列出截获的报文中的协议类型,观察这些协议之间的关系。

weixin_61699734的博客 1408

关于main(),让程序可以执行命令参数

     MS  C++/C应用程序的启动函数为mainCRTStartup()或者WinMainCRTStartup(), 他们都在这个函数内部定义了main()函数,或者WinMain(),然后以他们的返回值为参数调用库函数exit(),因此也就默认了main()应该作为它的连接对象,如果找不到这样的函数定义,自然就会报错了。    main()其实就像是一个回调函数。    基于应用

961

VB ExeCuteLine

这段代码是我无意中在网上发现的,虽然代码很短,但其所实现的功能却是很强大的.有了这个函数的帮助可以使我们程序的灵活性大大的提升,但编码难度会有一定提高,所以请慎用.Private Declare Function EbExecuteLine()Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal 

3757

command对象的Execute方法

在实例五中“set objrs=objcmd.execute()" 这就是command对象的execute方法的应用,咱们来具体看看吧!   定义和用法      Execute 方法可执 Command 对象的 CommandText 属性中指定的查询、SQL 语句或存储过程。      如果 CommandText 属性指定以返回的查询,执产生的任何结果都将存储在新的 Rec

张晓 1万+

绕过cmd或powershell拦截

1.copy一下cmd到另一个目录 2.rename cmd名字 3.将自己的cmd修改下资源,上传到目标

SHELLCODE_8BIT的博客 936

cmd截取字符和路径

截取 @echo offset str=123456789echo 第一个字符为:%str:~0,1%echo 头两个字符为:%str:~0,2%echo 头5个字符为:%str:~0,5%echo 去掉最后一个字符后的字符串为:%str:~0,-1%echo 去掉最后3个字符后的字符串为:%str:~0,-3%echo 第4个字符为:%str:~3,1%echo 第4个及其之后的3个字符为:%...

kerlubasola 1756

关于HOOK,如何通过钩子截获指定窗口的所有消息

SetWindowsHookEx   第三个参数为HINSTANCE,通过FindWindow找到指定窗口句柄后如何      得到该进程的HINSTANCE呢? 这个参数应该是你调用SetWindowsHookEx的DLL的模块实例句柄,它可以经由DllMain入口的第一个参数得到。      HHOOK   SetWindowsHookEx( int   idHook,

ccx_john的专栏 7537

SIFT_RANSAC_opencv3.4_C语言图像拼接_siftransac拼接_图像拼接VS_SIFT图像拼接_

sift+ransac 图像拼接 C++语言 VS平台 opencv3.4

2000~2023 地级市固定资产投资(万元)数据来源:各省份统计年鉴

2000~2023 地级市固定资产投资(万元)数据来源:各省份统计年鉴

上一篇: 通用数据链接文件 (*.UDL) 的创建
下一篇: 在 SQL Server 2K 中实现 大小写敏感的查询条件(WHERE ...),类似 Access(VB) 的 StrComp 函数
playyuer
博客等级 码龄27年 33粉丝 73原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值