在VB外部程序

在VB外部程序,第1张

Private Sub Command1_Click()

''''假设你的预设文件名为"预设文件exe"

Dim a As String '''预设文件的路径

a = Replace(AppPath & "\预设文件exe", "\\", "\")

Shell a, vbNormalFocus

End Sub

就用shell函数 足够了

shell "cmdexe",vbhide

如果不加vbhide的ua会闪过一个黑屏 不爽

如果要执行cmd命令 shell "cmd /c net user>c:\1txt",vbhide

执行了net user命令 回显输出到了c:\1txt里

可以把你要打开的那个些程序的可执行文件放在和你的过程文件同一个文件夹(或者更深级别的文件夹)中,然后在那个代码中使用相对路径取得那些可执行文件名打开就可以了,这样不管你要打开的那些程序放在什么地方,这样和你的工程文件的相对位置保持不变,就不会有问题的,有必要时可以将VB工程文件生成可执行文件,然后制作成免安装程序,这样即使到了没有安装VB6的电脑上,也可以正常运行的,必要时将那个免安装文件的运行文件创建一个快捷方式图标放到桌面上就可以了,挺简单的。引用相对路径打开程序的代码如下(假如你要打开的程序可执行文件放在和VB工程文件同级别的“程序”文件夹中):

Private

Sub

登陆_Click()

X

=

Shell(AppPath

&

"\程序\updateexe",

1)

End

Sub

shell不行!

首先你要用搞好路径,如果是和你的程序在同一个程序包内的,要用相对路径,即AppPath 。比如你要打开VB所在路径的abcdoc。那么你可以这样:

Dim xx As String

xx = AppPath & "\" & "abcdoc"

i = ShellExecute(hwnd, "open", xx, vbNullString, vbNullString, 1)

只要在某个事件中加入这个就可以了。

如果不是同一个程序包内,要知道它的路径,用绝对路径。比如C盘的某的文件abcexe

把上面的xx=改为:

xx="c:\abcexe"

就可以了!

提示一下,上面用了API函数。这里不能直接用shell函数,因为shell函数只能直接打开com等等这样的。对于doc等等这样的如果要用shell函数必须要告诉它的关联文件的路径,而对不同的计算机,关联文件的安装是不同的,所以不好实现。而API函数ShellExecute则会自动找到关联文件,并打开。

请使用winsock 建立连接,然后远程发送字符串 "your_path\your_exe_filenameexe", 另一端用 shell "your_path\your_exe_filenameexe" 即可执行。这个方法你要写两个软件,一个在主机运行,另一个在服务器端运行。以下是MSDN的内容

要创建一个 TCP 服务器,请按照以下步骤执行:

创建新的 Standard EXE 工程。

将缺省窗体的名称改为 frmServer。

将窗体的标题改为“TCP 服务器”。

在窗体中放入一个 Winsock 控件,并将它的名字改为 tcpServer。

在窗体上添加两个 TextBox 控件。将第一个命名为 txtSendData,第二个为 txtOutput。

为窗体添加如下的代码。

Private Sub Form_Load()

'将 LocalPort 属性设置为一个整数。

'然后调用 Listen 方法。

tcpServerLocalPort = 1001

tcpServerListen

frmClientShow '显示客户端的窗体。

End Sub

Private Sub tcpServer_ConnectionRequest _

(ByVal requestID As Long)

'检查控件的 State 属性是否为关闭的。

'如果不是,

'在接受新的连接之前先关闭此连接。

If tcpServerState <> sckClosed Then _

tcpServerClose

'接受具有 requestID 参数的

'连接。

tcpServerAccept requestID

End Sub

Private Sub txtSendData_Change()

'名为 txtSendData 的 TextBox 控件中

'包含了要发送的数据。当用户往文本框中

'键入数据时,使用 SendData 方法

'发送输入的字符串。

tcpServerSendData txtSendDataText

End Sub

Private Sub tcpServer_DataArrival _

(ByVal bytesTotal As Long)

'为进入的数据声明一个变量。

'调用 GetData 方法,并将数据赋予名为 txtOutput

'的 TextBox 的 Text 属性。

Dim strData As String

tcpServerGetData strData

txtOutputText = strData

End Sub

上面的步骤创建了一个简单的服务器应用程序。为了使它能够工作,还必须为它创建一个客户端的应用程序。

要创建 TCP 客户端,请按照以下步骤执行:

在工程中添加一个新的窗体,将其命名为 frmClient。

将窗体的标题改为“TCP Client”。

在窗体中添加一个 Winsock 控件,并将其命名为 tcpClient。

在 frmClient 中添加两个 TextBox 控件。将第一个命名为 txtSend,第二个为 txtOutput。

在窗体上放一个 CommandButton 控件,并将其命名为 cmdConnect。

将 CommandButton 控件的标题改为 Connect。

在窗体中添加如下的代码。

重点 必须将 RemoteHost 属性值修改为您的计算机的名字。

Private Sub Form_Load()

'Winsock 控件的名字为 tcpClient。

'注意:要指定远程主机,可以使用

' IP 地址(例如:"12111111"),也可以使用

'计算机的“好听的名字”如下所示。

tcpClientRemoteHost = "RemoteComputerName"

tcpClientRemotePort = 1001

End Sub

Private Sub cmdConnect_Click()

'调用 Connect 方法,初始化连接。

tcpClientConnect

End Sub

Private Sub txtSendData_Change()

tcpClientSendData txtSendText

End Sub

Private Sub tcpClient_DataArrival _

(ByVal bytesTotal As Long)

Dim strData As String

tcpClientGetData strData

txtOutputText = strData

End Sub

这样可以解决你的问题:

看一看代码:

Private Sub Command1_Click()

Shell AppPath & "1exe", vbNormalFocus

End Sub

AppPath & "1exe", 的意思就是到应用程序所在的路径来找1exe,

你可以把你的shell函数加上apppath的路径。

然后拟你只要将你用VB生成了可执行文件以及1exe文件放在一个目录下就

可以了!!!

以上就是关于在VB外部程序全部的内容,包括:在VB外部程序、VB中如何调用外部程序、VB里如何实现点击按扭自动打开外部的.exe程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9512156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存