1. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    Привет ачатовцы. Такой вопрос, в edit контрол вписан какой то текст,как узнать количество символов и записать в файл именно вписанное кол-во символов,а не самостоятельно задавая размер буфера? пробовал с GetWindowTextLength ,но что то не получается.кто подскажет?( надо на асм)
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    И что тут сложного? Если твоя прога, то по ID Эдита находишь его HWND.
    Затем GetWindowTextLengthA для этого HWND и получаешь размер текста в байтах. Добавляешь к этому размеру еще 1 байт (символ конца строки) и затем запрашиваешь данные GetWindowTextA

    Если юзаешь *W функции, то всё умножай на 2
     
    #2 slesh, 12 Apr 2011
    Last edited: 12 Apr 2011
  3. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    я это сделал.она возвращает кол-во байт,а как это использовать в writefile?
    идет же так
    invoke WriteFile, хэндл,буфер,число байт(вот сюда мне и надо результат функции)...
    я думал поместить результат в переменную типа так:


    invoke GetWindowsTextLength, hwndEdit
    mov tmp,eax
    inc tmp
    и дальше использовать переменную
     
  4. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    а что мешает? Так тоже можно
     
  5. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    так я вот не могу понять почему оно не пишет.может что то не то я делаю?и кстати переменная должна быть двойным словом?
     
  6. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    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
    Как-то так, не пойму в чем проблема? Опиши задачу, покажи сурсы.
     
  7. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    сейчас попробую
     
  8. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    блин, нашел ошибку. все равно спасибо всем.