Сейчас на форуме: Rio, YDS (+10 невидимых)

 eXeL@B —› Основной форум —› Цвет текста в SysListView32
Посл.ответ Сообщение


Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 28 апреля 2006 03:51 · Поправил: WELL
· Личное сообщение · #1

В общем ковыряю программу Консультант+.
Есть в этой программе окно со статистикой баз.
Вида:
Имя базы Число документов Дата пополнения

Если базы давно не пополнялись (обновлялись), то строки для этих баз (только для них) выводятся красным цветом шрифта. А для обновленных черным шрифтом.
Хочу пропатчить так, чтобы все всегда было черным цветом

Все это делается в элементе формы, который редактор ресурсов обзываетSysListView32.

Вопрос: на что брякаться?



Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 28 апреля 2006 06:05 · Поправил: bash
· Личное сообщение · #2

-



Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 28 апреля 2006 06:06
· Личное сообщение · #3

А на чем прога написана? Я вот тоже самое делал с одно прогой на Visual C++, так я сначала взял полезную прогу пипетка (в аттаче), выяснил какой это цвет (например FF3322), и в хекс-редакторе нашел и заменил нужную последовательность.
Но другой вопрос: насколько велик файл, в котором искать? Да и последовательность FF0000 (если в твоем случае красный цвет такой) будет встречаться очень часто

6fae_28.04.2006_CRACKLAB.rU.tgz - pipetkaV2.rar




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 28 апреля 2006 06:13
· Личное сообщение · #4

Написана на Visual C++
Файл почти 7 мегов.
С пипеткой попробую, может и прокатит =)
Спасибо.



Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 28 апреля 2006 06:24 · Поправил: bash
· Личное сообщение · #5

Боюсь там стандартно FF0000, самый яркий красный.

вот как в иде выглядит в моем случае:


.text:0040145D push offset unk_EEB5B5 ; lParam \\ B5B5EE это цвет шрифта в строке
.text:00401462 push ebx ; wParam
.text:00401463 push 1024h ; Msg
.text:00401468 push dword_2383410 ; hWnd
.text:0040146E call esi ; SendMessageA

Надеюсь поможет тебе это.




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 28 апреля 2006 08:28
· Личное сообщение · #6

Ага. Вот это мне и надо было. То есть все-таки через SendMessageA в качестве lParam передается.
ОК, спасибо. Теперь, думаю сделаю ;)



Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 28 апреля 2006 09:54
· Личное сообщение · #7

WELL как сделаешь - скажи, интересно очень



Ранг: 43.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 28 апреля 2006 10:24 · Поправил: nikitosk
· Личное сообщение · #8

а что надо сделать, если например в 1С 7.7 на форме у кнопки цвет текста поменять?
я вот попробовал через:
dc := GetWindowDC(wnd);
GetClientRect(wnd,rect);
BeginPath(dc);
SetTextColor(dc,RGB(128,128,222));
TextOut(dc,rect.Left,rect.Top,WindowText),5);
EndPath(dc);

и ничего на кнопке не происходит почемуто..



Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 29 апреля 2006 00:30
· Личное сообщение · #9

nikitosk
Иди по тому же пути.
Выясни на чем написан 1с, если дельфи, то может даже через ресурсы поправить можно,
если с++, то можно попробовать создать маленькую форму с кнопкой, задать особенный цвет,
а потом его найти в экзешке в качестве передаваемых в функцию данных, и на основе этого искать в 1с.

зы: вот это блин настоящий реверсинг, чтоб его!



Ранг: 43.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 30 апреля 2006 10:27
· Личное сообщение · #10

bash
к сожалению не все так просто.




Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 30 апреля 2006 13:34
· Личное сообщение · #11

а не знаете как выдрать текст из списка SysListView32 ??

давно мучался, так и не получилось
вот затонувшая тема - http://www.exelab.ru/f/action=vthread&forum=1&topic=3461

-----
in search of sunrise




Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 30 апреля 2006 16:48 · Поправил: bash
· Личное сообщение · #12

bloom
Чем тебя не устраивает List_Grabber?
alex-home-pg.nm.ru/List_Grabber.rar




Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 30 апреля 2006 20:45
· Личное сообщение · #13

bash
тем что на том списке он не работает.

-----
in search of sunrise





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 02 мая 2006 04:18
· Личное сообщение · #14

В общем цвет у меня был FF0000.
Но найти вызов я так и не смог. Все моменты типа push FF0000 не вызывались, остальных вариантов слишком много.
В итоге я сделал что хотел другим путем. Хотя в принципе вопрос остался открытым




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 02 мая 2006 09:11
· Личное сообщение · #15

Насчет 1С, кстати. А разве воообще стандартно можно цвет шрифта кнопки задавать?
Кажется нет.



Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 02 мая 2006 09:20
· Личное сообщение · #16

WELL пишет:
Все моменты типа push FF0000

может нужно искать push 0000FF ?



Ранг: 43.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 02 мая 2006 09:27
· Личное сообщение · #17

WELL пишет:
Насчет 1С, кстати. А разве воообще стандартно можно цвет шрифта кнопки задавать?
Кажется нет.

стандартно, конечно нет, но я хочу брать хэндл 1С кнопки и прямо по верху рисовать, но вот что то не получается так.




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 02 мая 2006 11:03
· Личное сообщение · #18

nikitosk пишет:
стандартно, конечно нет, но я хочу брать хэндл 1С кнопки и прямо по верху рисовать, но вот что то не получается так.

Хм. Так там и кнопки по сути самопальные. То есть не обычные стандартные виндовые.
Думаю, что вряд ли получится.



Ранг: 43.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 02 мая 2006 11:47 · Поправил: nikitosk
· Личное сообщение · #19

WELL
Конечно самопальные: какаято CBmpButton...
получилось даже сделать вот что:

но почему на ней не получается нарисовать сверху зная ее handle, не понимаю...

dc := GetWindowDC(wnd);
GetClientRect(wnd,rect);
BeginPath(dc);
SetTextColor(dc,RGB(128,128,222));
TextOut(dc,rect.Left,rect.Top,WindowText),5);
EndPath(dc);



 eXeL@B —› Основной форум —› Цвет текста в SysListView32
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати