问题描述
- c#打开excel后在手动打开excel两个excel句柄一样
-
我又重新编辑了一下1.打开软件
2..点文件打开
3.打开psy++
4.手动打开了一个excel
5.spy++查看这个时候我软件本来是要操作之前打开的report.xlsx, 就变成了操作新建 Microsoft Office Excel 2007 Workbook.xlsx了。。。
下面是打开程序
public static Excel._Application reportExcel; public static Excel._Workbook reportWorkbook; public static Excel._Worksheet reportSheet; public static void openReportExcel() { // string fileName="";//= Application.StartupPath + @"cfg出货记录.xlsx"; if(Form1.companySelect==0) { reportExcelPath = Application.StartupPath + @"cfgreanreport.xlsx"; } else { reportExcelPath = Application.StartupPath + @"cfgbenanreport.xlsx"; } reportExcel = new Excel.Application(); try { reportExcel.Visible = true; reportWorkbook = (Excel._Workbook)reportExcel.Workbooks.Open(reportExcelPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value ); openReportResult = 1; } catch (Exception err) { openReportResult = 2; MessageBox.Show(Convert.ToString(err)); } }
解决方案
两个窗口句柄肯定不同。不知道“句柄精灵”是什么玩艺,也许它有bug。建议你用spy++去看看。
解决方案二:
用 spy++ 查看(菜单:搜索->查找窗口...),类名为:NetUIHWND 的句柄是不一样的。如果查看到其它类,如:EXCEL7,其句柄确实是一样的。
所以, 句柄精灵 对 Excel 操作时可能出现 Bug。
解决方案三:
用spy++最简单的是直接拖它界面上的那个图标,拖到哪个窗口就会显示那个窗口的句柄,使用起来非常方便。
时间: 2024-12-09 11:29:11