![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() У меня есть программа, в которой текст из многострочного поля нельзя скопировать. Я читал в книге Программирование Delphi глазами хакера, тему о программе, которая открывает, все символы, скрытые под звездочками. Я хочу создать похожую программу, которая бы копировала текст из чужого окна. Какое сообщение нужно отправить этой программе?
|
#2
|
||||
|
||||
![]() Наверное WM_GETTEXT, смотря, в каком компоненте (контроле) этот текст содержится.
THE CRACKER IS OUT THERE |
#3
|
||||
|
||||
![]() Скорее всего RichEdit, потому что текст меняет цвет и и размер.
А какие параметры указывать? |
#4
|
||||
|
||||
![]() Вот из Win32 SDK описание ф-ции GetWindowText (ее можно юзать в твоем случае):
The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. int GetWindowText( HWND hWnd, // handle of window or control with text LPTSTR lpString, // address of buffer for text int nMaxCount // maximum number of characters to copy ); Parameters hWnd Identifies the window or control containing the text. lpString Points to the buffer that will receive the text. nMaxCount Specifies the maximum number of characters to copy to the buffer. If the text exceeds this limit, it is truncated. Return Values If the function succeeds, the return value is the length, in characters, of the copied string, not including the terminating null character. If the window has no title bar or text, if the title bar is empty, or if the window or control handle is invalid, the return value is zero. To get extended error information, call GetLastError. This function cannot retrieve the text of an edit control in another application. Remarks This function causes a WM_GETTEXT message to be sent to the specified window or control. This function cannot retrieve the text of an edit control in another application. See Also GetWindowTextLength, SetWindowText, WM_GETTEXT А вот описание WM_GETTEXT: An application sends a WM_GETTEXT message to copy the text that corresponds to a window into a buffer provided by the caller. WM_GETTEXT wParam = (WPARAM) cchTextMax; // number of characters to copy lParam = (LPARAM) lpszText; // address of buffer for text Parameters cchTextMax Value of wParam. Specifies the maximum number of characters to be copied, including the terminating null character. lpszText Value of lParam. Points to the buffer that is to receive the text. Return Values The return value is the number of characters copied. Default Action The DefWindowProc function copies the text associated with the window into the specified buffer and returns the number of characters copied. Remarks For an edit control, the text to be copied is the content of the edit control. For a combo box, the text is the content of the edit control (or static-text) portion of the combo box. For a button, the text is the button name. For other windows, the text is the window title. To copy the text of an item in a list box, an application can use the LB_GETTEXT message. When the WM_GETTEXT message is sent to a static control with the SS_ICON style, the handle of the icon will be returned in the first four bytes of the buffer pointed to by lpszText. This is true only if the WM_SETTEXT message has been used to set the icon. In a rich edit control, if the text to be copied exceeds 64K, use either the message EM_STREAMOUT or EM_GETSELTEXT. See Also DefWindowProc, EM_GETSELTEXT, EM_STREAMOUT, GetWindowText, GetWindowTextLength, LB_GETTEXT, WM_GETTEXTLENGTH, WM_SETTEXT Если что-то непонятно, то пользуйся словарём, а если и он не поможет - пиши, постараюсь помочь. THE CRACKER IS OUT THERE |