关于vc操作Excel表格后出现Excel.exe进程不能关闭的问题

        这段时间做了个有关Excel报表导入数据库的小项目,发现在完成Excel操作后,函数结束却残留有EXCEL.EXE进程,让人感觉很不爽,也让函数不能够重复执行(因为之前的进程没有结束),在网上找了一堆方法,各种调用Application、workbook、worksheet的关闭方法仍然无法实现。无奈,最后只能使用代码在函数结束前将EXCEL.EXE进程杀掉,才得以解决问题。

        下面贴出结束进程部分的代码。

#include "tlhelp32.h"   //头文件

DWORD GetProcessIDByName(char *FileName)  //自定义函数,通过进程名获得PID
{
	HANDLE myhProcess;
	PROCESSENTRY32 mype;
	mype.dwSize = sizeof(PROCESSENTRY32);
	BOOL mybRet;
	//进行进程快照
	myhProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //TH32CS_SNAPPROCESS快照所有进程
	//开始进程查找
	mybRet=Process32First(myhProcess,&mype);
	//循环比较,得出ProcessID
	while(mybRet)
	{
		if(strcmp(FileName,mype.szExeFile)==0)
			return mype.th32ProcessID;
		else
			mybRet=Process32Next(myhProcess,&mype);
	}
	return 0;
}

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,GetProcessIDByName("EXCEL.EXE"));  //通过pid获得进程句柄,
BOOL result = TerminateProcess(hProcess,1);  //调用该函数终结进程,第二个参数为进程退出码


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值