自定义taskKill and find
来源:互联网 发布:软件开发笔试题 编辑:程序博客网 时间:2024/04/29 13:06
由于FindWindow(Ex) 只能够查找具体的窗体 不能够模糊查找,因此有了下文。
主要是利用EnumWindows 查找className 并用strstr模糊匹配 再查找title 从而进一步确认要找的进程
struct WINDOWINFO_FIND
{
char *className;
char *titleName;
HWND hWnd;
};
BOOL CALLBACK EnumWindowsProcFind(HWND hWnd, LPARAM lParam) // 回调函数
{
TCHAR szTitle[200];
TCHAR szClass[200];
WINDOWINFO_FIND* par = (WINDOWINFO_FIND *)lParam;
GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(TCHAR)); // 窗口类
if(!par->hWnd && strstr(szClass, par->className) != NULL ) //终止
{
printf("szClass:%s\n", szClass);
// ::SendMessage(hWnd,WM_GETTEXT,sizeof(szTitle) / sizeof(TCHAR),(LPARAM)szTitle);
GetWindowText(hWnd, szTitle, sizeof(szTitle));
if(strstr(szTitle, par->titleName) != NULL ) //终止
{
printf("EnumWind:%s-%s\n", szClass, szTitle);
par->hWnd = hWnd;
}
}
return true;
}
//kill task----------------------------------
bool taskkill(char *szClassName, char *szTitleName)
{
BOOL bResult = false;
WINDOWINFO_FIND* par = new WINDOWINFO_FIND;
par->className=szClassName;
par->titleName=szTitleName;
par->hWnd = NULL;
EnumWindows(EnumWindowsProcFind, (LPARAM)par); // 枚举窗口 use EnumWindows because EnumChildWindows is no used all win syste
if(par->hWnd)
{
DWORD ProcessID;
GetWindowThreadProcessId(par->hWnd, &ProcessID);
HANDLE hProcessHandle = ::OpenProcess(PROCESS_TERMINATE, FALSE, ProcessID);
bResult=TerminateProcess(hProcessHandle, 0);
}
delete par;
return bResult;
}
//find task
bool taskFind(char *szClassName, char *szTitleName, HWND &rstHwnd)
{
BOOL bResult = false;
WINDOWINFO_FIND* par = new WINDOWINFO_FIND;
par->className=szClassName;
par->titleName=szTitleName;
par->hWnd = NULL;
EnumWindows(EnumWindowsProcFind, (LPARAM)par); // 枚举窗口 use EnumWindows because EnumChildWindows is no used all win syste
if(par->hWnd)
{
bResult=true;
rstHwnd = par->hWnd;
}
delete par;
return bResult;
}
- 自定义taskKill and find
- Tasklist and taskkill
- Taskkill
- taskkill
- taskkill
- taskkill
- taskkill
- taskkill 使用
- taskkill详解
- tasklist、taskkill
- taskkill命令
- find and delete fiels
- grep and find.
- linux locate and find
- vim find and replace
- vector 自定义find函数
- Microsoft DOS taskkill command
- tasklist taskkill的使用
- 近期商业项目心得(WEB前端及后台)
- 【SSH进阶之路】【一】Hibernate基本原理
- 图像形状特征(五)--自由式变形模板
- Android图表库MPAndroidChart(六)——换一种思考方式,水平条形图的实现过程
- Tomcat服务器Time_Wait问题解决
- 自定义taskKill and find
- Android图表库MPAndroidChart(五)——自定义MarkerView实现选中高亮
- Java反射机制和动态代理实例
- Excel删除重复数据
- Analysis local file in Cognos
- Android图表库MPAndroidChart(四)——条形图的绘制过程过程,隐隐约约我看到了套路
- Java注解开发
- 判断一个文件是UTF8 还 是其他文件
- Correlated Topic model 的Gibbs sampling