博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC由进程ID获取窗口句柄的各种方
阅读量:3658 次
发布时间:2019-05-21

本文共 983 字,大约阅读时间需要 3 分钟。

//ID--HANDLE--HWND三者之间的互相转换

//id->句柄     hWnd = ::GetDlgItem(hParentWnd, id);
//id->指针     CWnd::GetDlgItem();
//句柄->id     id = GetWindowLong(hWnd, GWL_ID);
//句柄->指针    CWnd *pWnd = CWnd::FromHandle(hWnd);
//指针->ID     id = GetWindowLong(pWnd->GetSafeHwnd, GWL_ID);
//GetDlgCtrlID();
//指针->句柄    hWnd = cWnd.GetSafeHandle() or mywnd->m_hWnd;
//句柄->指针

CWnd* GetCwndByHwnd(HWND hWnd)
{

CWnd *pWnd = CWnd::FromHandle(hWnd);

return pWnd;

}

//指针->句柄
HWND GetCwndByHwnd(CWnd cWnd)
{

HWND hWnd = cWnd.GetSafeHwnd();  // mywnd->m_hWndreturn hWnd;

}
 

 

//通过窗口标题名杀进程

BOOL FindProcessHandleAndKill(const CString &sWndName)
{

HWND   hWnd;

DWORD   ProcessID;

HANDLE   hProcess;

hWnd = ::FindWindow(NULL, sWndName);

if (hWnd == NULL)

{

return   FALSE;

}

else

{

if (GetWindowThreadProcessId(hWnd, &ProcessID) == 0)

{

return   FALSE;

}

else

{

hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);

if (hProcess == NULL)

{

return   FALSE;

}

else

{

if (TerminateProcess(hProcess, 0))

{

return   TRUE;

}

else

{

return   FALSE;

}

}

}

}

}
 

 

转载地址:http://uhqfn.baihongyu.com/

你可能感兴趣的文章
Windows 常用网络cmd命令
查看>>
Java 方法(方法重载)与数组
查看>>
Java 类、对象和构造器
查看>>
Java 三大特征:封装、继承(方法覆盖,this,super)和多态
查看>>
Layui 栅格系统、常用表单和校验与监听
查看>>
Java 抽象方法、final与static、代码块和内部类
查看>>
Java 接口与枚举
查看>>
Java System与Runtime类常用方法
查看>>
Java 进程/线程与线程同步/死锁
查看>>
Java Math、BigDecimal和BigInteger类常用方法
查看>>
Java Random、ThreadLocalRandom和UUID随机数类
查看>>
Java 线程通信与线程的生命周期
查看>>
Base64加密和解密JDK8
查看>>
AOP + Redis实现防止表单重复提交(注解方式)
查看>>
java对象转JSONObject、JSONObject转java对象及String转JSONObject
查看>>
JdbcTemplate.query返回list
查看>>
一条sql语句的一生
查看>>
MySQL中的锁及MVCC机制
查看>>
ACID
查看>>
MongoTemplate 使用or查询
查看>>