Handle И Messages

Тема в разделе "Delphi - Система", создана пользователем Senset, 3 фев 2012.

  1. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    Задача: отловить завершение скачки торрент-файла на клиенте utorrent (взята версия 1.7.7 так как там в большинстве своем окна названы одинаково и отловить их по имени сложнее)

    Конкретная задача: вырвать из ListBox элементы... определить какой выбран, выбрать другой (если выбранный не катит) проверить список... (зы до списка пока не дошел)...

    концепция:
    есть handle окна utorrent'a, отловил handle ListBox'а... обращаюсь (аля винапи) к кол-ву элементов в блоке, вырываю их имена... и... ппц...

    Конкретика:

    Код (Delphi):
    s:='µTorrent 1.7.7';
    handle:=findwindow(nil,pchar(s));
    t:=tstringlist.Create;
    EnumChildWindows(handle,@ECWC,LParam(t));
    //В ECWC происходит заполение д.м.с. t
    h:=FHBC(t,1,'listbox');
    //В fhbc происходит определение handle по классу через массив строк, который был с сформирован в ECWC)
    listbox1.Items.Add(inttostr(h));
    t2:=tstringlist.Create;
    LB_GetAllItems(h,t2);
    t2.Clear;
    t.Clear;

    function LB_GetAllItems(hWnd: Hwnd; sl: TStringlist): string;
    var
    RetBuffer:array[0..255] of char;
    i, x: Integer;
    begin
    x := SendMessage(hWnd, LB_GETCOUNT, 0, 0);
    for i := 0 to x - 1 do
    begin
    SendMessage(hWnd, LB_GETTEXT, i, lparam(@RetBuffer));
    sl.Add(RetBuffer);
    end;
    end;
    в результате её выполнения получается не то, что надо и из этого сложно отличить то, что надо выбрать...
    т.е:
    Окно программы (через handle):
    [​IMG]
    Окно ListBox (получено через handle):
    [​IMG]
    И по коду вырывает названия элементов в ListBox...
    но и в итоге имена эти:
    [​IMG]

    Очевидно, что что-то не так... help!
     
  2. ZorkovIgor

    ZorkovIgor Гость

    1. Указывем версию Delphi или используем PWideChar/PAnsiChar вместо PChar, потому что в D7 и в DXE это уже не одно тоже
    2. Полный код в студию
    3. Интересно как вы ловите момент завершение скачки торрент-файла
     
  3. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    1. Delphi 7
    2. Полный код предоставить не могу, т.к. прога написана и выцеплять только нужные модули сложновато, но именно эта проблема не решена
    3. Сейчас не могу открыть исходник и копирнуть код, но смысл был в том, что кликается графа "все торренты", торрент обновлял таблицу, в ней производился поиск нужного торрент контента (первый атрибут) и его состояние (четвертый атрибут "done","downloading","stop", "seeding"...) и как только состояние становилось не "downloading" был репорт

    проверка производилась каждые 10 секунд
     
Загрузка...
Похожие Темы - Handle Messages
  1. Num2
    Ответов:
    0
    Просмотров:
    1.283
  2. morpheus
    Ответов:
    0
    Просмотров:
    5.034
  3. R4z0R
    Ответов:
    1
    Просмотров:
    148

Поделиться этой страницей