您的位置:首页 > 编程语言 > C语言/C++

How to get the password text in a text with password property from another process using C++ - 用C++如何从不同进程获取密码框文本

2008-06-30 00:31 1141 查看
How to get the password text in a text with password property from another process using C++ - 用C++如何从不同进程获取密码框文本



CString str;

CString strTemp; char buf[1024];

char cClassName[1024]; LONG lWndID;

CString strText; ::GetClassName(hwnd,(LPSTR)&cClassName,1024);

strTemp.Format("%s",cClassName);

if("Edit" == strTemp) { LONG lngWndStype; lngWndStype = GetWindowLong(hwnd,GWL_STYLE);

if(lngWndStype & ES_PASSWORD) { //char cTemp;

int intPasswordChar; //发送:EM_GETPASSWORDCHAR 一定要用:SendMessage,用PostMessage返回值不正确

intPasswordChar = SendMessage(hwnd,EM_GETPASSWORDCHAR,0,0);

//不同进程发送:EM_SETPASSWORDCHAR消息,一定用PostMessage,不能用SendMessage,否则无效

PostMessage(hwnd,EM_SETPASSWORDCHAR,0,0);

UpdateWindow(hwnd); //MessageBox(NULL,"Send OK","EM_SETPASSWORDCHAR",MB_OK);

Sleep (100);//停止100毫秒,这点很重要

//::SendMessage(hwnd,WM_GETTEXT,(WPARAM)1024,(LPARAM)strText.GetBuffer(0));

::SendMessage(hwnd,WM_GETTEXT,(WPARAM)1024,(LPARAM)buf);

//不同进程发送:EM_SETPASSWORDCHAR消息,一定用PostMessage,不能用SendMessage,否则无效

PostMessage(hwnd,EM_SETPASSWORDCHAR,intPasswordChar,0);

} else { //::SendMessage(hwnd,WM_GETTEXT,(WPARAM)1024,(LPARAM)strText.GetBuffer(0));

::SendMessage(hwnd,WM_GETTEXT,(WPARAM)1024,(LPARAM)buf); } }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐