我正在尝试创建一个应用程序,在其中我使用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)"而我想要做的是不仅要控制进程的主窗口,还要控制每个窗口的名称。
任何人都可以帮助我吗?
答案 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