导航:首页 > 编程语言 > vb调用程序shell

vb调用程序shell

发布时间:2021-12-09 12:02:42

A. vb shell语句调用

ef=Shell(App.Path & "\SLF.exe", 1)
改为
CreateObject("Wscript.Shell").Run App.Path & "\SLF.exe", 1, True

B. 如何用VB调用外部程序(非Shell)

'定义常量 以后见到 SYNCHRONIZE 就相当于填写了 &H100000
'即 pHnd = OpenProcess(SYNCHRONIZE, 0, pId) 等于 pHnd = OpenProcess(&H100000, 0, pId)
Const SYNCHRONIZE = &H100000
Const INFINITE = &HFFFFFFFF
'引用系统 API “OpenProcess” 用以获得指定程序进程句柄
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
'引用系统 API “CloseHandle” 关闭句柄
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'引用系统 API “WaitForSingleObject” 用以等待指定句柄的进程执行
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

' 程序范例:(以执行 Notepad 程序为例)

Private Sub Command1_Click()
Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle
pId = Shell("Notepad", vbNormalFocus) ' Shell 传回 Process Id 如 notepad 的 进程ID
pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle 得到 notepad 的进程句柄
If pHnd <> 0 Then '句柄获得成功 则执行if内语句
Call WaitForSingleObject(pHnd, INFINITE) ' 无限等待,直到程序结束
Call CloseHandle(pHnd) '释放句柄
End If

MsgBox "执行结束"
End Sub

我也是菜鸟 只能解释成这样了

C. VB如何用SHELL函数再运行一个程序

你是在Excel里用VBA编程的吧。
shell方法的一般用法是:shell
"程序的路径",[windowstyle]。关于[windowstyle]的类型你在VBA里用F1查一下。
示例:shell
"notepad.exe",1
(这里记事本用的是系统路径,所以不用写全路径)
注意:这个地方是程序的路径而不是文件的路径。如果是打开程序用shell是没有问题的。但是假如你想打开一个非Excel的文件,比如有一个存在C盘上的ppt文件叫My_ppt.ppt,用shell
"c:\test.ppt",1,肯定出错。
要用shell打开其他类型的文件,在shell里用cmd这个命令解释工具
具体语法是:shell
"cmd
/c
c:\My_ppt.ppt",1
(/c绝对不能少,不然看不到效果,至于原因去cmd下help一下)。

D. vb中用shell函数都能调用那些程序急求,谢谢了

vb中调用SHELL用法

一. 调用系统“创建快捷方式”向导
是否为VB不支持创建快捷方式而于着急呢?虽然 您可以调用vb5stkit.Dll中的fCreateShellLink函 数,但它是为安装程序设计的,快捷方式的默认路径 总是从当前用户的“\Start Menu\Programs”开始,也 就是说,如果您的Windows95装在C盘上,您无法通过 fCreateShellLink函数把快捷方式创建到D盘上去。
现在,给大家介绍一种极为方便、巧妙的方法: 用Shell语句调用系统“创建快捷方式”向导。
新建一个项目,在窗体上放一个按钮,双击此按 钮,加入以下代码
Private Sub Command1_Click()
Open App.Path & "\temp.lnk" For Output As #1
Close #1 '以上两句在程序所在目录建立一 个临时文件
Shell "Rundll32.exe AppWiz.Cpl,NewLinkHere
"& App.Path & "\temp.lnk"
End Sub
(注意:Shell语句中NewLinkHere后面跟着一个 空格才是引号,否则将出错。)
运行程序,按一下命令按钮,怎么样?“创建快 捷方式”向导出现了,如果创建成功,快捷方式将取 代临时文件temp.lnk的位置,如果选取消,temp.lnk 也会自动消失。当然,您可以在硬盘的任意位置建立 temp.lnk。好,现在又可以为您的程序增添一项新功 能了。Enjoy!
二. Rundll32.exe的用途
我们知道,用Shell语句只能调用可执行文件,即 exe、com、bat和pif文件,有时我们想要调用其他一 些系统功能该怎么办呢?此时,Windows提供的 Rundll32.exe可大显身手了。下面我们来认识一下这 些用法,也许会给您带来一点惊喜。
1.要打开设置系统时间的控制面板文件 (Timedate.cpl),只需运行如下代码:
Shell "Rundll32.exe
Shell32.dll,Control_RunDLL Timedate.cpl"
至于打开其他控制面板文件,相信您一定能够举 一反三,尝试一下,换个文件名就成了。
2.要运行某一快捷方式(*.lnk)则可以用以下 代码:
She11 "Rundll32.exe url.dll, FileProtocolHandler X" (X代表要运行的文件,包括 路径,下同。
3. 也可以这样写来打开ActiveMovie控制:
Shell "RUNDLL32.EXE amovie.ocx,Rundll",1
而用Shell "RUNDLL32.EXE amovie.ocx,Rundll /play X",1 将直接播放媒体文件。
4. Shell "rundll32.exe desk.cpl,InstallScreenSaver X”当然是安装屏幕保 护啦,如果你写了一个屏幕保护程序,那么可以在安 装程序中写上它,而不一定要装到system目录下。顺 便提一下,VB不是自捞一个“Application Setup Wizard”么?它的VB源代码都在安装目录下的 “\setupkit\setup1”中放着呢,好好把它研究一下。 你完全能做出富有个性的安装程序来。
5.按住shift键,右击某一文件,菜单中会出现 “打开方式”选项,这也许已不是什么秘密。但现在, 用shell "rundll32.exe shell32.dll OpenAs_RunDLL X" 便能直接调用“打开方式”框。
6. 甚至能用这样一句来打印文件(包括HTML所 支持的所有文本与图像格式):
Shell "rundll32.exe MSHTML.DLL,PrintHTML X”, 1

E. 在vb中调用外部程序可以用shell函数,那关闭呢请问

思路:调用taskkill.exe来结束某个程序的进程,代码如下:
Private
Sub
Command1_Click()
Shell
"taskkill
/im
1.exe
/f",
vbHide
'1.exe是要关闭的外部程序
End
Sub

F. vb,关于shell调用cmd执行命令

VB中Shell执行CMD命令使用如下代码

Shell"cmd.exe/c你要执行的命令"

其中要执行的命令中需要注意空格问题 如果一个参数中有空格就需要使用双引号引起来,双引号在VB字符串中使用两个双引号("")表示。

例如:

Shell"cmd.exe/c""d:abc.txt""""d:abc.txt"""


Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
说明
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。
注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。

G. VB 可以这样调用 SHELL 执行《命令行的程序》吗

去掉CALL

H. 请问在VB中如何关闭用shell调用的外部程序呢

可以利用Shell函数调用外部程序后返回PID值的功能将程序关掉,在获得外部程序的PID后,你可以调用命令taskkill或ntsd命令关闭程序,也可以用API编程实现,这里我举个简单的例子(用ntsd命令,格式为 ntsd -c q -p pid):

Dim x '声明外部变量x,作为记录外部程序PID值的变量

Private Sub Command1_Click() '用Command1按钮调用一个外部程序
x = Shell("cmd.exe")
End Sub

Private Sub Command2_Click() '用Command2按钮调用ntsd将其关闭
Dim command As String
command = "ntsd -c q -p " & Str(x)
Shell command, vbHide
End Sub

I. VB6中如何用shell执行如下语句

我并不建议你这么做.
shell语句是可行的,但是你这条语句里有"这个字符
所以用vb实现可以这样.
shell("cmd /c " & 你的一大串)
但是注意!!vb不是别你的"为string而是认为string结束符.
所以你的一大串要这样表示

"reg add " & """ & "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"& """ & " /v Cache /t reg_expand_sz /d " & """ & "%drive_letter%\My Folder\Temporary Internet Files" & """ & " /f"

还有一个方法,就是有点麻烦.
如果愿意的话可以尝试.
建立一个richtextbox,并让被一个按钮挡住(看不到了),然后向其中输入你的dos命令.
用richtextbox的save方法,保存文件到一个固定的文件夹为C.bat
然后shell c.bat
记住,一定要wait=true 然后,等程序执行完,kill

J. VB 程序 调用了一个shell 命令行 返回值的问题

shell "/c xxxx>a.txt" '在执行的命令后面加 ">a.txt" 把结果输出到a.txt
Dim Lstr as String
Open "a.txt" For input As #1'读取结果
Do While Not EOF(1)
Line Input #1, Lstr
Text1.Text = Text1.Text & Lstr & vbcrlf
Loop
Close #1

阅读全文

与vb调用程序shell相关的资料

热点内容
u盘里的文件怎么解压到桌面 浏览:737
神经网络异或问题 浏览:276
韩国伦理片电影免费观看国语版 浏览:67
水针工艺流程图cad源文件 浏览:812
iphone5频率 浏览:326
计算机网络技术出来做什么工作 浏览:733
少儿编程有什么区别 浏览:780
建设网站只有网页怎么办 浏览:219
穿越长征之红星战将txt 浏览:560
无法返回桌面怎么找桌面的文件 浏览:527
刀库650怎么编程 浏览:387
福安电影院今日电影 浏览:816
韩国古装电影推荐 浏览:808
穿越成李世民的孙子 浏览:508
hai chi tai bao chung 浏览:553
oa系统密码忘记 浏览:527
奥维高清卫星地图配置文件下载 浏览:921
三星s8系统不需要的文件 浏览:489
找一本小说主角叫赵无极 浏览:717

友情链接