? На RadAsm-e. Мм, сначала assemble, потом link. В результате получал 2 файла - .obj и .exe. Чтобы посмотреть, выводит ли в консоль, я запустил консоль))) win+r -> cmd -> [перешел в папку в ехе-шником] -> запустил ехе-шник) Вместо текста программа просто пропускает строку и все.
У тебя метка cWritten (12 строка) с двумя "t", в функцию WriteConsoleA ты передал с одной "t". Собирать этот код так: C:\masm32\bin\ml.exe /c /coff lol.asm C:\masm32\bin\link.exe /subsystem:console lol.obj lol.asm - имя исходника.
Опрашиваю все съёмные носители и далее использую функцию CreateFile вот таким образом invoke CreateFile, drive, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN, 0 ;проверка на INVALID_HANDLE_VALUE - тогда на exit ; ОШИБКА НА ДИСКЕ, оставшемся из-за Alcohol или DAEMON TOOLS. MSDN - This error can occur if the CD-R drive or CD-RW drive is not recognized as a recordable device. cmp eax, 0 je next На одном устройстве выпадает окошко с ошибкой There is no disk in the drive (это остаток виртуального диска от DAEMON TOOLS) - если нажать далее - то всё ок. Как мне сделать так, чтобы оно не выскакивало вообще (без программного нажатия кнопки далее). В случае, если так нереально сделать - то как сделать програмнное нажатие кнопки далее - я имею ввиду - перехватить хэндл появившего окна и отослать диспетчеру что-то типа MB_OK?
Code: //Функция проверки готовности диска, нужна для дискет и компакт-дисков BOOL IsDriveReady(char drive) { BOOL res; char path[4]; asm { //заполняем path mov al,drive lea ebx,path mov [ebx],al mov [ebx+1], byte ptr':' mov [ebx+2], byte ptr'\' mov [ebx+3], byte ptr 0 push SEM_FAILCRITICALERRORS call SetErrorMode //устанавливаем минимальный уровень ошибок push eax //сохраняем страрый ErrorLevel push ebx call SetCurrentDirectory //пытаемся обратиться к приводу mov res,eax call SetErrorMode //возвращаем старый Errorlevel } return res; } Короче, надо вызвать SetErrorMode с параметром SEM_FAILCRITICALERRORS
Всё сработало отлично, благодарю. Правда, FASM отказался опознавать SEM_FAILCRITICALERRORS - пришлось заменять на 1.
Есть программа написанная на асм(имеется только *.exe)- умеет отправлять введенные в поле данные на мыло. Адрес мыла знаю. Как разложить прогу на программный код, найти там мыло и поменять на свое? PS дисасемблер не помог... знания ассемблера- 0
http://usar.pp.ru/download/ http://www.programmersheaven.com/download/20144/download.aspx http://www.ibsensoftware.com/products_aPLib.html