先贴程序void CProcessDlg::OnKill()
{
HANDLE hProcessSnap = NULL;
HANDLE hProcess;
PROCESSENTRY32 pe32 = {0};
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap == (HANDLE)-1)
{
printf("\nCreateToolhelp32Snapshot()failed:%d",GetLastError());
return;
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
do
{
if(FindString2(pe32.szExeFile))//这里是和listbox中的字符串做 比较,就是要关闭listbox中有的进程,listbox中是如realplay.exe的字符串
{
//这里我如何获得要关进程的句柄!!!!!!!!!!!!????????
TerminateProcess(hProcess, 0);
}
}
while (Process32Next(hProcessSnap, &pe32));
}
else
{
printf("\nProcess32Firstt() failed:%d",GetLastError());
}
}FindString2的函数如下BOOL CProcessDlg::FindString2(CString strName)
{
CString strContent;
for(int i = 0;i < m_list2.GetCount();i++)
{
m_list2.GetText(i,strContent);
if(strContent.Compare(strName) == 0)
{
return TRUE;
}
}
return FALSE;
}想知道上面问的地方如何获取进程的句柄;希望能详细说说,万分感谢。
{
HANDLE hProcessSnap = NULL;
HANDLE hProcess;
PROCESSENTRY32 pe32 = {0};
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap == (HANDLE)-1)
{
printf("\nCreateToolhelp32Snapshot()failed:%d",GetLastError());
return;
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
do
{
if(FindString2(pe32.szExeFile))//这里是和listbox中的字符串做 比较,就是要关闭listbox中有的进程,listbox中是如realplay.exe的字符串
{
//这里我如何获得要关进程的句柄!!!!!!!!!!!!????????
TerminateProcess(hProcess, 0);
}
}
while (Process32Next(hProcessSnap, &pe32));
}
else
{
printf("\nProcess32Firstt() failed:%d",GetLastError());
}
}FindString2的函数如下BOOL CProcessDlg::FindString2(CString strName)
{
CString strContent;
for(int i = 0;i < m_list2.GetCount();i++)
{
m_list2.GetText(i,strContent);
if(strContent.Compare(strName) == 0)
{
return TRUE;
}
}
return FALSE;
}想知道上面问的地方如何获取进程的句柄;希望能详细说说,万分感谢。
解决方案 »
- MFC 自设菜单问题
- 初学者 MFC怎么才能在点登陆后弹出另一个窗口
- 关于clistview自绘的问题!!
- 关于ListCtrl的nSubItem问题
- 怎样扑捉ado的异步事件?
- 大侠救我!串口通信波特率大的时候数据就出错
- 怎么在List控件中一列中的字符前添加图标?(高分)
- 谁能介绍一本比较好的学习使用VC++的书!最好是网上免费的
- 提供 bho ie工具栏 URLSEARCHHOOK MIMEFILTER 定制
- 大侠们们请出手:关于函数 CreateWindow 的一个基础问题
- 求教高手,我想在一个键盘钩子函数中屏蔽掉F1键可是屏蔽不掉,怎么做才可以达到目的?
- 高手指教:我希望通过实现MIS系统树形结构的界面,加分哦
DWORD getSpecifiedProcessId(const char* pszProcessName)
{
DWORD processId[1024], cbNeeded, dwProcessesCount;
HANDLE hProcess;
HMODULE hMod; char szProcessName[MAX_PATH] = "UnknownProcess";
DWORD dwArrayInBytes = sizeof(processId)*sizeof(DWORD); if (!EnumProcesses(processId, dwArrayInBytes, &cbNeeded))
return 0;
//计算数组中的元素个数
dwProcessesCount = cbNeeded / sizeof(DWORD);
enableDebugPriv(); for (UINT i = 0; i < dwProcessesCount; i++) {
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId[i]);
if (!hProcess) {
continue;
} else {
if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded)) {
GetModuleBaseName(hProcess, hMod, szProcessName, sizeof(szProcessName));
if (!_stricmp(szProcessName, pszProcessName)) {
CloseHandle(hProcess);
return processId[i];
}
}
}
} CloseHandle(hProcess);
return 0;
}
{
DWORD dwProcessID = pe32.th32ProcessID;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
if( NULL != hProcess )
{
TerminateProcess(hProcess, 0);
}
}......
......if(FindString2(pe32.szExeFile))
{
DWORD dwProcessID = pe32.th32ProcessID;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID);
if( NULL != hProcess )
{
TerminateProcess(hProcess, 0);
}
CloseHandle(hProcess);
}......