使用vb.net中的名称最大化或最小化特定的Excel文件

时间:2017-11-09 14:46:42

标签: vb.net

我正在尝试创建一个应用程序,在其中我使用vb.net打开几种类型的文件,然后我希望能够使用其名称最小化和最大化特定的打开文件。 问题是某些文件作为相同进程名称的窗口打开,例如(Excel,记事本,单词,autocad)。 我尝试使用进程ID来控制窗口,但进程ID对于属于同一进程的所有文件保持不变。

这是我用来最小化窗口的函数,但它只控制进程的主窗口而不是特定的窗口

Public Sub Minimize(Id As Integer)
    Dim localById As Process = Process.GetProcessById(Id)
    Try

        ShowWindow(localById.MainWindowHandle, 2) ' 

    Catch ex As Exception
    End Try
End Sub

但我真的不知道如何继续。我的目标是能够使用其名称最小化或最大化进程的特定打开窗口。 例如,如果我按名称打开一个word文件" Config.docx"和另一个名称为#34; Specifications.docx"这两个文件在任务管理器中显示为" Microsoft Word(2)"而我想要做的是不仅要控制进程的主窗口,还要控制每个窗口的名称。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

使用索引将工作簿设置为活动状态 - 您要操作的工作簿(最小化,最大化)

Private Sub btnOpenFile_Click(sender As Object, e As EventArgs) Handles btnOpenFile.Click
    Dim myExcel As Excel.Application
    Dim aWorkbook As Excel.Workbook
    Dim abook1 As Excel.Workbook
    Dim abook2 As Excel.Workbook
    Dim abook3 As Excel.Workbook

    myExcel = New Excel.Application
    'index = 1
    aWorkbook = myExcel.Workbooks.Open("D:\Dev\Debug\Reports\2017-11-07T08_54_42_Report.xls")
    'index = 2
    abook1 = myExcel.Workbooks.Open("D:\Dev\Debug\Reports\2017-11-07T12_38_40_Report.xls")
    'index = 3
    abook2 = myExcel.Workbooks.Open("D:\Dev\Debug\Reports\2017-11-09T09_23_40_Report.xls")
    'index = 4
    abook3 = myExcel.Workbooks.Open("D:\Dev\Debug\Reports\2017-11-09T09_35_00_Report.xls")
    myExcel.Visible = True
    myExcel.WindowState = Excel.XlWindowState.xlMinimized
    myExcel.Workbooks(3).Activate()
    Dim T As Excel.Application
    T = myExcel.ActiveWorkbook.Parent
    T.WindowState = Excel.XlWindowState.xlMaximized

    'Don't forget to cleanup excel stuff aka close it and release stuff :)
End Sub