Сейчас на форуме: (+4 невидимых) |
eXeL@B —› Вопросы новичков —› Сапер |
Посл.ответ | Сообщение |
|
Создано: 15 июля 2006 20:33 · Личное сообщение · #1 |
|
Создано: 16 июля 2006 01:06 · Личное сообщение · #2 |
|
Создано: 16 июля 2006 15:13 · Личное сообщение · #3 Не, сапер1. Тот, который еще на 98 виндах был. Ну, вот хочу я например написать прогу антисапер (подрывник хе-хе), чтоб она сама автоматически его проходила. Т.е. не заглядывала под кнопки, чтобы посмотреть, есть там бомба или нет, а по алгоритму. Ну, не важно. Но к кнопкам не получается получить доступ,т.к. там spy++ различает только одно окно класса "Сапер" - общее. |
|
Создано: 16 июля 2006 17:46 · Личное сообщение · #4 |
|
Создано: 16 июля 2006 17:51 · Личное сообщение · #5 |
|
Создано: 16 июля 2006 20:20 · Личное сообщение · #6 |
|
Создано: 16 июля 2006 20:50 · Личное сообщение · #7 Так и пользуйся дальше WM_LBUTTONDOWN! LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_LBUTTONDOWN WPARAM wParam, // key indicator LPARAM lParam // horizontal and vertical position ); wParam MK_LBUTTON The left mouse button is down. lParam The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. MSDN рулит! ----- Blame the victim! |
|
Создано: 16 июля 2006 21:08 · Личное сообщение · #8 |
|
Создано: 16 июля 2006 21:25 · Поправил: Obsession · Личное сообщение · #9 |
|
Создано: 16 июля 2006 21:35 · Поправил: 1nn0cent · Личное сообщение · #10 |
|
Создано: 16 июля 2006 21:42 · Личное сообщение · #11 |
|
Создано: 19 июля 2006 20:59 · Личное сообщение · #12 |
|
Создано: 20 июля 2006 21:51 · Личное сообщение · #13 Нет, не читал. Я слышал еще когда-то давно(когда я еще даже не видел компьютер в глаза), что нашелся умник, который написал такую прогу. Но мне все равно хочется сейчас ее написать. Спасибо за статью, очень интересно. Но я не так хочу сделать. Во-первых, я хочу сделать по алгоритму. Во-вторых, используя то же окошко,т.е. на нем орудуя, как будто игрок играет. В-третьих, я пока не умею пользовать WindASM, это надо еще будет поучиться ломать крякми, ассемблеру. В-четвертых, это вроде как раз сапер2(если я правильно понял) Я ломаю 98го. *********************************************************** Кстати, у меня что-то пока не очень получается использовать ресурсы. На msdn совсем не понятно написано. Я нашел какой-то учебник, как ресурсы искать в exe-шнике. Но как отлавливать появление на экране - я просто не представляю. Подскажите, плиз. Не помешал бы маленький примерчик. Кстати, еще такая странная фигня. Я раньше когда использовал WM_LBUTTONDOWN, я это писал так SendMessage(hwnd,WM_LBUTTONDOWN,0,0) Если использовать координаты, то, например, так SendMessage(hwnd, WM_LBUTTONDOWN , 0,MAKELPARAM( 19, 62)); А вот как 1nn0cent предлагал, я тоже попробовал SendMessage(hwnd, WM_LBUTTONDOWN , MK_LBUTTON,0); SendMessage(hwnd, WM_LBUTTONDOWN , MK_LBUTTONUP,0); Фишка в том, что на слове MK_LBUTTONUP компилятор ругается, говорит, такого не бывает. Почему? |
|
Создано: 23 июля 2006 22:54 · Поправил: Obsession · Личное сообщение · #14 Вот у меня не получается загрузить картинки из сапера. Я нашел какую-то прогу, которая может-таки перебрать все ресурсы, которые есть в проге. (остальные примеры вообще ничего не могут загрузить) Вот эта прога(на Builder 3.0): BOOL WINAPI f_EnumFunc(HMODULE hModule,LPTSTR lpType,LONG lParam) { char vrgchBuffer[100]; if((ULONG)lpType & 0xFFFF0000) { wsprintf(vrgchBuffer,"%s\n",lpType); } else { wsprintf(vrgchBuffer,"%u\n",(USHORT)lpType); } MessageBox(0,vrgchBuffer,"Ресурс",MB_ICONEXCLAMATION); return true; } void __fastcall TForm1::Button1Click(TObject *Sender) { //Цифры выдаваемые программой говорят о номерах ресурсов, которые использовал программист при ее написании. HMODULE hMod=NULL; hMod = LoadLibrary("Indicdll.dll"); if(hMod != NULL) { EnumResourceTypes(hMod,(ENUMRESTYPEPROC)f_EnumFunc,0); FreeLibrary(hMod); } else Label1->Caption="Нет возможности загрузить модуль программы"; } Но эта прога во-первых в winmine.exe вообще ничего не находит. Я нашел InqSoftом, что она использует библиотеку С:/windows/system/Indicdll.dll Запустил прогу на поиск в этой dllине, она выдала просто 16. Не представляю, что это значит. |
|
Создано: 24 июля 2006 11:13 · Личное сообщение · #15 Obsession пишет: Не представляю, что это значит. Ресурс с картинками "разминирования" лежит в самом winmine, имеет тип bitmap и для цветного дисплея его номер - 410(видимо десятичный). Bitmap имеет форму длинного вертикального прямоугольника. Это верно для 2000-го и ХП, но думаю в 98-м все так же. 8eaa_24.07.2006_CRACKLAB.rU.tgz - 410.bmp |
|
Создано: 24 июля 2006 13:49 · Личное сообщение · #16 tundra37, спасибо большое, конечно, за старание. Но все равно не ясно, как же его оттуда достать. И не понятно, почему всего одна картинка: как ее можно использовать по частям. Если не трудно, напиши пожалуйста примерчик, хотябы как ты извлек эту картинку. А еще, как ловить сообщения WINMINE о том, что она что-то вывела на экран. Я правда читал LoadResource (и LoadBitmap и LoadIcon и LoadCursor Loadfile(кажется, там такие названия)) но вообще ничего не понятно. Мне даже уже начинает казаться, что зря я за это дело взялся, если все так сложно |
|
Создано: 25 июля 2006 12:22 · Личное сообщение · #17 Obsession пишет: Если не трудно, напиши пожалуйста примерчик, хотябы как ты извлек эту картинку. Есть программы для работы с ресурсами. Я использовал Restorator 2005. Программно с ресурсами дела не имел, поэтому подсказать не могу. Надо искать : тутор+LoadBitmap Может здесь на форуме или в статьях по программированию это есть(LoadBitmap). |
eXeL@B —› Вопросы новичков —› Сапер |