Считать caption кнопки зная handle - C#
Формулировка задачи:
Здравствуйте.
Как можно считать caption статус бара или другого любого объекта зная handle
Есть такой код, но он только для форм(?)
public static string GetCaptionOfWindow(IntPtr hwnd)
{
string caption = "";
StringBuilder windowText = null;
try
{
int max_length = GetWindowTextLength(hwnd);
windowText = new StringBuilder("", max_length + 5);
GetWindowText(hwnd, windowText, max_length + 2);
if (!String.IsNullOrEmpty(windowText.ToString()) && !String.IsNullOrWhiteSpace(windowText.ToString()))
caption = windowText.ToString();
}
catch (Exception ex)
{
caption = ex.Message;
}
finally
{
windowText = null;
}
return caption;
}Решение задачи: «Считать caption кнопки зная handle»
textual
Листинг программы
[DllImport("user32.dll", EntryPoint = "SendMessage",CharSet = CharSet.Auto)]
static extern int sm(IntPtr hwndControl, uint Msg,int wParam, StringBuilder strBuffer);
[DllImport("user32.dll", EntryPoint = "SendMessage",CharSet = CharSet.Auto)]
static extern int smm(IntPtr hwndControl, uint Msg,int wParam, int lParam);
static int GetTextBoxTextLength(IntPtr hTextBox)
{
uint WM_GETTEXTLENGTH = 0x000E;
int result = smm(hTextBox, WM_GETTEXTLENGTH,
0, 0);
return result;
}
static string GetTextBoxText(IntPtr hTextBox)
{
uint WM_GETTEXT = 0x000D;
int len = GetTextBoxTextLength(hTextBox);
if (len <= 0) return null;
StringBuilder sb = new StringBuilder(len + 1);
sm(hTextBox, WM_GETTEXT, len + 1, sb);
return sb.ToString();
}