重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
两种方法
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了天桥免费建站欢迎大家使用!
1.
Shell(""Explorer.exe", AppWinStyle.NormalFocus")
2.
Dim proc As New Process
proc.StartInfo.FileName="Explorer.exe"
proc.Start
方法2给予更多的控制,如结束进程的方法Kill
Shell "notepad.exe c:\1.txt", vbNormalFocus
或
i=Shell( "notepad.exe c:\1.txt", vbNormalFocus)得到返回值
使用Shell函数函数。
Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。
Shell的语法:Shell(PathName[,WindowStyle])。
PathName 为必需参数。类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变量,也可以包括路径名。
WindowStyle为可选参数。Integer类型,指定在程序运行时窗口的样式。WindowStyle有以下这些值。
示例,打开当前程序所在目录下的TEMP.EXE文件:
Dim a As Integer
a = Shell(App.Path "\TEMP.EXE")
因为process.start(EXEA)是VB.net
debug下这个exe打开的,所以如果EXEA里面用到了相对路径,那必然是指向VB.net
debug下的,除非在EXEA中使用绝对路径,如果EXEA你无法更改则只能用VB.net
debug下这个exe来控制了,比如EXEA如果要在他自己的目录下去找一个文件,那你就用exe把这个文件复制到VB.net
debug下
Dim myexe As Integer
myexe = Shell("xxx.exe")
AppActivate(myexe)
System.Threading.Thread.Sleep(50)
System.Windows.Forms.SendKeys.Send("帐号")
System.Threading.Thread.Sleep(50)
System.Windows.Forms.SendKeys.Send("{tab}")
System.Threading.Thread.Sleep(50)
System.Windows.Forms.SendKeys.Send("密码")
System.Threading.Thread.Sleep(50)
System.Windows.Forms.SendKeys.Send("{Enter}")
有的时候会出现发送不完全,我也正在寻找更好的方法,多多交流。
可以把你要打开的那个些程序的可执行文件放在和你的过程文件同一个文件夹(或者更深级别的文件夹)中,然后在那个代码中使用相对路径取得那些可执行文件名打开就可以了,这样不管你要打开的那些程序放在什么地方,这样和你的工程文件的相对位置保持不变,就不会有问题的,有必要时可以将VB工程文件生成可执行文件,然后制作成免安装程序,这样即使到了没有安装VB6的电脑上,也可以正常运行的,必要时将那个免安装文件的运行文件创建一个快捷方式图标放到桌面上就可以了,挺简单的。引用相对路径打开程序的代码如下(假如你要打开的程序可执行文件放在和VB工程文件同级别的“程序”文件夹中):
Private
Sub
登陆_Click()
X
=
Shell(App.Path
"\程序\update.exe",
1)
End
Sub