Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.05.2018, 17:36
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию ListView/Grid - Get item count

Есть такое нечто с Классом xxxListClass
listclas.png
Задача максимум - получить содержимое.
Задача минимум - Получить кол-во строк.
Код:
  AParentWindow := 0;
  GridWND := 0;
  EnumWindows(@FindGrid, 0);
  Label1.Caption := Format('Window Handle: %d'+sLineBreak+'Grid Handle: %d', [AParentWindow, GridWND]);
  if GridWND <> 0 then
  begin
   i:= ListView_GetItemCount(GridWND);
   ShowMessage(IntToStr(i));
   i:=SendMessage(GridWND,LVM_GETITEMCOUNT,0,0);
     ShowMessage(IntToStr(i));
  end;
в обоих случаях I=0. Смущает ListView, но если не он, то что использовать?

Последний раз редактировалось nixon232, 06.05.2018 в 17:41.
Ответить с цитированием
  #2  
Старый 06.05.2018, 19:33
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Попробуйте получить имя класса этого окна. Может имя класса подскажет куда смотреть.

Цитата:
Код:
  if Boolean(GetClassName(hWnd, aName, 256)) then 
    Label2.Caption := 'ClassName :  ' + string(aName) 
  else 
    Label2.Caption := 'ClassName :  not found';
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #3  
Старый 06.05.2018, 22:11
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от dr. F.I.N.
Попробуйте получить имя класса этого окна. Может имя класса подскажет куда смотреть.
имя класса родительского окна все тот же #32770. нахожу его в EnumWindows, потом пихаю его в EnumChildWindows и нахожу свой Grid
по MSDN это дефолтный DlgBox
Цитата:


The following table describes the system classes that are available only for use by the system. They are listed here for completeness sake.

Class Description
ComboLBox The class for the list box contained in a combo box.
DDEMLEvent The class for Dynamic Data Exchange Management Library (DDEML) events.
Message The class for a message-only window.
#32768 The class for a menu.
#32769 The class for the desktop window.
#32770 The class for a dialog box.
#32771 The class for the task switch window.
#32772 The class for icon titles.
имя класса таблицы писал ранее, это xxxListClass, где ххх - имя приложения.

Все, что интересного нашел Windows Detective если скормить класс
Код:
 <windowPropsList>
        <windowProp>
            <name>ListControl</name>
            <data>0x0DFBE404</data>
        </windowProp>
        <windowProp>
            <name>UxSubclassInfo</name>
            <data>0x0D7953F0</data>
        </windowProp>
    </windowPropsList>
Может есть какой-то лучше инструмент для исследований? Хотел найти Spy++ Отдельно, но не смог.

Последний раз редактировалось nixon232, 06.05.2018 в 23:11.
Ответить с цитированием
  #4  
Старый 07.05.2018, 13:43
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Не люблю догадки гадать. Есть возможность это приложение скачать для экспериментов?
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #5  
Старый 07.05.2018, 18:39
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Скачать, то можно, но я не уверен, что вы будете этим заморачиваться.
Приложение PokerStars. но чтобы добраться до нужного окна, нужна регистрация
Ответить с цитированием
  #6  
Старый 07.05.2018, 20:36
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

[hided...]

Последний раз редактировалось nixon232, 11.05.2018 в 08:05.
Ответить с цитированием
  #7  
Старый 08.05.2018, 17:02
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Мда, судя по всему задача не так проста. И Вы не единственный, кто ищет решение. По запросу PokerStarListClass много интересного и намек на решение я увидел только один.
Цитата:
Поставил хук на CreateFontIndirect. Отключил сглаживание.
Дальше через самописный OCR получаю текст.
(c) Игорь007

Хотя, на мой взгляд, это не то решение, которого Вы ожидали.

Даже не знаю, имеет ли смысл копать в этом направлении.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение:
nixon232 (08.05.2018)
  #8  
Старый 08.05.2018, 20:03
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Да, непростой путь, но спасибо и на том. Плохо только что Delphi и OCR Вещь мало совместимая. Есть, конечно, набор компонентов энтузиаста, но навыков пока не хватает применить его наработки. Более простые варианты распознавания, оставляют желать лучшего.
Спасибо за пищу для размышлений.
Ответить с цитированием
  #9  
Старый 09.05.2018, 18:55
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Подскажите где нужно перехватывать ExTextOut?

Последний раз редактировалось nixon232, 09.05.2018 в 19:52.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter