用vbs打开文件
set ws=createobject("wscript.shell")
ws.run"打开文件所使用的程序+空格+程序路径",x,ture
Run方法有三个参数:
第一个参数:是你要执行的程序的路径,
第二个参数:是窗口的形式,0后台运行;1正常运行;2最小化;3最大化;缺省的话表示正常运行
第三个参数:是表示这个脚本是等待还是继续执行,如果设为了True,脚本就会等待调用的程序退出后再向后执行。
第二个参数可取值为下面为可选值:
0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。
dim wsh
set wsh=wscript.createobject("wscript.shell")
wsh.run "notepad.exe c:\test.vbs",1,ture '指定文件打开程序
wsh.run "c:\test.doc",1,ture '使用系统默认程序打开文件
set wsh=nothing
如果你希望使用记事本打开程序,而不是直接运行,那么就指定文件的打开程序。
例1:打开记事本和IE浏览器
Set ws = CreateObject("WScript.Shell")
ws.Run "notepad",,True
ws.Run "iexplore"
例2:隐藏BAT执行窗口
Set ws = CreateObject("WScript.Shell")
ws.Run "x.bat",0
例3:运行cmd命令,执行netstat并保存执行结果到x.txt
Set ws = CreateObject("WScript.Shell")
ws.Run "cmd /c netstat -an>>x.txt",0
例4:结束IE的进程
Set ws = CreateObject("WScript.Shell")
ws.Run "taskkill /f /im iexplore.exe",0
============================================================
补充:
这里有个类似的方法就是Exec 方法,具体看下面的例子
例1:运行文件
Set ws = CreateObject("WScript.Shell")
ws.Exec "notepad c:\x.txt" '对于Exec应指明程序,此notepad是必须的
例2:运行程序>获取进程PID值>强行结束进程(没有Run+taskkill强:如在记事本未保存的情况下结束进程,Exec会出错,而Run不会)>判断进程是否在运行(这个功能不错)
Set ws = CreateObject("WScript.Shell")
Set e = ws.Exec("notepad")
MsgBox e.ProcessId
e.Terminate
WSH.Sleep 1000
MsgBox e.Status '0为运行,1为结束
例3:直接获取dos命令输出,dos窗口会闪一下,Exec没有窗口控制功能
Set ws = CreateObject("WScript.Shell")
Set e = ws.Exec("ipconfig")
MsgBox e.Stdout.ReadAll
例4:
Set ws = CreateObject("WScript.Shell")
Set e = ws.Exec("cmd /c echo Hi")
MsgBox e.Stdout.ReadAll
出处:http://wenwen.soso.com/z/q390167953.htm
出处:http://foxroom.diandian.com/post/2011-05-21/947745
用vbs打开文件的更多相关文章
- 使用VBS打开程序和关闭程序
下面这个是先执行程序后,然后再结束程序. Dim Wsh Set Wsh = WScript.CreateObject("WScript.Shell") '下行是设置延时启动时间 ...
- xp添加右键"打开文件所在位置"
以下代码保存为czmb.vbs文件并放在C:\windwos目录下: Set OS = GetObject("winmgmts:\\.\root\cimv2")Set CF = O ...
- VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答
用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...
- 利用注册表在右键添加VS15的快捷方式打开文件夹
1.简介 最近安装VS15 Preview 5,本版本可以打开"文件夹" 是否可以向Visual Studio Code一样在文件夹或文件右键菜单添加"Open with ...
- 新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法
1,到官网下载最新的boost,www.boost.org 这里我下载的1-63版本. 2,安装,解压后运行bootstrap.bat文件.稍等一小会就OK. 3,编译boost库.注意一定要使用VS ...
- 【Win10应用开发】通过拖放来打开文件
除了可以使用XXXFilePicker来浏览文件外,其实在UWP APP中,也可以向传统Windows窗口一样,通过拖放的方式来打开文件. 处理过程和WPF的原理差不多,毕竟都是一脉相承,于是,在学习 ...
- Visual Studio 打开解决方案后 弹出框显示 "正在打开文件..." 迟迟没反应 的解决方法
Visual Studio 打开解决方案后 弹出框显示 "正在打开文件...",任务管理器的devenv进程又很正常,不会显示"未响应". 而IDE的左下角有个 ...
- Unix内核中打开文件的表示
Unix内核中已经打开文件,通过三种数据结构表示: 每个进程的进程表中的记录项,包含打开的文件的文件描述符表,与之关联的是: 文件描述符标识 指向一个文件表项的指针 内核为所有打开文件维持一张文件表, ...
- Linux内核分析:打开文件描述符实现
在Linux中每一个进程的数据是存储在一个task_struct结构(定义在sched.h中)中的. struct task_struct { volatile long state; /* -1 u ...
随机推荐
- hdu2510 爆搜+打表
符号三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 根据条件设置poplist的值集
需求:在当前页面的pageButtonBar中有一个下拉选择框,选择框中的值集根据某些条件有不同. public class SupplierInfoReviewCO extends OAContro ...
- 管道pipe与dup结合使用,应用实例
管道的一种常见用法:在父进程创建子进程后向子进程传递参数.例如,一个应用软件有一个主进程和很多个不同子进程. 主进程创建子进程后,在子进程调用exec函数执行一个新程序前,通过管道给即将执行的程序传递 ...
- sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量
1.列出当前db文件中所有的表的表名 SQL语句:SELECT * FROM sqlite_master WHERE type='table'; 结构如下: 注:网上有人说可以带上db文件的名称,如: ...
- PHP:第一章——PHP中逻辑运算符的使用方法
//逻辑运算符 $a=;$b=;$c=;$d=; //逻辑与(and 和 &&)他们两个的逻辑是一样的,如果两个值都为true,结果才为true,否则是false. //var_dum ...
- jw
1. ISO/OSI参考模型(七层) 应表会传 传输介质(双绞线,同轴电缆等)不在OSI7个层次之内 电气特性:电压表示0,1: 机械特性:接口形状,尺寸等 过程特性:出现顺序及信号线的工作原理 ...
- QRCodeHelper 二维码生成
QRCodeHelper 二维码生成 using System; using System.Drawing; using ThoughtWorks.QRCode.Codec; using System ...
- Java——多线程面试问题
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- C++11标准的类型别名
1.typedef 类型名 类型别名(类型别名列表):这是传统的C++类型别名声明. 2.C++11标准下,使用using,即using 类型别名=类型名.
- 谷歌Gmail诞生记:十年回首
美国<时代>周刊网络版今天刊登题为<Gmail诞生记:10年前鲜为人知的故事>(How Gmail Happened: The Inside Story of Its Laun ...