在运行时取出lpWindowName的值后,进行寻找窗体 *** 作时也获取了lpWindowName的字符串长度,但对于中文一个中文字符只认为是一个字符长度而不是两个(也就是少了一半),Findwindow重写了lpWindowName的值中文字符少了一半,因为lpWindowName的值变了所以textFormTitle.text的值也随之变化。如果标题是一个中文+字母或数字,你就会看到字母或数字的一个个减少,如果是纯字母或数字不会有任何变化
大图标是
在使用alt+tab键时显示的图标,而小图标是在窗口标题或者winows的任务栏显示的图标
void CExampleDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call defaultHICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1) ASSERT(hIcon) AfxGetMainWnd()->SendMessage(WM_SETICON,ICON_BIG,(LPARAM)hIcon) //修改大图标
AfxGetMainWnd()->SendMessage(WM_SETICON,ICON_SMALL,(LPARAM)hIcon) //修改小图标
CDialog::OnLButtonDown(nFlags, point) } void CExampleDlg::OnRButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default
HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON2) ASSERT(hIcon) AfxGetMainWnd()->SendMessage(WM_SETICON,ICON_BIG,(LPARAM)hIcon) //修改大图标
AfxGetMainWnd()->SendMessage(WM_SETICON,ICON_SMALL,(LPARAM)hIcon) //修改小图标
CDialog::OnRButtonDown(nFlags, point) }
修改属性名称分2种方式:
1 源码修改,直接修改标题即可
2 源码外修改,通过window api ,获取窗口的句柄,然后发送文本即可
另外:方法1不介绍,介绍方法2思路
方法2通过标题来获得,如果名字不确定,
1。遍历所有窗口,得到需要的窗口名字
2。使用 findwindow 得到窗口句柄
3。 SendMessageByString&tHwnd, WM_GETTEXT, 255, g *** 作得到内容也可以
该函数 WM_GETTEXT 改成 WM_SETTEXT 就可以发送文本
通过这3步就可以达到修改其他程序内容,如果修改内容不实在外面那么明显
dw(0) = FindWindowEx(dHwnd, ByVal 0&, "Edit", vbNullString)For I = 0 To 4
dw(I + 1) = FindWindowEx(dHwnd, dw(I), "Edit", vbNullString)
'Debug.Print Hex(dw(i)), i
Next
深入寻找句柄,然后 *** 作句柄,可以发送,或获得内容,其中需要使用辅助工具
spy++ 工具查看
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)