VB Shell函数用法

示例代码:
1.打开记事本
Private Sub Command1_Click()
Shell "Notepad E:¥VB练习¥添加DTPicker控件.txt ",
vbNormalFocus
End Sub
注:NotePad后有空格
2.打开QQ登陆界面
Private Sub Command2_Click()
Shell "D:¥Program Files¥Tencent¥QQ2009¥Bin¥qq.exe", vbNormalFocus
End Sub
3.打开Word文档
Private Sub Command3_Click(Index As Integer)
Dim strDir As String
strDir = "E:¥VB练习¥Test.doc"
Select Case Index
Case 0
Shell "C:¥Program Files¥Microsoft
Office¥OFFICE11¥WINWORD.EXE " & strDir, vbHide Case 1
Shell "C:¥Program Files¥Microsoft
Office¥OFFICE11¥WINWORD.EXE " & strDir, vbNormalFocus
Case 2
Shell "C:¥Program Files¥Microsoft
Office¥OFFICE11¥WINWORD.EXE " & strDir, vbMinimizedNoFocus Case 3
Shell "C:¥Program Files¥Microsoft
Office¥OFFICE11¥WINWORD.EXE " & strDir, vbNormalNoFocus Case 4
Shell "C:¥Program Files¥Microsoft
Office¥OFFICE11¥WINWORD.EXE " & strDir, vbMaximizedFocus End Select
End Sub
注:C:¥Program Files¥Microsoft Office¥OFFICE11¥WINWORD.EXE之后有空格
* 在开始->运行里面能执行的命令用shell函数也行
Shell的语法:Shell(PathName[,WindowStyle])。

PathName为必需参数。

类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变量,也可以包括路径名。

WindowStyle为可选参数。

Integer类型,指定在程序运行时窗口的样式。

WindowStyle有以下这些值。

常量值描述
VbHide 0 窗口被隐藏,且焦点会移到隐式窗口。

VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。

VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示(缺省值)。

VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。

VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。

VbMinimizedNoFocus 6 窗口会以一个图标来显示,而当前活动的窗口仍然保持活动。

合集下载

VB 调用EXE文件

VB 调用EXE文件

VB 调用EXE文件一、调用方法有三种方法 :)ShellExecute函数WinExec函数Shell函数1.ShellExecuteVB声明Declare Function ShellExecute Lib "shell32.dll " Alias "ShellExecuteA " (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long说明查找与指定文件关联在一起的程序的文件名返回值Long,非零表示成功,零表示失败。

会设置GetLastError[参数表]参数类型及说明hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它lpFile String,想用关联程序打印或打开一个程序名或文件名lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数lpDirectory String,想使用的完整路径nShowCmd Long,定义了如何显示启动程序的常数值。

参考ShowWindow函数的nCmdShow参数2.WinExecVB声明Declare Function WinExec Lib "kernel32 " Alias "WinExec " (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long说明运行指定的程序返回值Long,大于32表示成功,请参考FindExecutable函数[参数表]参数类型及说明lpCmdLine String,包含要执行的命令行nCmdShow Long,定义了以怎样的形式启动程序的常数值。

shell-函数之参数使用详解

shell-函数之参数使用详解

shell-函数之参数使⽤详解参数的调⽤⽅法在其他语⾔中,函数参数分为形参和实参,其中,形参是函数定义时就指定的参数;⽽实参是函数被调⽤时才指定的参数(通常放在括号⾥,参数之间⽤逗号隔开)shell的函数参数⽐较特殊,实际上shell将脚本的参数和函数的参数统⼀处理,怎么调⽤脚本参数就怎么调⽤函数参数。

function_name arg arg1 arg2 ...function_name是函数名,arg表⽰函数参数,通过空格隔开。

通过位置变量接受函数参数和shell脚本相同,shell函数通过系统变量获取参数值。

从命令⾏传递给shell函数的参数叫做位置参数,shell会根据参数的位置来接受对应的值。

在shell内部,⽤户可以通过⼀系列的系统变量来获取参数,这些变量的名称都是固定的,⾮常简单,只⽤⼀个字符表⽰,例如$0表⽰脚本名称;$1表⽰传递的第⼀个参数......常⽤于参数传递的系统变量变量说明$n n是⼀个参数,从1开始表⽰参数的位置,例如:$1表⽰第⼀个参数,$2表⽰第⼆个参数$#命令⾏参数的个数$0当前shell脚本的名称$?前⼀个命令或者是函数的返回状态码,0代表执⾏成功,⾮0即失败$*以”参数1参数2....“的形式将所有函数通过⼀个字符串返回$@以”参数1“”参数2“....的形式返回每个参数$_保存之前执⾏的命令的最后的⼀个参数举个简单的例⼦:#!/bin/bashfunc (){echo "这是第 $2 个参数"echo "这是第 $4 个参数"echo "这是第 $1 个参数"}func 1 2 3 4输出结果为:shift移动位置参数shift命令可以使位置参数向左移。

⽐如shift 3表⽰位置参数$4 向左移动三变成 $1,原来的$5现在变成$2,⽽原来的$1、$2、$3丢弃,** 因为$0是脚本名嘛!**。

VB常用函数用法详解

VB常用函数用法详解

V B函数数学函数Abs函数语法:Abs(number)绝对值返回一数值的绝对值。

参数number可以是任何数值表达式。

如果number的值为Null,则返回Null;如果其参数是没有初始值的变数,则返回0。

注解:一个数值的绝对值就是将正负号去掉以后的值。

例如Abs(-1)和A bs(1)的返回值都是1。

Atn函数语法:Atn(number)反正切该函数返回参数的「反正切」(arctangent)值。

参数number可以是任何有效的数值表达式。

注解:Atn函数的参数(number)是直角三角形中构成直角两边的比值(正切函数值),其返回值则为相对应之底角的度数,以「弧度」为单位。

正切函数值(number)的算法为「对边除以邻边」。

返回值的范围落在pi/2到pi/2的「弧度」之间。

「角度」与「弧度」的转换方法为:将「角度」乘以pi/180即为「弧度」。

反过来将「弧度」乘以180/pi便得「角度」。

Cos函数余弦函数语法:Cos(number)该函数返回一角度的cosine(余弦函数)值。

参数number可以是任何有效的数值表达式,其值代表一个角度,以「弧度」为单位。

注解:Cos函数的参数表示角度,返回值为该角度两邻边的比值。

其比值的定义为「连接另一锐角的邻边除以连接直角的邻边」。

返回值的范围在-1到1之间。

Exp函数语法:Exp(number)自然对数之底数该函数返回e(自然对数之底数)的某次方。

参数number可以是任何的数值表达式。

注解:如果number的值超过e的值大约是2.718282。

Log函数自然对数值语法:返回参数的自然对数值。

Log(number)参数number可以是任何的数值表达式,条件是参数值必须大于0。

注解:自然对数是以e为底数的对数。

常数e的值大约是2.718282。

VB函数Rnd函数随机数语法:Rnd[(number)]返回一个随机数。

参数number可以是任何的数值表达式。

vb中5种打开文件夹浏览框的方法总结

vb中5种打开文件夹浏览框的方法总结

vb中5种打开文件夹浏览框的方法总结:文件夹打开方法浏览v b vb打开文件夹浏览框vb记录文件夹路径vb文件夹列表框篇一:VB打开文件夹浏览框的方法总结vb中5种打开文件夹浏览框的方法总结文章录入:浣花溪责任编辑:snow 1038【字体:小大】by daokers众所周知,在vb中如果是打开某一个文件的话,非常简单,使用CommonDialog组件即可轻松完成,但是他只能选择文件,之后或许选取的文件路径,而如果想要浏览文件夹,就没这么方便了。

这里介绍3个办法来实现文件夹浏览。

第一个非常简单,利用Shell对象程序代码'引用Microsoft Shell Controls And AutomationDim ShellA As New ShellPrivate Sub Command1_Click() '建立一个按钮对象Dim Shellb As FolderSet Shellb = ShellA.BrowseForFolder(0, 选择文件夹, 0)ShellA.Open bEnd Sub记得一定要引用Microsoft Shell Controls And Automation第二种方法,我们同样利用shell对象,但是加几个函数程序代码'引用Microsoft Shell Controls And AutomationPrivate shlShell As Shell32.ShellPrivate shlFolder As Shell32.FolderPrivate Const BIF_RETURNONLYFSDIRS = &H1Private Sub Command1_Click() 'If shlShell Is Nothing ThenSet shlShell = New Shell32.ShellEnd IfSet shlFolder = shlShell.BrowseForFolder(Me.hWnd, 请选择文件夹,BIF_RETURNONLYFSDIRS)If Not shlFolder Is Nothing ThenMsgBox shlFolder.Items.Item.Path '测试End IfEnd Sub上面2个方法的结果如图:第三个方法,是利用API来操作。

如何在VB中截获shell程序的输出

如何在VB中截获shell程序的输出

在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管道输出重定向到我们⾃定义的管道。

下⾯的代码可以启动⼀个shell程序,并将其输出截获。

'执⾏并返回⼀个命令⾏程序(shell程序)的标准输出和标准错误输出'通常命令⾏程序的所有输出都直接送到屏幕上Private Function ExecuteApp(sCmdline As String) As String Dim proc As PROCESS_INFORMATION, ret As Long Dim start As STARTUPINFO Dim sa As SECURITY_ATTRIBUTES Dim hReadPipe As Long '负责读取的管道 Dim hWritePipe As Long '负责Shell程序的标准输出和标准错误输出的管道 Dim sOutput As String '放返回的数据 Dim lngBytesRead As Long, sBuffer As String * 256 sa.nLength = Len(sa) sa.bInheritHandle = True ret = CreatePipe(hReadPipe, hWritePipe, sa, 0) If ret = 0 Then MsgBox "CreatePipe failed. Error: " & stDllError Exit Function End If start.cb = Len(start) start.dwFlags = STARTF_USESTDHANDLES Or STARTF_USESHOWWINDOW' 把标准输出和标准错误输出重定向到同⼀个管道中去。

VB及VBA中shell的使用

VB及VBA中shell的使用

VB 中,常以Shell指令来执行外部程式,然而它在Create该外部process 後,立刻就会回到vb 的下一行程式,无法做到等待该Process结束时,才执行下一行指令,或是说,无法得知该Process是否已结束,甚者,该Process执行到一半,又该如何中止其执行等等,这些都不是Shell指令所能控制的,因此我们需使API的帮助来完成。

第一个问题,如何等待shell所Create的process结束後才往後执行vb的程式。

首先要知道的是,每个Process有唯一的一个ProcessID,这是OS给定的,用来区别每个Process,这个Process ID(PID)主要可用来取得该Process相对应的一些资讯,然而要对该Process的控制,却大多透过 Process Handle(hProcess)。

VB Shell指令的传回值是PID,而非hProcess,所以我们需透过OpenProcess这个API来取得 hProcess而OpenProcess()的第一个参数,指的是所取得的hProcess所具有的能力,像 PROCESS_QUERY_INFORMATION 便是让GetExitCode()可取得hProcess所指的process之状态,而PROCESS_TERMINATE,便是让 TerminateProcess(hProcess..)的指令能够生效,也就是说,不同参数设定,使hProcess所具有的权限、能力有所不同。

取得hProcess後便可以使用WaitForSingleObject()来等待hProcess状态的改变,也就是说,它会等待 hProcess所指的process执行完,这个指令才结束,它第二个参数所指的是 WaitForSingleObject()所要等待的时间(in milliseconds ),如果超过所指的时间,就TimeOut而结束WaitForSingleObject()的等待。

vb6.0语句大全讲解

Vb6.0语句大全1、AppActivate 语句激活一应用程序窗口。

语法AppActivate title[, wait]AppActivate语句的语法具有以下几个命名参数:说明AppActivate语句将焦点移动到命名的应用程序或窗口,但并不影响焦点是否最大化或最小化。

当用户采取行动改变焦点或将窗口关闭时,就会将焦点从活动的应用程序窗口移动出去。

可用Shell函数启动一个应用程序并设置窗口样式。

在决定激活哪个应用程序时,请将title与每一个运行中的应用程序的标题字符串进行比较。

如果没有完全匹配,就激活任何这样的应用程序,其标题字符串以title开头。

如果以title命名的应用程序有很多实例,则激活任何一个实例。

AppActivate 语句示例本示例说明使用AppActivate语句来激活应用程序的各种用法。

示例中用到的Shell语句均假定该应用程序已经存在指定的路径中。

Dim MyAppID, ReturnValueAppActivate "Microsoft Word" ' 激活 Microsoft Word。

' AppActivate 也可利用 Shell 函数的返回值。

MyAppID = Shell("C:\WORD\WINWORD.EXE", 1) ' 运行 Microsoft Word。

AppActivate MyAppID ' 激活 Microsoft Word。

' 您也可使用 Shell 函数的返回值。

ReturnValue = Shell("c:\EXCEL\EXCEL.EXE",1) ' 运行 Microsoft Excel。

AppActivate ReturnValue ' 激活 Microsoft Excel。

2、Beep 语句通过计算机喇叭发出一个声调。

017 用VB中的shell方法调用其它程序的通用方法

用VB中的shell方法调用其它程序的通用方法在很多情况下,我们需要在应用程序中直接打开电脑中的某个文件,如excel、word、ppt、图片、视频等文件。

那么这时候就需要使用到shell命令。

但是shell命令中的参数传递也是非常有讲究的,对于第一次使用的人来说,很可能会难以理解,并且加上此类知识在网上也很难找到,所以会导致学习起来非常困难。

本节课程,我们就一起来学习如何使用shell命令打开任意格式的文件吧。

shell方法作用:执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。

语法:Shell(pathname[,windowstyle])参数:pathname:必要参数。

用来指定要执行的程序名。

windowstyle:可选参数。

表示程序运行时的窗口样式。

缺省效果是:以具有焦点的最小化窗口来执行。

参数windowstyle的取值范围:0:窗口被隐藏,且焦点会移到隐式窗口1:窗口具有焦点,且会还原到它原来的大小和位置。

2:窗口会以一个具有焦点的图标来显示。

3:窗口是一个具有焦点的最大化窗口。

4:窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。

6:窗口会以一个图标来显示。

而当前活动的的窗口仍然保持活动。

说明:shell函数执行成功后,会返回一个任务ID,用来指明正在运行的程序。

如果执行失败,则会出现错误。

另外,shell命令是采用的多进程执行方法,即使shell命令还未执行完成,其下面的代码就已经开始执行了。

举例:打开任意一个文件的方法。

步骤一:新建工程,添加一个命令按钮,添加一个CommonDialog控件。

步骤二:添加代码。

步骤三:运行代码,测试效果。

可以打开任意文件(电脑必须有可执行此文件的应用软件)。

代码重点分析:CommonDialog控件可以调出打开对话框,用来选择文件,并获取文件路径。

该控件需要额外添加,添加方法为:在工具箱空白处右键弹出快捷菜单,选择部件,弹出部件对话框,在控件页面找到Microsoft Common Dialog Control 6.0(SP6)。

shell function 用法

shell function 用法1. 什么是 shell functionShell function 是指一段可重复使用的代码片段,用于实现特定的功能。

类似于其他编程语言中的函数,它可以接收参数,执行特定的操作,并返回结果。

2. shell function 的定义和调用2.1 定义 shell function在 Shell 脚本中,可以使用关键字function或直接使用函数名来定义一个函数。

函数定义的一般语法如下:function_name() {# 函数体}为了提高代码的可读性和可维护性,建议在函数体的开头加上一些注释来描述函数的功能和输入输出等信息。

2.2 调用 shell function定义了函数之后,可以在 Shell 脚本的任意位置使用函数名来调用函数。

调用函数的一般语法如下:function_name 参数1 参数2 ...调用函数时,可以传递多个参数,函数内部可以通过变量名${n}来获取对应位置的参数值。

3. shell function 的返回值Shell function 的返回值分为两种:状态码和输出结果。

3.1 状态码状态码是一个整数值,用于表示函数执行的状态。

通常情况下,状态码为 0 表示函数执行成功,非零值表示函数执行失败或出现错误。

函数内部可以通过return命令来设置状态码,例如:return 0 # 执行成功return 1 # 执行失败3.2 输出结果除了状态码之外,函数还可以通过直接输出或通过变量返回一个或多个结果。

下面是几种常见的输出方式:3.2.1 直接输出函数可以直接使用echo或printf等命令来输出结果,例如:function_name() {echo "Hello, world!"}3.2.2 使用变量返回结果函数可以通过变量来返回结果。

在函数内部,可以使用return命令将结果保存到一个变量中,并在函数调用处使用,例如:function_name() {local result="Hello, world!"return "${result}"}output=$(function_name)echo "${output}" # 输出 "Hello, world!"4. shell function 的参数传递4.1 位置参数在调用函数时,可以传递多个参数给函数。

vb6.0的各种SHELL,CMD内部命令、外部命令、SHELL任意文件


23 If k = 0 Then myShell = False
24 Exit Function
25 shellError:
26 myShell = False
27 End Function
28 'SHELL DOS的内部命令
29 Public Sub ShellDocIn(ByVal strCmd As String)
9 If nLs <= 32 Then
10
ShellAll = False
11 End If
12 Exit Function
13 ShellAllErr:
14 Err.Clear
15 ShellAll = False
16 End Function
17 '不提示错误的shell,可SHELL外部DOs命令
5 ShellAll = True
6 strFilePath = Trim(strFilePath)
7 Dim nLs As Long
8 nLs = ShellExecute(nHwnd, "open", strFilePath, vbNullString, strCanShu, vbNormalFocus)
2 '能打开任意文件的shell
3 Public Function ShellAll(nHwnd As Long, ByVal strFilePath As String, Optional ByVal strCanShu As String = "") As Boolean
4 On Error GoTo ShellAllErr
18 Public Function myShell(strFile As String) As Boolean
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档