Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 655
  • Last Modified:

How to open other applications....vb6

I have command buttons to:

Shell "Excel.exe"                                    '<-- to open just blank excel
Shell "C\MyFolder\MyFile.xls"                  '<-- to open MyFile.xls

I need the same two lines to open Access and Word.

Thanks,
0
Mike Eghtebas
Asked:
Mike Eghtebas
1 Solution
 
ColosseoCommented:
Hi

hope this is what you mean

Shell "msaccess.exe" '<--- opens access

Shell "winword.exe" '<---- opens word

Regards

Scott
0
 
Mike EghtebasDatabase and Application DeveloperAuthor Commented:
Shell "winword.exe" '<---- error 53: File not found

Same with other two.
0
 
ColosseoCommented:
Hi

Have you searched your computer for winword.exe and msaccess.exe?

If installed to the default folder they should both be in something like

c:\Program Files\Microsoft Office\Office10\

You might need to put in the full path, for example on my computer it would be

shell "c:\Program Files\Microsoft Office\Office10\msaccess.exe"

 but i wouldnt have thought so

Scott
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
MandtisCommented:
Here's some old VB6 code I used myself on a program to execute external programs, sorry if the comments and variable names are in spanish.
You would call it like:
Ejecutar "c:\Program Files\Microsoft Office\Office10\msaccess.exe" , True/False , ""
Where the first parameter is the program to launch, the second one is if we want the program to run visible/minimized/hidden, and the last one are the parameters we want to give it.
Functions DirectorioDelPrograma will return the dir were the exe file is stored and UnidadDelPrograma the drive (in the previous case it would return "Program Files\Microsoft Office\Office10" and "C:") so we can switch to that drive&dir before launching it, and return to the folder where we were previously.
If the "program" we are launching ends with *.reg, it will silently be imported with regedit, if it is a file associated with a program, it will be opened with that program (if we do a Ejecutar c:\temp.txt, temp.txt will open with Notepad).
Hope it helps.

----------[cut]----------
'Mirar si existe un exe, si es asi cambiar a su directorio,
'ejecutarlo, y volver al viejo dir
Public Function Ejecutar(ByVal tmpPrograma As String, tmpVisible As Boolean, ByVal Parametros As String) As Double
Dim locUnidad, locDir, locExtension As String
  On Error GoTo HayError
 
  locExtension = Mid(tmpPrograma, Len(tmpPrograma) - 3, 4)
  If ExisteFichero(tmpPrograma) Then
    If locExtension = ".exe" Or locExtension = ".bat" Or locExtension = ".com" Then
      locDir = CurDir()
      locUnidad = UnidadDelPrograma(locDir)
      ChDrive UnidadDelPrograma(tmpPrograma)
      ChDir DirectorioDelPrograma(tmpPrograma)
      If tmpVisible Then
        Ejecutar = Shell(tmpPrograma & " " & Parametros, vbNormalFocus)
      Else
        Ejecutar = Shell(tmpPrograma & " " & Parametros, vbHide)
      End If
      ChDrive locUnidad
      ChDir locDir
    ElseIf locExtension = ".reg" Then
      Ejecutar = Shell("regedit -s " & tmpPrograma, vbNormalFocus)
    Else
      Ejecutar = Shell("start " & tmpPrograma, vbNormalFocus)
    End If
  End If
  GoTo Continuar
HayError:

Continuar:
End Function


'Recibe un programa con path, devuelve ese path
Public Function DirectorioDelPrograma(ByVal tmpPrograma As String) As String
Dim locPosicion As Integer
  On Error GoTo HayError
  locPosicion = InStrRev(tmpPrograma, "\")
  DirectorioDelPrograma = Mid(tmpPrograma, 1, locPosicion)
  GoTo Continuar
HayError:

Continuar:
End Function

'Devuelve la unidad de un programa con path entero
Public Function UnidadDelPrograma(ByVal tmpPrograma As String) As String
  On Error GoTo HayError
  UnidadDelPrograma = Mid(tmpPrograma, 1, 1)
  GoTo Continuar
HayError:

Continuar:
End Function
----------[cut]----------
0
 
Z03niECommented:
Wow.... what a huge code you got there Mandtis .
I don't think shell command can execute other program than executables(say .exe, .bat or .com).
I think to do this you should use API's shell execute function .

'First off declare the function
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

'then use it in the command button, say the name of the command button is CMDLauncher in a form named form1
Private Sub CMDLauncher_Click()
        Dim I As Long
        'this one runs the excel document
        I = ShellExecute(Form1.HWnd, "open", "C\MyFolder\MyExcellFile.xls", vbNullString, vbNullString, 1)  
        'this one runs the word document
        I = ShellExecute(Form1.HWnd, "open", "C\MyFolder\MyWordFile.doc", vbNullString, vbNullString, 1)  
        'this one runs the access document
        I = ShellExecute(Form1.HWnd, "open", "C\MyFolder\MyAccessFile.mdb", vbNullString, vbNullString, 1)  

        'this one runs the excel application
        I = ShellExecute(Form1.HWnd, "open", "excel", vbNullString, vbNullString, 1)  
        'this one runs the word application
        I = ShellExecute(Form1.HWnd, "open", "winword", vbNullString, vbNullString, 1)  
        'this one runs the access application
        I = ShellExecute(Form1.HWnd, "open", "msaccess", vbNullString, vbNullString, 1)  

        'and so on , remember to change the form1 with your form name.
end sub

Hope that work for you.
0
 
Mike EghtebasDatabase and Application DeveloperAuthor Commented:
Thanks.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now