在网上找到一源程序,mfctlist,可以在98,NT中列出正在使用的进程并可删除,但在2000下我试了,启动就报非法错,我想NT和2000应该差不多,问大家如何改写。
解决方案 »
- 多线程需要不断调用同一个。obj中的函数,怎么样才能在多个cpu上并行运行这些线程
- AFX_IDW_PANE_FIRST是什么意思?
- 关于listctrl中 改变字体大小的问题
- 有点难度了,怎么样工具栏ID 得到那个BUTTON的BMP图片
- 请问哪里可以下载到windows程序设计上.下册的电子版~~~~~~~~~~在线等
- 如何用TC++在Win32 SDK的基础上编译程序 ?
- 串口缓冲区的问题
- vc.net比vc6.0在DEBUG里是不是要多生成几个文件?多生成几个?哪几个?
- 非supperlxf莫进!
- MFC程序退出时,检查出很多memory leaks,我并没有NEW什么,如何修改程序消除memory leaks
- 字符串连接问题~
- SDI拆分窗口中的视图动态切换后原来立体的窗口变为平面的了。
竟有这种事?!!!
不过给我程序也没用,我没有win2000server。
#include "Tlhelp32.h"int KillAProcess(const char* szName)
{
if(szName == NULL || strlen(szName) == 0)
{
return 1;
}
int siNameLen = strlen(szName); HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
char* szProcess = NULL; if(!hSnapshot)
{
return 2;
} pe.dwSize=sizeof(pe); for( int i=Process32First(hSnapshot,&pe);i;
i=Process32Next(hSnapshot,&pe) )
{
szProcess = pe.szExeFile;
if(pe.szExeFile)
{
//98,2000一个用全路径的,一个只有文件名
szProcess = strrchr(pe.szExeFile, '\\');
if(!szProcess)
{
szProcess = pe.szExeFile;
}
else
{
szProcess++;
}
if(strnicmp(szProcess, szName, siNameLen) == 0)
{
HANDLE hProc = OpenProcess(1, 1, pe.th32ProcessID);
if(hProc)
{
TerminateProcess(hProc, 0);
CloseHandle(hSnapshot);
return 0;
}
return 3;
}
}
}
CloseHandle(hSnapshot);
return 4;
}