关于VB怎么调用外部EXE后的参数

求教大神,我的目的是
1.先输入判断为IP地址后,进入选项
2.然后进入某个目录后,点击,执行同目录(由于相制作程序,采用相对路径)下的1.exe 后面还要加参数,连接刚才的IP地址才能执行,例如 :1.exe connect var
3.成功连接该IP地址后,再进行例如:执行 1.exe rm *.mp3等

Dim var As String
var = InputBox("请输入IP地址:", "IP地址框")
Do While var = ""

var = InputBox("请IP地址:", "IP地址框")
希望哪位能写一下出来,谢谢。

简单情况:

'shell "程序全路径 参数"
示例:
Shell "C:\123\456.exe -789"

复杂情况:

可以使用ShellExecute这个API函数:
ShellExecute(
HWND hwnd, //父窗口句柄
LPCSTR lpOperation, //操作类型
LPCSTR lpFile, //要进行操作的文件或路径
LPCSTR lpParameters, //当lpOperation为“explore”时指定要传递的参数,通常设为NULL
LPCSTR lpDirectory, //指定默认目录,通常设为NULL
INT nShowCmd //文件打开的方式,以通常方式还是最大化或最小化显示
)
用法:
新建一个窗口,放入一个command按钮,复制下面代码到代码窗口中,其中:F:\游戏\Cs1.6中文版\cstrike.exe为游戏路径。后边的那个为参数 -console 。

Private 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

Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "F:\游戏\Cs1.6中文版\cstrike.exe", "-console", "", 1
End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-13
如果你是 要执行1.exe,然后带个参数的话,使用shellexcute 函数:
ShellExecute NULL,"open","1.exe",NULL,NULL,SW_SHOWNORMAL

如果是在1.exe中想要获取参数的话,在1.exe的submain里提取command() 获得的就是运行参数
如果还有其他,麻烦说的明白点追问

请问怎样连接那个常量VAR。我只会点批处理,原来的是:
set /p var=请输入IP地址(例如:192.168.0.3):
1.exe connect %var%:5555

放在VB是怎么执行呢,
然后连接这个VAR后,在执行1.exe 运行参数,如:1.exe cp a.txt b.txt

追答

晕了,不知道你从哪里看的代码,“连接那个常量var”这句话就有错误。。。。问题尽量说明白点,你要实现什么功能?

追问

我要实现的是输入IP地址后,这个是变化的,不固定,例如:192.168.1.116
调用1.exe connect 192.168.1.116
连接成功后执行1.exe rm *.mp3

就是类似于远程连接IP地址后管理和调试的功能。

追答

明白了,你的1.exe是自己写还是已有的程序?如果是用vb自己写,有困难,这个类似于VB写CGI,我现在也在找这个资料,实验没成功
如果是已有的程序,你需要肯定的是1.exe是类似dos方式执行的程序,且有返回值,在n你自己的程序里用shellexcute来调用1.exe,并获取返回值,根据返回值来判断所需操作

追问

是原来就有的程序,具体能写出来吗?

追答

写不出来,我只有大概思路方法,具体要看你具体的流程和对那个1.exe文件的测试分析什么的。。。

本回答被提问者和网友采纳
第2个回答  2012-12-27
dim ml
ml = "1.exe" & "connect" & var
shell ml
就可以了追问

如果想一次输入后判断这个1.EXE已经连接IP后,即一次输入后,无需再输入,怎么写?谢谢

追答

没明白你追问的意思?
我理解是:
在主窗体定义一个公有变量,把IP赋值
下次再调用直接读取这个变量
-----
或者是
在1.EXE中添加
一个回调语句(管道)
返回给主程序

第3个回答  2012-12-27
我女朋友就是学计数机的。但是我不知道。。。。追问

那她懂得VB吧?帮忙问一下,谢了

关于VB怎么调用外部EXE后的参数
简单情况:'shell "程序全路径 参数"示例:Shell "C:\\123\\456.exe -789"复杂情况:可以使用ShellExecute这个API函数:ShellExecute( HWND hwnd, \/\/父窗口句柄 LPCSTR lpOperation, \/\/操作类型 LPCSTR lpFile, \/\/要进行操作的文件或路径 LPCSTR lpParameters, \/\/当lpOperation为“explore”时指定要传递...

如何用VB调用一个外部EXE程序
使用Shell函数函数。Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。Shell的语法:Shell(PathName[,WindowStyle])。PathName 为必需参数。类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变...

vb调用exe返回值的问题
ITask = CreateObject("WScript.Shell").exec("E:\\MATLAB\\work\\Recognition1.exe").stdout.readall Text1.Text = ITask

vb调用exe返回值的问题
ITask = CreateObject("WScript.Shell").exec("E:\\MATLAB\\work\\Recognition1.exe").stdout.readall Text1.Text = ITask

怎么用VB调用一个exe小程序,并向程序里面输入参数使程序触发并运行...
比如打开C:\\a.exe ,参数为abc ,则用空格隔开就行了。具体如下:shell "C:\\a.exe abc"如果那个小程序也是你做的,那么可以用Command接受参数:在Form_Load事件中加入:msgbox command 这样你打开这个小程序的时候就可以看到一个写着abc的对话框了 ...

vb 调用另一个exe程序
vb(非简化版)的“外接程序”->“外接程序管理器”里把 资源编辑器 打开,然后把你的 A.exe 添加到资源里,运行时释放出来(用LoadResData)写入新的a.exe里就可以运行了 另一个思路差不多,把a.exe的数据写入b.exe之后(b程序中事先记下正常的b.exe的大小),b.exe运行时读取超出的部分并...

如何用VB调用外部的应用程序
使用Shell函数来调用外部的应用程序。Shell 函数 执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。Shell 函数示例本示例使用 Shell 函数来完成一个用户指定的应用程序。' 将第二个参数值设成 1,可让该程序以正常大小的窗口完成,并且...

在VB中,怎样调用外部文件中的代码?
Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long Private Sub Command1_Click()WinExec "D:\/1\/123.txt", 10 msgbox"123456"End Sub End Sub Private Sub Command2_Click()WinExec "D:\\new\\BhoAdv\\FP9_ax.exe", 10 End Sub ...

用VB获取打开的EXE返回值
shell "C:\\a.exe",1 其中语法是这样的:语法:Shell(pathname[,windowstyle])pathname 为绝对路径 windowstyle 则是打开模式

关于VB启动外部exe程序的代码
VB可使用Shell 函数实现启动外部可执行程序。Shell 函数,执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。Shell 函数示例 本示例使用 Shell 函数来完成一个用户指定的应用程序。' 将第二个参数值设成 1,可让该程序以正常大小的窗口...

相似回答