Посл.ответ |
Сообщение |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 07 июля 2010 04:58 · Личное сообщение · #1
Мы имеем чужое окно, я нахожу в его хендл, нахожу хендл панельки в этом окне, и нахожу на нем такой компонет как TRichViewEdit. теперь мне нужно считать текст который там находиться... трюки подобные SendMessage(h4,WM_GETTEXT,255,integer(@buffer[1]));никак не проходят, в buffer помещается пустая строчка... вот скрин  После хендлов TRichViewEdit (отмечены желтым) должны идти строчки с этих компонентов, но как видно там одни тире... помогите плиз... Если вы отвечаете на эту тему, пожалуйста, не пишите: "Такое уже задавалось много раз" "это было в другой теме" "гугль в помощь"
Если это было в другой теме, в ней содержиться ответ на данный вопрос, и автор темы сказал "ура, работает" тогда можно обозвать меня и тыкнуть на эту тему. но если эта тема умерла без ответа, то ненадо меня отправлять на нее. нужен ответ который работает
| Сообщение посчитали полезным: |
|
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 07 июля 2010 10:14 · Поправил: Coderess · Личное сообщение · #2
Приведи весь код, проверяешь результат? верно ли находятся дескрипторы?
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 07 июля 2010 13:16 · Личное сообщение · #3
Вот код
| Сообщение посчитали полезным: |
Ранг: 441.3 (мудрец), 297thx Активность: 0.41↘0.04 Статус: Участник
|
Создано: 07 июля 2010 15:18 · Личное сообщение · #4
Сообщениями выделяй весь текст в TRichViewEdit и кидай его в буфер обмена
| Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 07 июля 2010 17:11 · Личное сообщение · #5
tihiy_grom, я недопонял =)) как?
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 07 июля 2010 17:24 · Личное сообщение · #6
А лень сорцы погуглить? В сторону EM_SETSEL и вообще сообщений и работы с RichView?
| Сообщение посчитали полезным: |
Ранг: 40.4 (посетитель), 3thx Активность: 0.08↘0 Статус: Участник
|
Создано: 07 июля 2010 20:33 · Личное сообщение · #7
Значит так, проверить, пойман ли RichEdit проверяем функцией EnableWindow(handle, false), если вырубится, то все ок. А получить текст оттуда, SendMessage(handle,WM_GETTEXT, 0, Cardinal(PChar(StringValue)); должно помочь
| Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 08 июля 2010 03:45 · Личное сообщение · #8
Archer, я гуглил все что можно, но как правило, там везде тоже отправляют в гугл, никто четкого ответа не дает. ZLOvar, EnableWindow(handle, false) отлично работает, а вот SendMessage(handle,WM_GETTEXT, 0, Cardinal(PChar(StringValue)); не хочет реагировать никак...
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 08 июля 2010 08:41 · Личное сообщение · #9
Надо отправить пару несчастных сообщений, 1 из которых я дал как ключевое слово. На первой же странице в гугле можно найти ответы, если есть голова на плечах, тем более, что ключевые слова уже дали. Хотя бы www.delphipages.com/forum/showthread.php?t=50807&page=3 В следующий раз за такие приколы буду банить и надолго.
| Сообщение посчитали полезным: |
Ранг: 40.4 (посетитель), 3thx Активность: 0.08↘0 Статус: Участник
|
Создано: 08 июля 2010 10:54 · Личное сообщение · #10
А зачем тебе, собственно, SendMessage? Есть ведь отличная функция-заглушка GetWindowText или GetDlgItemText.
| Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 09 июля 2010 14:56 · Личное сообщение · #11
Archer спасибо конечно, но с выделением текста, и копированием его в буфер, это не вариант. Извини, забыл упамянуть, что этот Rich не позволяет выделять и редактировать текст. он выступает скорее как лейбл, на который можно только нажимать. и сколько раз я не пытался с выделением, не получается. единственное что работало, это когда я открывал эту прогу через олю, затирал проверочку на возможность редактирования, потом, сам в ручную(EM_SETSEL что-то и тогда не хотел работать) выделял текст, и вот тогда WM_COPY срабатывало. но меня это никак не устраивает... тогда уж лучше PrintScreen + fineReader  =)) ZLOvar, вот это интересненько, можно по подробней? =))
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 09 июля 2010 15:10 · Личное сообщение · #12
Это что же у тебя за софт такой волшебный, где ничего не работает? Выкладывай тогда софтину.
| Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 09 июля 2010 15:43 · Личное сообщение · #13
Вот программа: www.multiupload.com/85ZVBJO38F Мне нужно читать вопросы + ответы, в режиме тестирования =))
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 09 июля 2010 16:13 · Личное сообщение · #14
StanisLove пишет: Мне нужно читать вопросы + ответы, в режиме тестирования =)) [16:04:45] <@BoRoV> хотя в таких случаях дучше отреверсить сам алго чтения файдов-вопросов, или базы с результатами [16:05:50] <@BoRoV> я такую прогу на правктике в этом году от реверсил, в очень многих школах по всеё стране у нас проводят на ней тестирование, я ради интереса решил глянуть... [16:06:22] <@BoRoV> написал читалку файлов-вопросов, с выводом правильных ответов, и редактор базы результатов тебе лучше в эту сторону копать
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 09 июля 2010 16:20 · Личное сообщение · #15
BoRoV спасибо за советы, но проблем с правильными ответами нет =)) мне нужно вытаскивать вопросы во время тестирования =)
| Сообщение посчитали полезным: |
Ранг: 40.4 (посетитель), 3thx Активность: 0.08↘0 Статус: Участник
|
Создано: 09 июля 2010 20:44 · Личное сообщение · #16
StanisLove пишет: вот это интересненько, можно по подробней? =)) Это стандартные АПИ функции для работы с текстом из чужих окон. Пример: GetWindowText(handle, 'Text', 1);, GetDlgItemText(handle, int_nIDDlgItem, lpString, 1);
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 09 июля 2010 22:06 · Поправил: BoRoV · Личное сообщение · #17
ZLOvar пишет: GetWindowText(handle, 'Text', 1); Во-первых, как ты прочтешь в константу во-вторых, с длниой 1 ты ничего не прочтешь вообще, кроме нультерминируещего символа з.ы. ZLOvar какая-то бредовая у тебя статья!
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 40.4 (посетитель), 3thx Активность: 0.08↘0 Статус: Участник
|
Создано: 10 июля 2010 00:06 · Личное сообщение · #18
BoRoV пишет: Во-первых, как ты прочтешь в константуво-вторых, с длниой 1 ты ничего не прочтешь вообще, кроме нультерминируещего символа Я просто привел пример. BoRoV пишет: ZLOvar какая-то бредовая у тебя статья! Кому как, она ведь на новичков была ориентирована. Я её щас сам читаю, немного не то конечно.
| Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 июля 2010 11:21 · Личное сообщение · #19
ZLOvar, не помогает... есть еще какие нибудь предложения?
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 10 июля 2010 11:26 · Личное сообщение · #20
забить?! если ты говоришь, что ответы знаешь, тогда зачем это тебе?
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 июля 2010 11:49 · Личное сообщение · #21
Что бы искался вопрос в базе, и правильные ответы помечались =))
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 10 июля 2010 11:52 · Личное сообщение · #22
пропатч базу, чтоб все ответы были правильные
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 июля 2010 11:57 · Личное сообщение · #23
не, база моя, с правильными ответами =)) суть такова, запускаем тест, он выдает нам вопрос, мы его прогой считываем с Rich, ищем в базе на него ответ, и правильные ответы в тесте помечаем =))
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 10 июля 2010 12:00 · Личное сообщение · #24
так ты выступаешь в роли проверяющего, или в роли сдающего?
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 июля 2010 12:08 · Личное сообщение · #25
в данный момент в роли сдающего. это как подсказка в тесте. не знаю я ответ на вопрос. запустил программку свою, она считала вопрос, и показала ответы =)
| Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 10 июля 2010 12:20 · Личное сообщение · #26
как варианты: 1) заинжекти длл в прогу туда где идет считывание вопроса с базы, так можешь получить вопрос, а там уже как-то и выделить правильный. 2) ну предположительно там вопросы выбираются по рандому, если он инициализируется не через рандомайз, а какой-то конкретной переменой, то можешь перехватить её, и можешь сделать прогу помощника, которая будет выбирать по такой же схеме вопросы с базы, и при надобности выводить правильный ответ
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 2.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 июля 2010 13:23 · Личное сообщение · #27
BoRoV заинжекти длл - мммм. для меня такое рано  ну на счет 2 варианта, можно попробовать. Спасибо за советы, благодарен. надеюсь еще кто-нибудь откликнется, поможет кодом, вопрос всё еще открыт.
| Сообщение посчитали полезным: |
 Ранг: 164.6 (ветеран), 65thx Активность: 0.12↘0 Статус: Участник Волшебник
|
Создано: 10 июля 2010 14:25 · Личное сообщение · #28
Попробуй поставить хук на оконную процедуру нужного TRichViewEdit. Проверяй в нём сообщения EM_SETSEL, WM_COPY, WM_GETTEXT и отпровляй их на стандартную обработку. Далее всё как описывалось выше.
----- Следуй за белым кроликом | Сообщение посчитали полезным: |