如何找到excel.exe路径和notepad.exe路径

问题描述 投票:2回答:2

export excel or csv file之后的应用程序中,然后在excel或记事本中显示该文件。在这种情况下使用

Excel中:

  Dim xExcelFilePath As String = System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\Microsoft Office"
            xDir = New DirectoryInfo(xExcelFilePath)
            For Each xDirectory As DirectoryInfo In xDir.GetDirectories ' it use for find any version of excel is installed or not
                If xDirectory.Name.Count < 6 Then Continue For
                If xDirectory.Name.Trim.Substring(0, 6).ToUpper = "OFFICE" Then
                    If System.IO.File.Exists(xExcelFilePath & "\" & xDirectory.Name & "\EXCEL.EXE") Then
                        xExcelFilePath = xExcelFilePath & "\" & xDirectory.Name & "\EXCEL.EXE"
                        Exit For
                    End If
                End If
            Next
            If System.IO.File.Exists(xExcelFilePath) Then
                Dim p As New Process() ' xExcelFilePath means start and stop the local system process
                p.StartInfo.UseShellExecute = True
                p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
                p.StartInfo.FileName = xExcelFilePath ' Assaign the file name
                p.StartInfo.Arguments = """" + xDestinationPath + """"
                Grid1.SaveExcel(xDestinationPath, FarPoint.Win.Spread.Model.IncludeHeaders.ColumnHeadersCustomOnly) ' Export the Excel File
                p.Start()

            Else
                Msg.Err("Could not find Excel installed on this system; file saved to:" + xExcelFilePath + ".")
            End If

记事本:

 Dim p As New Process() ' xExcelFilePath means start and stop the local system process
            p.StartInfo.UseShellExecute = True
            p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
            p.StartInfo.FileName = "C:\windows\notepad.exe"
            p.StartInfo.Arguments = """" + Application.StartupPath & Grid1.ActiveSheet.SheetName & ".csv" + """"
            xCSVSheet.SaveTextFile(Application.StartupPath & Grid1.ActiveSheet.SheetName & ".csv", TextFileFlags.None, Model.IncludeHeaders.BothCustomOnly, "", ",", "")
            p.Start()

在上面的代码中,某些系统excel file路径不按此顺序,所以它的抛出异常和Notepad exe静态地添加在这里。我怎样才能在sysem中获得exe file路径?

vb.net excel csv exe
2个回答
2
投票

不要担心确切的路径,让Windows处理它。如果要使用记事本打开文件,只需使用以下代码:

Process.Start("notepad.exe", Application.StartupPath & Grid1.ActiveSheet.SheetName & ".csv")

要启动程序最大化,您必须将其更改为以下内容:

    Dim startInfo As New ProcessStartInfo("notepad.exe")
    startInfo.WindowStyle = ProcessWindowStyle.Maximized
    startInfo.Arguments = """" & Application.StartupPath & Grid1.ActiveSheet.SheetName & ".csv"""
    Process.Start(startInfo)

0
投票

试试这个:

 Dim excelpath = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe", "Path", "Key does not exist")
                  excelpath=  excelpath & "EXCEL.EXE" 
     Shell(Chr(34) & excelpath & Chr(34) & " " & Chr(34) & FLE & Chr(34), vbNormalFocus)

在我的情况下,FILE是XML文件

© www.soinside.com 2019 - 2024. All rights reserved.