Привет ачатовцы. Такой вопрос, в edit контрол вписан какой то текст,как узнать количество символов и записать в файл именно вписанное кол-во символов,а не самостоятельно задавая размер буфера? пробовал с GetWindowTextLength ,но что то не получается.кто подскажет?( надо на асм)
И что тут сложного? Если твоя прога, то по ID Эдита находишь его HWND. Затем GetWindowTextLengthA для этого HWND и получаешь размер текста в байтах. Добавляешь к этому размеру еще 1 байт (символ конца строки) и затем запрашиваешь данные GetWindowTextA Если юзаешь *W функции, то всё умножай на 2
я это сделал.она возвращает кол-во байт,а как это использовать в writefile? идет же так invoke WriteFile, хэндл,буфер,число байт(вот сюда мне и надо результат функции)... я думал поместить результат в переменную типа так: invoke GetWindowsTextLength, hwndEdit mov tmp,eax inc tmp и дальше использовать переменную
так я вот не могу понять почему оно не пишет.может что то не то я делаю?и кстати переменная должна быть двойным словом?
Code: .data szFile db "a.txt",0 .data? buffer db 512 dup(?) tmp dd ? rw dd ? ... xor ebx,ebx invoke CreateFile,ADDR szFile,\ GENERIC_READ or GENERIC_WRITE ,\ FILE_SHARE_READ or FILE_SHARE_WRITE,\ NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\ NULL xchg eax, ebx invoke GetWindowText, hwndEdit, addr buffer, 256 invoke GetWindowTextLength, hwndEdit invoke WriteFile, ebx, addr buffer, eax, ADDR rw, 0 invoke CloseHandle, ebx Как-то так, не пойму в чем проблема? Опиши задачу, покажи сурсы.