如何用VB调用一个外部EXE程序?

如何用VB调用一个外部EXE程序?,第1张

使用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")

VB编程软件对应用程序只能用以二进制方式打粗缓开EXE文禅世件,并经处理,所见到的是如DOS下的DEBUG命令打开后看到的以16进制显示相同.

VB编程软件能打开源代码组成的文件.你可先运行VB6.EXE文件,然后在新建窗口或文件菜单栏新建或打岩袭模开工程文件,在其代码窗口修改代码或在对象窗口修改或增删控件.

VB中用Shell 函数可执行一个可执行文件.例:

Dim RetVal

RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)

用VB打开电脑的应用程序是调用API函数来修改或增加注册表中的值碰薯御,这样在系统启动时就会自动执行。

Option Explicit

Const REG_SZ As Long = 1

Const HKEY_LOCAL_MACHINE = &H80000002

'创建注册表项

Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _

"RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _

phkResult As Long) As Long

'设置注册表项中的值

Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _

"RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _

ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _

ByVal cbData As Long) As Long

'打开注册表中的项

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _

"RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _

ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

'获取子项

Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _

"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _

ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Const REG_DWORD = 4

Private Sub Form_Load()

'为text1设置默认路径程序

Text1.Text = "C:\Program Files\****\****.exe"'请修改自动启动程序的路径。

End Sub

Private Sub Command1_Click()

'设置开机启动

Dim hKey As Long

Dim myexe As String

Dim myint As Integer

myint = Len(Text1.Text) - InStrRev(Text1.Text, "\")'取得应用程序文件笑岩名字符串的字节数,含扩展名

myexe = Right(Text1.Text, myint)'取得应用程序文件名字符串,含扩手谈展名

If Text1.Text <> "" Then

RegCreateKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", hKey

'"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"是注册表中的路径

RegSetValueEx hKey, myexe, 0, REG_SZ, ByVal Text1.Text, 255

'myexe是上面注册表路径中添加的项,Text1.Text是该项的数据。

End If

MsgBox "设置完成,请您重新启动计算机!" & vbCrLf & vbCrLf & "你设置的程序将开机自动执行!", 64, "提示信息"

End Sub

Private Sub Command2_Click()

'查找自动启动的程序

DHK1.DialogTitle = "选择程序"'注意打开对话框的名称是DHK1

DHK1.Filter = "应用程序(*.exe)|*.exe"

DHK1.ShowOpen

If Len(DHK1.FileName) Then

Text1.Text = DHK1.FileName

End If

End Sub

5

Private Sub Command3_Click()

End

End Sub


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

原文地址:https://54852.com/yw/8259181.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存