查找并杀死指定excel进程
来源:互联网 发布:golang使用etcd 编辑:程序博客网 时间:2024/05/01 06:00
DWORD CExcelOperDlg::FindProcess(char *strProcessName)
{
DWORD aProcesses[1024], cbNeeded, cbMNeeded;
HMODULE hMods[1024];
HANDLE hProcess;
char szProcessName[MAX_PATH];
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return 0;
for(int i=0; i< (int) (cbNeeded / sizeof(DWORD)); i++)
{
//_tprintf(_T("%d/t"), aProcesses[i]);
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbMNeeded);
GetModuleFileNameEx( hProcess, hMods[0], szProcessName,sizeof(szProcessName));
if(strstr(szProcessName, strProcessName))
{
//_tprintf(_T("%s;"), szProcessName);
return(aProcesses[i]);
}
//_tprintf(_T("/n"));
}
return 0;
}
// return: 1找到excel进程且关闭成功 2找到excel但是关闭失败 0没有找到excel
int CExcelOperDlg::KillProcess()
{
// When the all operation fail this function terminate the "winlogon" Process for force exit the system.
HANDLE hYourTargetProcess = OpenProcess(PROCESS_ALL_ACCESS |
PROCESS_QUERY_INFORMATION | // Required by Alpha
PROCESS_CREATE_THREAD | // For CreateRemoteThread
PROCESS_VM_OPERATION | // For VirtualAllocEx/VirtualFreeEx
PROCESS_VM_WRITE, // For WriteProcessMemory
FALSE, FindProcess("excel.exe"));
HANDLE hYourTargetProcess2 = OpenProcess(PROCESS_ALL_ACCESS |
PROCESS_QUERY_INFORMATION | // Required by Alpha
PROCESS_CREATE_THREAD | // For CreateRemoteThread
PROCESS_VM_OPERATION | // For VirtualAllocEx/VirtualFreeEx
PROCESS_VM_WRITE, // For WriteProcessMemory
FALSE, FindProcess("EXCEL.EXE"));
if(hYourTargetProcess == NULL && hYourTargetProcess2 == NULL)
{
return 0;
}
BOOL bTeminated1 = TerminateProcess(hYourTargetProcess, 0);
BOOL bTeminated2 = TerminateProcess(hYourTargetProcess2, 0);
if ( !bTeminated1 && !bTeminated2)
{
ShowOperError("TerminateProcess EXCEL.EXE");
return 2;
}
else
{
return 1;
}
}
{
DWORD aProcesses[1024], cbNeeded, cbMNeeded;
HMODULE hMods[1024];
HANDLE hProcess;
char szProcessName[MAX_PATH];
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return 0;
for(int i=0; i< (int) (cbNeeded / sizeof(DWORD)); i++)
{
//_tprintf(_T("%d/t"), aProcesses[i]);
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbMNeeded);
GetModuleFileNameEx( hProcess, hMods[0], szProcessName,sizeof(szProcessName));
if(strstr(szProcessName, strProcessName))
{
//_tprintf(_T("%s;"), szProcessName);
return(aProcesses[i]);
}
//_tprintf(_T("/n"));
}
return 0;
}
// return: 1找到excel进程且关闭成功 2找到excel但是关闭失败 0没有找到excel
int CExcelOperDlg::KillProcess()
{
// When the all operation fail this function terminate the "winlogon" Process for force exit the system.
HANDLE hYourTargetProcess = OpenProcess(PROCESS_ALL_ACCESS |
PROCESS_QUERY_INFORMATION | // Required by Alpha
PROCESS_CREATE_THREAD | // For CreateRemoteThread
PROCESS_VM_OPERATION | // For VirtualAllocEx/VirtualFreeEx
PROCESS_VM_WRITE, // For WriteProcessMemory
FALSE, FindProcess("excel.exe"));
HANDLE hYourTargetProcess2 = OpenProcess(PROCESS_ALL_ACCESS |
PROCESS_QUERY_INFORMATION | // Required by Alpha
PROCESS_CREATE_THREAD | // For CreateRemoteThread
PROCESS_VM_OPERATION | // For VirtualAllocEx/VirtualFreeEx
PROCESS_VM_WRITE, // For WriteProcessMemory
FALSE, FindProcess("EXCEL.EXE"));
if(hYourTargetProcess == NULL && hYourTargetProcess2 == NULL)
{
return 0;
}
BOOL bTeminated1 = TerminateProcess(hYourTargetProcess, 0);
BOOL bTeminated2 = TerminateProcess(hYourTargetProcess2, 0);
if ( !bTeminated1 && !bTeminated2)
{
ShowOperError("TerminateProcess EXCEL.EXE");
return 2;
}
else
{
return 1;
}
}
- 查找并杀死指定excel进程
- 查找进程并杀死进程
- linux 查找并杀死进程
- 查找并杀死僵尸进程
- C#查找进程并杀死的方法
- Linux查找并杀死僵尸进程
- 查找 进程 杀死进程
- C#下查找并杀死子进程(进程树)
- 杀死指定进程
- java 杀死指定进程
- shell杀死指定进程
- 查找被锁定的表,并杀死进程
- 查找僵尸进程并杀死的小脚本
- Linux查找占用的端口,并杀死进程
- Linux查找占用的端口,并杀死进程
- 查找并杀死占用某端口的进程
- Linux查找占用的端口,并杀死进程
- Linux查找占用的端口,并杀死进程
- 运行程序的时候报错,transaction not sucessfully started or not execute query
- Asset Libraries and Blocks in iOS 4
- 非比较排序
- 关于青春
- 相机参数
- 查找并杀死指定excel进程
- 回归
- 约翰穆勒自传(2)
- Android引入第三方jar包报错java.lang.NoClassDefFoundError解决办法
- c++0x 可变参数模板
- 为Notepad++配置C/C++、C#、Java、Python编译环境
- Flex在tomcat部署下不能显示地图的问题
- c++0x lambda表达式
- 做饭记