using System.Diagnostics;
using System.Runtime.InteropServices;
/// <summary>
/// 获取进程ID
/// </summary>
/// <param name="hwnd">窗口句柄 由FindWindow获取</param>
/// <param name="ID">进程ID</param>
/// <returns></returns>
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
/// <summary>
/// 关闭Excel进程
/// </summary>
/// <param name="excel"></param>
public void KillExcel(Microsoft.Office.Interop.Excel._Application excel)
{
//获得句柄
IntPtr ptr = new IntPtr(excel.Hwnd);
//获取进程ID
int processID = 0;
GetWindowThreadProcessId(ptr, out processID);
//获取进程
Process process = Process.GetProcessById(processID);
//关闭进程
if (!process.CloseMainWindow())//尝试关闭进程
{
process.Kill();//强制关闭
}
}
public void Dispose()
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(this.worksheet);
this.worksheet = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(this.workbook);
this.workbook = null;
if (this.application != null)
{
this.application.Quit();
//关闭Excel进程(程序异常关闭的情况下)
this.KillExcel(this.application);
System.Runtime.InteropServices.Marshal.ReleaseComObject(this.application);
this.application = null;
}
}
相关推荐
PB全面控制Excel命令含义及使用方法
PB下全面控制Excel,创建Excel对象,连接Excel,断开连接Excel,打开指定工作簿
Excel表格卡死如何强制关闭
Excel表格卡死如何强制关闭
C#彻底关闭Excel进程excel.exe
C#彻底关闭Excel进程excel.exe
MFC、VC++操作excel后,excel程序进程无法正常退出的非暴力处理方法
1、最low的方式:强制结束进程这种方式简单粗暴,但会存在进程安全问题,及可能引起数据丢失,慎用!!!!2、释放顺序问题与Execl相关的变量在关闭和释放的时候顺序必须正确。比如,要先使用Close(),后使用ReleaseDispatch。顺序尽量做到先 Save—>Colse—>Release;在Release时,我们尽量做到由内到外,Rang—>Sheet—>Sheets—>Book—>Books—>App。
Simulink中Simscape—Fluids模块(原Simhydraulics)学习记录
学习来源:http://cn.mathworks.com/help/physmod/hydro/getting-started-with-simhydraulics.html 主要学习内容如下图: 详细内容: 1、组件来源 SIMULINK浏览器中的模块:Simscape_Foundation 和 Simscape_Fluids。 2、Simscape下包括多个子
基于DBSCAN聚类算法的超像素实时分割
Real-Time Superpixel Segmentation by DBSCAN Clustering Algorithm 摘要 在本文中,我们提出了一种基于密度的带噪声应用空间聚类(DBSCAN)算法的50帧/秒实时图像超像素分割方法。为了降低超像素算法的计算量,我们采用了一种快速的两步框架。在第一个聚类阶段,使用具有颜色相似性和几何约束的DBSCAN算法对像素进行快速聚类,然后在第二个合并阶段,通过颜色和空间特征定义的距离度量,将小簇按其邻域合并为超像素。为了在这两个步骤中获得更好的超像素,定义了
终止Excel进程
终止Excel进程
智能驾驶小白必看:MEB低速紧急制动系统的工作原理与传感器配置详解
本文深入解析了MEB低速紧急制动系统的工作原理与传感器配置。该系统作为智能驾驶的关键安全冗余,专为应对停车场、拥堵路段等复杂低速场景设计。文章详细拆解了其如何通过超声波雷达、环视摄像头等传感器融合感知环境,并基于碰撞时间(TTC)等模型进行风险评估与分级制动,最终实现主动防碰撞,是智能驾驶技术实用化的重要体现。
Excel.exe进程结束方法
解决部署在Window server 2003 上Excel.exe进程问题 方法一:在方法中使用Com组件,并在使用完使Com引用计数减1以及消除引用,在调用该方法后进行垃圾回收(必须在该方法外),若不出现异常是均能正常结束Excel进程。 方法二:强制结束 解决
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part6基于图谱的问答实现
前序文章:本部分则是整个项目的核心内容——基于图谱的问答。需要实现的是对于“简单问题”进行解析,然后从图谱数据库中查询与该人员及其相关人员信息,返回到前端并显示该人员的基本信息。除此之外,用户可以点击返回的结果人员节点,页面能够显示该用户的个人基本信息。那么现在就开始吧。根据源码实现问答形式,其实是比较简单的。原代码中使用ltp对问题进行分词,选取具有名次词性的关键词进行处理。 ltp配置稍许麻烦,我使用jieba分词工具对问题进行分词,然后再按照原文提取问句中人物及关系,然后构建cypher neo4j查
【Python搞定车载自动化测试】——Python实现车载以太网DoIP刷写(含Python源码)
随着智能电动汽车行业的发展,汽车=智能终端+四个轮子,而人工智能也发展越来越快,Python语言使用越来越广,本章节主要介绍如何使用Python语言基于Pytest自动化框架来实现DoIP诊断自动化测试。首先回顾一下DoIP诊断基础知识:DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。
华为OD机试真题 新系统 - WIFI设备网络规划 (Java/Py/C/C++/Js/Go)
本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。
解决xlwings多个pid占用多个excel.exe进程,导致打开生成的Excel一片空白
解决xlwings多个pid占用多个excel.exe进程,导致打开生成的Excel一片空白
SAP-ABAP:字符与数值类型转换详细指南
SAP-ABAP:字符与数值类型转换详细指南
关掉由C#自身打开的Excel进程方法
#region 结束EXCEL.EXE进程的方法 /// <summary> /// 结束EXCEL.EXE进程的方法 /// </summary> /// <param name="m_objExcel">EXCEL对象</param> [DllImpor...
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
VB停止进程
遇到一个问题,就是VB6.0操作Excel的过程中,往往会出现无法停掉Excel进程的问题。这个问题尤其出现在操作Excel2000的过程中,所以想强制终止Excel进程。从网上查了好久,不是调用API就是,就是那一大堆的代码。嘻嘻~不过从同事那里请教俩一个方法 Dim objWMIService As Object Dim colProcesslist As Object
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
杀死work, excel 进程
Dim objSet Set objSet = GetObject("winmgmts:").InstancesOf("Win32_Process") For Each Item In objSet If Item.Name = "WINWORD.EXE" Or Item.Name = "EXCEL.EXE" Then
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
cmd 删除进程
XP 系统上自带的ntsd.exe。 Windows7上面没有。 ntsd.exe下载地址:http://download.csdn.net/detail/jindou910101/8514091 Windows7下,把ntsd.exe文件拷贝到C:\Windows\System32文件夹下。 创建一个.bat文件 把下面代码复制进去: --XXXX.bat文件 --cmd 判断ex
同时关闭多个XXXX进程
同时关闭多个XXXX进程
强行杀死最近打开的Excel进程
System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL"); System.DateTime startTime = new DateTime(); int m, killId = 0; for (m = 0; m e
WPF 程序中启动和关闭外部.exe程序
当需要在WPF程序启动时,启动另一外部程序(.exe程序)时,可以按照下面的例子来: C#后台代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Win...
Windows系统下Python如何执行命令行关闭指定进程
Windows系统下Python如何执行命令行关闭指定进程
4931



被折叠的 条评论
为什么被折叠?



