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);
}
}