急问:知道了窗口句柄,怎样获得窗口TITLE?(分不多请原谅。) 实际上是两个问题:1、获取窗口句柄。这个不想要子窗口的。2、通过句柄获取窗口TITLE。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对不起,实际情况是这样:1、获取所有窗口名字。(不包括子窗口)2、关闭不是特定窗口的其他所有窗口。我需要知道的是能使些以上功能的WIN32 API. 1.在什么情况下获取//this.Handle2.Form f=(Form)Form.FromHandle(Handle);string a=f.Text; call apiGetWindowText /// <summary> /// 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口 /// </summary> /// <param name="Point">点的坐标,以像素为单位</param> /// <returns> /// 包含了指定点的窗口的句柄。 /// 如指定的点处没有窗口存在,则返回 IntPtr.Zero /// </returns> [DllImport("user32.dll")] private static extern IntPtr WindowFromPoint(POINT Point);/// <summary> /// 取得一个窗体的标题(caption)文字,或者一个控件的内容 /// </summary> /// <param name="hwnd">欲获取文字的那个窗口的句柄</param> /// <param name="buffer">预定义的一个缓冲区</param> /// <param name="bufferLen">缓冲区的长度</param> /// <returns>复制到buffer的字串长度;不包括空中止字符</returns> [DllImport("user32.dll")] public static extern int GetWindowText(IntPtr hwnd, StringBuilder buffer, int bufferLen); 答非所问啊,大哥们。莫非你们觉得这几个API就可以实现? 调用api可以啊贴个c++的,lz可以转成C#用char szHello[100];char* szHello1;HWND hWndPrevious;hWndPrevious = ::GetWindow(::GetDesktopWindow(),GW_CHILD);LPTSTR m_pszExeName;while (::IsWindow(hWndPrevious)) { int i=::GetWindowTextLength(hWndPrevious); int j=::GetWindowText(hWndPrevious,szHello,10);//获取窗口标题 do your action hWndPrevious = ::GetWindow(hWndPrevious,GW_HWNDNEXT);} 关于数据库查询结果不正常的问题 WPF窗口高度自动适应的问题。。。在线等~~~~~~~~~~~~~~~~~~~~~ vs2005 类中如何使用Page.FindControl 用ref关键字传递大的结构会提高性能么 如何移除DataGrid的内容啊? Dictionary 首先遍历添加数据然后遍历对应该相应的key改变value 一个字符串的问题 从串S中删除所有和串T相同的子串??这是原题???? 上传文件到WEB服务器 一个工业摄象头在线拍照预览录象的ocx源码 如何捕获数据库连接的错误? 大家帮忙看看这段调用API的代码出什么问题了(没分了Sorry)
2、关闭不是特定窗口的其他所有窗口。我需要知道的是能使些以上功能的WIN32 API.
2.Form f=(Form)Form.FromHandle(Handle);
string a=f.Text;
GetWindowText
/// 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
/// </summary>
/// <param name="Point">点的坐标,以像素为单位</param>
/// <returns>
/// 包含了指定点的窗口的句柄。
/// 如指定的点处没有窗口存在,则返回 IntPtr.Zero
/// </returns>
[DllImport("user32.dll")]
private static extern IntPtr WindowFromPoint(POINT Point);/// <summary>
/// 取得一个窗体的标题(caption)文字,或者一个控件的内容
/// </summary>
/// <param name="hwnd">欲获取文字的那个窗口的句柄</param>
/// <param name="buffer">预定义的一个缓冲区</param>
/// <param name="bufferLen">缓冲区的长度</param>
/// <returns>复制到buffer的字串长度;不包括空中止字符</returns>
[DllImport("user32.dll")]
public static extern int GetWindowText(IntPtr hwnd, StringBuilder buffer, int bufferLen);
莫非你们觉得这几个API就可以实现?
贴个c++的,lz可以转成C#用char szHello[100];
char* szHello1;
HWND hWndPrevious;
hWndPrevious = ::GetWindow(::GetDesktopWindow(),GW_CHILD);
LPTSTR m_pszExeName;
while (::IsWindow(hWndPrevious))
{
int i=::GetWindowTextLength(hWndPrevious);
int j=::GetWindowText(hWndPrevious,szHello,10);//获取窗口标题
do your action
hWndPrevious = ::GetWindow(hWndPrevious,GW_HWNDNEXT);
}