代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.NET
】
根据Excel线程句柄得到ID并且关闭进程
作者:
toploveall
/ 发布于
2016/3/22
/
859
[System.Runtime.InteropServices.DllImport("User32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] private static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); private void Kill(Microsoft.Office.Interop.Excel.Application excel) { IntPtr t = new IntPtr(excel.Hwnd); //得到这个句柄,具体作用是得到这块内存入口 int k = 0; GetWindowThreadProcessId(t, out k); //得到唯一标志k System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //k的引用 p.Kill(); //关闭k } GC.Collect的代码是: /// <summary> /// 读取xls(用GC的方法,手工设置book为null) /// </summary> private void ReadXlsGetRangeA1() { string path = "C:\\abc.xls"; // 判断文件不存在,返回 if (!File.Exists(path)) { return; } Excel.Application excel = new Excel.ApplicationClass(); // 某人 //Excel.Workbooks workbooks = null; // 不用单独定义也可以 Excel.Workbook book = null; Excel.Worksheet sheet = null; Excel.Range range = null; object oV = System.Reflection.Missing.Value; // 反复用到 try { // 步骤1:打开某人的表xls book = excel.Workbooks.Open(path, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV); // 打开一个工作簿 sheet = (Excel.Worksheet)excel.ActiveSheet;// 获取当前工作表 sheet.Name = "Salary详细"; // 修改工作表的名字 excel.Visible = false; // 步骤2:读取数据 range = sheet.Cells.get_Range("A1", "A1"); //读取第一行第一列的内容 this.Text = range.Value2.ToString(); // 现在是form的标题 // 步骤3:保存表格 book.Save(); // 步骤4:关闭book excel.Workbooks.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(book); System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(range); System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); book = null; sheet = null; range = null; excel = null; GC.Collect(); // 前提是:所有的对象都=null后才能调用此函数,然后才会结束“任务管理器”中的excel.exe进程 } } 用Kill的方法的代码是: using System.Runtime.InteropServices; // DllImport用 [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); /// <summary> /// 读取xls(用kill的方法) /// </summary> private void KillReadXlsGetRangeA1() { string path = "C:\\abc.xls"; // 判断文件不存在,返回 if (!File.Exists(path)) { return; } Excel.Application excel = new Excel.ApplicationClass(); // 某人 //Excel.Workbooks workbooks = null; // 不用单独定义也可以 Excel.Workbook book = null; Excel.Worksheet sheet = null; Excel.Range range = null; object oV = System.Reflection.Missing.Value; // 反复用到 try { // 步骤1:打开某人的表xls book = excel.Workbooks.Open(path, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV, oV); // 打开一个工作簿 sheet = (Excel.Worksheet)excel.ActiveSheet;// 获取当前工作表 sheet.Name = "Salary详细"; // 修改工作表的名字 excel.Visible = false; // 步骤2:读取数据 range = sheet.Cells.get_Range("A1", "A1"); //读取第一行第一列的内容 this.Text = range.Value2.ToString(); // 现在是form的标题 // 步骤3:保存表格 book.Save(); // 步骤4:关闭book excel.Workbooks.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { excel.Quit(); //excel = null; // 注意:如果要获得excel的Hwnd,不能设置excel = null。 IntPtr t = new IntPtr(excel.Hwnd); int k = 0; GetWindowThreadProcessId(t, out k); System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); p.Kill(); } } Path.GetFileNameWithoutExtension() //返回不具有扩展名的指定路径字符串的文件名。 Path.GetTempFileName() //创建磁盘上唯一命名的零字节的临时文件并返回该文件的完整路径
试试其它关键字
Excel线程
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
toploveall
贡献的其它代码
(
10
)
.
微信小程序之蓝牙开发(详细读数据、写数据、附源码)
.
Hive窗口函数之累积值、平均值、首尾值的计算学习
.
判断字符串是否为数字的函数
.
查询域名的 MX 记录
.
http://blog.csdn.net/high2011/article/details/5265
.
图片和二进制的转换
.
让上传文本框只读,browser按钮仍能用,并实现文件上
.
基于文件类型来创建链接样式
.
将c#控制台程序关闭按钮取消
.
根据Excel线程句柄得到ID并且关闭进程
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3