如何从VB6应用程序获取安装在机器中的应用程序的路径?对我来说,我需要获得WinZip的路径。
答案 0 :(得分:1)
在此路径中阅读注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Nico Mak Computing\WinZip\Program\zip2exe
的路径是WinZip的安装路径
答案 1 :(得分:1)
我认为您可以使用FindExecutable API函数执行此类操作(首先在c:\ temp中创建名为test.zip的文件)。此信息取自this链接。
Const MAX_FILENAME_LEN = 260
Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, _ ByVal lpDirectory As String, ByVal lpResult As String) As Long
Private Sub Form_Load()
Dim i As Integer, s2 As String
Const sFile = "C:\\temp\\test.zip"
'Check if the file exists
If Dir(sFile) = "" Or sFile = "" Then
MsgBox "File not found!", vbCritical
Exit Sub
End If
'Create a buffer
s2 = String(MAX_FILENAME_LEN, 32)
'Retrieve the name and handle of the executable, associated with this file
i = FindExecutable(sFile, vbNullString, s2)
If i > 32 Then
MsgBox Left$(s2, InStr(s2, Chr$(0)) - 1)
Else
MsgBox "No association found !"
End If
End Sub
答案 2 :(得分:0)
我不知道您的要求或情况,但通常在调用外部工具时,路径和参数是可配置的。即,程序操作员可以将应用程序配置为使用WinRAR,如果他们没有安装WinZip。
如果您已经设置了配置机制,这应该非常容易实现,并且比针对某个软件的硬编码灵活得多。