iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用VB.NET的shell程序
  • 868
分享到

如何使用VB.NET的shell程序

2023-06-17 20:06:03 868人浏览 薄情痞子
摘要

这篇文章主要介绍如何使用VB.NET的shell程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.net经过长时间的发展,很多用户都很了解VB.NET了,这里我发表一下个人理解,和大家讨论讨论。在windows

这篇文章主要介绍如何使用VB.NETshell程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

VB.net经过长时间的发展,很多用户都很了解VB.NET了,这里我发表一下个人理解,和大家讨论讨论。在windows环境下的所谓shell程序就是dos命令行程序,比如VC的CL.exe命令行编译器,jdk的javac编译器,启动java程序用的java.exe都是标准的shell程序。截获一个shell程序的输出是很有用的,比如说您可以自己编写一个IDE(集成开发环境),当用户发出编译指令时候,你可以在后台启动shell调用编译器并截获它们的输出,对这些输出信息进行分析后在更为友好的用户界面上显示出来。为了方便起见,我们用VB作为本文的演示语言。

通常,系统启动Shell程序时缺省给定了3个I/O信道,标准输入(stdin),标准输出stdout,标准错误输出stderr。之所以这么区分是因为在早期的计算机系统如PDP-11的一些限制。那时没有GUI,将输出分为stdout,stderr可以避免程序的调试信息和正常输出的信息混杂在一起。通常,shell程序把它们的输出写入标准输出管道(stdout)、把出错信息写入标准错误管道(stderr)。缺省情况下,系统将管道的输出直接送到屏幕,这样一来我们就能看到应用程序运行结果了。为了捕获一个标准控制台应用程序的输出,我们必须把standOutput和standError管道输出重定向到我们自定义的管道。

下面的代码可以启动一个VB.NET shell程序,并将其输出截获。执行并返回一个命令行程序(shell程序)的标准输出和标准错误输出'通常命令行程序的所有输出都直接送到屏幕上

PrivateFunctionExecuteApp(sCmdlineAsString)  AsStringDimprocAsPROCESS_INFORMATION,  retAsLongDimstartAsSTARTUPINFO  DimsaAsSECURITY_ATTRIBUTESDimhReadPipeAsLong'负责读取的管道  DimhWritePipeAsLong'负责Shell程序的标准输出和标准错误输出的管道  DimsOutputAsString'放返回的数据  DimlngBytesReadAsLong,  sBufferAsString*256sa.nLength=Len(sa)  sa.bInheritHandle=Trueret=CreatePipe(hReadPipe,  hWritePipe,sa,0)Ifret=0ThenMsgBox "CreatePipefailed.Error:"&Err.LastDllErrorExitFunction  EndIfstart.cb=Len(start)  start.dwFlags=STARTF_USESTDHANDLESOrSTARTF_USESHOWWINDOW'把标准输出和标准错误输出重定向到同一个管道中去。  start.hStdOutput=hWritePipestart.hStdError=hWritePipestart.wShowWindow=SW_HIDE'隐含shell程序窗口'启动shell程序,sCmdLine指明执行的路径  ret=CreateProcessA(0&,sCmdline,sa,sa,  True,NORMAL_PRIORITY_CLASS,_0&,0&,start,proc)  Ifret=0ThenMsgBox"无法建立新进程,错误码:  "&Err.LastDllErrorExitFunctionEndIf'本例中不必向shell程序送信息,因此可以先关闭  hWritePipeCloseHandlehWritePipe'循环读取shell程序的输出,每次读取256个字节。  Doret=ReadFile(hReadPipe,sBuffer,256,lngBytesRead,0&)  sOutputsOutput=sOutput&Left$(sBuffer,lngBytesRead)LoopWhileret<>0'如果ret=0代表没有更多的信息需要读取了'释放相关资源  CloseHandleproc.hProcessCloseHandleproc.hThreadCloseHandlehReadPipeExecuteApp=sOutput'输出结果EndFunction

我对这个程序进行一些解释。

ret=CreatePipe(hReadPipe,hWritePipe,sa,0)

再把VB.NET shell程序的标准输出和标准错误输出都定向到我们预先建好的管道中。
代码如下:

start.dwFlags=STARTF_USESTDHANDLESOrSTARTF_USESHOWWINDOW start.hStdOutput=hWritePipe start.hStdError=hWritePipe

好,现在可以调用建立新进程的函数了:

ret=CreateProcessA(0&,sCmdline,sa,sa,True,NORMAL_PRIORITY_CLASS,0&,0&,start,proc)


然后,循环读管道里的数据直到无数据可读为止。

Do  ret=ReadFile(hReadPipe,sBuffer,256,lngBytesRead,0&)'每次读256字节  sOutputsOutput=sOutput&Left$(sBuffer,lngBytesRead)'送入一个字符串中  LoopWhileret<>0'若ret=0表明没有数据等待读取。

然后,释放不用的资源。

VB.NET shell程序用法很简单:比如:

MsgBoxExecuteApp("c:\windows\command\mem.exe)

以上是“如何使用VB.NET的shell程序”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何使用VB.NET的shell程序

本文链接: https://www.lsjlt.com/news/292861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用VB.NET的shell程序
    这篇文章主要介绍如何使用VB.NET的shell程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET经过长时间的发展,很多用户都很了解VB.NET了,这里我发表一下个人理解,和大家讨论讨论。在Windows...
    99+
    2023-06-17
  • 如何快速使用VB.NET搜索程序
    这篇文章主要为大家展示了“如何快速使用VB.NET搜索程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何快速使用VB.NET搜索程序”这篇文章吧。如何更好的使用VB.NET搜索程序的前一个运...
    99+
    2023-06-17
  • 如何用VB.NET编写托盘程序
    这篇文章主要介绍如何用VB.NET编写托盘程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文程序的设计及运行环境(1)Windows 2000 Service(2)Net Framework SDK 正式版VB....
    99+
    2023-06-17
  • 如何使用Go在Shell中运行程序?
    Go语言是一种开发高效、高可靠性和高性能软件的编程语言,它具有静态类型、垃圾收集和并发编程等特性。如果您想在Shell中使用Go语言运行程序,这篇文章将为您提供一些基本的指导和步骤。 安装Go语言环境 在开始使用Go语言编写程序之前,...
    99+
    2023-06-14
    shell ide path
  • VB.NET如何实现通信程序
    这篇文章主要为大家展示了“VB.NET如何实现通信程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何实现通信程序”这篇文章吧。1 mscomm.vbx通信控件描述 mscomm....
    99+
    2023-06-17
  • VB.NET如何编写托盘程序
    小编给大家分享一下VB.NET如何编写托盘程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!托盘程序是指这样一类程序:当程序运行后,会在系统的托盘区(也有说是状态...
    99+
    2023-06-17
  • 如何在 Linux 上使用 Shell 编写 Django 程序
    在 Linux 上使用 Shell 编写 Django 程序 Django 是一个开源的 Web 框架,它基于 Python 编程语言,拥有良好的可扩展性和高度的安全性,因此在 Web 开发领域中得到了广泛的应用。在 Linux 上使用 D...
    99+
    2023-10-15
    django linux shell
  • 如何用VB.NET创建三层结构的应用程序
    这篇文章主要为大家展示了“如何用VB.NET创建三层结构的应用程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何用VB.NET创建三层结构的应用程序”这篇文章吧。经过长时间学习ASP.NET...
    99+
    2023-06-17
  • 如何使用Shell编程
    本篇内容介绍了“如何使用Shell编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基础知识shell执行方式   sh...
    99+
    2023-06-09
  • VB.NET如何使用Log4Net
    这篇文章主要为大家展示了“VB.NET如何使用Log4Net”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何使用Log4Net”这篇文章吧。首先,添加VB.NET使用log4net...
    99+
    2023-06-17
  • 如何使用VB.NET中的ANY
    这篇文章将为大家详细讲解有关如何使用VB.NET中的ANY,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们在使用指针的时候会运到很多问题,不知道你们在编程中遇到过没有,这里把我也前遇到的问题分享给大家一...
    99+
    2023-06-17
  • VB.NET如何编写DEC加密程序
    这篇文章主要为大家展示了“VB.NET如何编写DEC加密程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何编写DEC加密程序”这篇文章吧。在VB.NET编写DEC加密程序是很容易...
    99+
    2023-06-17
  • 如何在 Django 中使用 Python shell 调试应用程序?
    Django 是一个流行的 Python Web 应用程序框架,它提供了许多便利的功能来帮助开发人员快速构建 Web 应用程序。在开发过程中,有时我们需要调试应用程序以找出错误并进行修复,这时 Python shell 就会派上用场了。在本...
    99+
    2023-09-27
    关键字 shell django
  • Shell AWK编程如何使用
    这篇文章主要介绍“Shell AWK编程如何使用”,在日常操作中,相信很多人在Shell AWK编程如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell AWK编程如...
    99+
    2023-07-02
  • 如何使用 ASP shell 容器存储优化你的应用程序?
    ASP Shell 容器是一种用于运行 ASP.NET 应用程序的虚拟化容器。它可以帮助开发人员将应用程序的部署和运行过程进行优化和简化,提高应用程序的性能和可靠性。在本文中,我们将介绍如何使用 ASP Shell 容器存储优化你的应用程序...
    99+
    2023-06-24
    shell 容器 存储
  • VB.NET和VB6.0开发之如何使用ASP.NET 2.0构建Web应用程序
    这篇文章主要介绍VB.NET和VB6.0开发之如何使用ASP.NET 2.0构建Web应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!简介如果您跟我一样,就是说您也主要是开发桌面应用程序。但桌面开发人员有时也需...
    99+
    2023-06-17
  • VB.NET如何使用Sorted Lists
    小编给大家分享一下VB.NET如何使用Sorted Lists,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Visual Basic.NET是基于微软.NET F...
    99+
    2023-06-17
  • 如何使用VB.NET XmlReader类
    这篇文章给大家分享的是有关如何使用VB.NET XmlReader类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、操作XML有两个方法 1.使用MSXML MSXML 是XML的分析器,MSXML是一个基于C...
    99+
    2023-06-17
  • VB.NET如何使用TextBox类
    这篇文章主要为大家展示了“VB.NET如何使用TextBox类”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何使用TextBox类”这篇文章吧。TextBox组件(文本框组件)是一...
    99+
    2023-06-17
  • VB.NET中FileSystemWatcher如何使用
    这篇文章给大家介绍VB.NET中FileSystemWatcher如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VB.NET使用FileSystemWatcher侦听文件系统更改通知,并在目录或目录中的文件发生...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作