Предисловие Сидит программер, клепает свою прогу, тут звонок в дверь. Программер открывает - там смерть с косой стоит. Он в панике: "Смерть, дай мне еще полчаса, я закончу прогу, над которой работал два года и можешь меня забирать..." Смерть ему в ответ: "Я не за тобой, я за твоим винтом!"
Решился я на отчаянный шаг - упростить себе жизнь путём изврата: задумал написать программу которая будет мне автоматически вводить Login и Password в окно Lineage 2.
Далее будет излагаться мало кому понятная чушь и лишь некоторые, имеющие опыт в программировании на Pascal и те кто решит разобраться смогут меня понять:
Для работы я использовал следующие программы:
1) Собстно сама Lineage 2
2) Lazarus IDE 0.9.28.2 бета (аналог Delphi 7, вполне себе ничего, тока помедленней)
3) Texter 2.15
После начала работы сразу-же столкнулся с тремя проблемами, мне нужно было:
1) Узнать название окна Lineage 2;
2) Узнать класс окна Lineage 2;
3) Вспомнить что проходили в технаре;
Пришлось вспоминать старое...
Я написал маленькую программку которая мне помогла в поиске окна Lineage и определения её Класса и Имени:
Code
procedure TForm1.Button1Click(Sender: TObject);
Var
Wd : HWnd;
Nm: Array[0..255] of Char; // буфер для имени
Cs: Array[0..255] of Char; // буфер для класса
wincount:integer; //счетчик окон
begin
Memo1.Lines.Clear; //Очистим поле перед поиском окон
wincount:=0;
Wd:=FindWindow(nil,nil); // Найдем первое окно верхнего уровня любого класса
While (Wd<>0) do // Если такое окно существует
Begin
if IsWindowEnabled(Wd) and IsWindow(Wd) and not IsIconic(Wd) then
begin
Inc(wincount);
GetWindowText(Wd,Nm,255); //Считываем имя окна
GetClassName(Wd,Cs,255); //Считываем Класс окна
Memo1.Lines.Add(IntToStr(Wd)+': Class('+String(cs)+'); Name Wnd: '+String(Nm)); // Добавим описатель, класс и имя окна в виде текста в список
end;
Application.ProcessMessages; //разрешим обработку других процессов пока выполняется цикл
Wd:=GetNextWindow(Wd,GW_HWNDNEXT); //Найдём следующее окно
end;
Edit1.text:=IntToStr(wincount);
end;
Вот что я получил:
Класс окна: L2UnrealWWindowsViewportWindow
Имя окна: Lineage II Продолжение следует....