Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

infolex


Молчун

Зарегистрирован:
24 June 2008
Сообщения: 14
Примеры кода: 0
 

Как получить текст контрола в любом окне, зная его хэндл?

25 June 2008 13:20  


В общем сделал так:
Объявил:
[DllImport("user32.dll")]
private static extern IntPtr WindowFromPoint(POINT Point);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool ScreenToClient(IntPtr hWnd, out POINT lpPoint);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowText(IntPtr hWnd, out string lpString, int nMaxCount);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr ChildWindowFromPoint(IntPtr hWndParent, POINT Point);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern int GetWindowTextLength(IntPtr hWnd);

код вызова:

try
{
POINT pt=new POINT();
pt.x=Control.MousePosition.X;
pt.y=Control.MousePosition.Y;

IntPtr hw = WindowFromPoint(pt);
ScreenToClient(hw, out pt);
string str="";
GetWindowText(ChildWindowFromPoint(hw, pt), out str, GetWindowTextLength(hw)+1);
System.Diagnostics.Debug.WriteLine(str);
}
catch { }

Компилит, но при наведении на какой-нить лейбл на строчке GetWindowText(ChildWindowFromPoint(hw, pt), out str, GetWindowTextLength(hw)+1); выдает ошибку
====================
The runtime has encountered a fatal error. The address of the error was at 0x79ef067e, on thread 0x880. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.

Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 25 June 2008 13:20
Наверх
  



Winforms

 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 10:10
 Как получить текст контрола в любом окне, зная его хэндл?nvld  25 June 2008 11:23
 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 11:34
 Как получить текст контрола в любом окне, зная его хэндл?altarvic  25 June 2008 12:51
 Как получить текст контрола в любом окне, зная его хэндл?Zegee  25 June 2008 13:11
 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 13:20
 Как получить текст контрола в любом окне, зная его хэндл?Zegee  25 June 2008 13:40
 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 13:59
 Как получить текст контрола в любом окне, зная его хэндл?altarvic  25 June 2008 14:02
 Как получить текст контрола в любом окне, зная его хэндл?Zegee  25 June 2008 14:16
 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 14:57
 Как получить текст контрола в любом окне, зная его хэндл?Zegee  25 June 2008 15:20
 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 15:37
 Как получить текст контрола в любом окне, зная его хэндл?altarvic  25 June 2008 15:41
 Как получить текст контрола в любом окне, зная его хэндл?Zegee  25 June 2008 16:29
 Как получить текст контрола в любом окне, зная его хэндл?infolex  25 June 2008 14:24
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта