给一个winform程序exe怎么查找每个弹窗,界面甚至按键选项所使用的字符串是什么
是不是有一种工具可以专门查找应用的句柄,查看内部的结构,甚至这种工具可以自己实现? Spy++?{:1_904:} dingding 句柄精灵吗? 就是SPY++啊,我一直用这个 SPY++,网上还有别人写的易语言小工具什么的 limit7 发表于 2022-11-2 10:29就是SPY++啊,我一直用这个
请问如何获取某个字符串显示的大小位置这些信息,甚至修改成英文的字符串呢 fragilebanana16 发表于 2022-11-2 19:29
请问如何获取某个字符串显示的大小位置这些信息,甚至修改成英文的字符串呢
大小和位置不清楚,你说的这些功能用C#调用windows api很好实现
类似下面这种
BOOL SetWindowText(HWND hwnd,LPCTSTR lpString); EnumWindows枚举窗口就可以。EnumChildWindows枚举子窗口。例子网上很多
一、通过工具实现
spy++(最底下图片)
二、通过代码实现
1、第一种方法
```cpp
void CMFCApplication8Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//SendMessage(WM_TEST_MSG);
TCHAR titletxt = { 0 };
HWND hwnd =::GetWindow(::GetDesktopWindow(), GW_CHILD);
while (hwnd!=0)
{
::GetWindowText(hwnd, titletxt, MAX_PATH); //获取窗口句柄的标题
CString strtxt = titletxt;
if (strtxt.GetLength()>0)m_list.AddString(strtxt);
hwnd = ::GetWindow(hwnd, GW_HWNDNEXT);
}
}
```
2、第二种方法Findwindow (可以查找一个窗口的子窗口)
```cpp
void CMFCApplication8Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//SendMessage(WM_TEST_MSG);
TCHAR titletxt = { 0 };
HWND hwnd = ::FindWindow(NULL, NULL); //传递窗口类名和窗口标题
while (hwnd!=0)
{
::GetWindowText(hwnd, titletxt, MAX_PATH); //获取窗口句柄的标题
CString strtxt = titletxt;
if (strtxt.GetLength()>0)m_list.AddString(strtxt);
hwnd = ::FindWindowEx(0,hwnd,NULL,NULL); //第一个参数查找父窗口的第几个窗口,这里的0代表第一个窗口;第二个参数是父窗口,第三个和第四个参数都是窗口类名和窗口标题
}
}
```
3、第三种EnumWindows 枚举(我没有写)
页:
[1]
2