CopyFile (Fasm).

Тема в разделе "WASM.BEGINNERS", создана пользователем eua, 6 авг 2010.

  1. eua

    eua New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2010
    Сообщения:
    42
    Всем доброго. Данный код копирует фаилы (txt,exe...)подскажите а как скопировать папку с файломи?
    Код (Text):
    1. format PE GUI 4.0
    2.  
    3. include 'win32ax.inc'
    4.  
    5. section '.code' code readable executable
    6. start:
    7. invoke CopyFile,lpExistingFileName,lpNewFileName,FALSE
    8. invoke ExitProcess,0
    9. .end start
    10.  
    11.  section '.data' data readable writeable
    12. lpExistingFileName db 'C:\Windows\111.txt',0
    13. lpNewFileName db 'C:\1.txt',0
     
  2. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    FindFirstFile + FindNextFile
    CreateDirectory + CreateFile
    SHCreateDirectory + SHFileOperation(Наверное тебе нужно это)

    Или вот еще топик:
    http://www.rsdn.ru/forum/winapi/2290854.flat.aspx
     
  3. eua

    eua New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2010
    Сообщения:
    42
    Ziral спасибо за внимание.вот код ,копирует папку сфайлами,если поменять FO_COPY =2 на FO_COPY =1
    перемищает, если на =3 вроде удоляет.


    .
    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3. include 'win32a.inc'
    4. struct SHFILEOPSTRUCT
    5. hwnd dd 0
    6. wFunc  dd 0
    7. pFrom dd 0
    8. pTo dd 0
    9. fFlags dd 0
    10. fAnyOperationsAborted dd 0
    11. hNameMappings dd 0
    12. lpszProgressTitle dd 0
    13. ends
    14.  
    15. FO_COPY =2
    16. section '.data' data readable writable
    17. SzPath1 db 'C:\',0
    18. SzPath db 'C:\Windows\123',0
    19. lpFileOp SHFILEOPSTRUCT
    20. section '.code' code readable executable
    21.   start:
    22.      mov [lpFileOp.wFunc], FO_COPY
    23.      mov eax, SzPath
    24.      mov [lpFileOp.pFrom],eax
    25.      mov eax, SzPath1
    26.      mov [lpFileOp.pTo],eax
    27.   invoke SHFileOperationA,lpFileOp
    28.   invoke ExitProcess,0
    29. section 'idata' import data readable writable
    30.  
    31.       library shell32,'SHELL32.DLL',\
    32.       kernel32,'KERNEL32.DLL'
    33.  
    34. import shell32,\
    35. SHFileOperationA,'SHFileOperationA'
    36.  
    37. import kernel32,\
    38. ExitProcess,'ExitProcess'
     
  4. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Красивый код! Если бы я специально искал такое, фиг бы нашёл. Тут заодно и структура как примерчег катит! Заберу себе пример в сборничег!
     
  5. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Кстати, а нельзя вопросами проинициализировать?
    hwnd dd ?
    wFunc dd ?
    ...

    Или пофиг?
     
  6. eua

    eua New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2010
    Сообщения:
    42
    Можно.Возник другой Вопрос как сделать чтоб прога сама нашла заданную папку в C:\ или D:\ а потом скопировала куда надо?
     
  7. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    И кстати, если папки нету возникнет MessageBox, а лучше бы его не было.
     
  8. eua

    eua New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2010
    Сообщения:
    42
    Я про чё и говорю,надо чтоб само нашло папку какую надо,если такой нет то Jmp дальше или exit.


    P.s Semiono проверил у меня не вылетает Massege Box.
    Код (Text):
    1.  format PE GUI 4.0
    2. entry start
    3. include 'win32a.inc'
    4. struct SHFILEOPSTRUCT
    5. hwnd dd ?
    6. wFunc  dd ?
    7. pFrom dd ?
    8. pTo dd ?
    9. fFlags dd ?
    10. fAnyOperationsAborted dd ?
    11. hNameMappings dd ?
    12. lpszProgressTitle dd ?
    13.  
    14. ends
    15.  
    16. FO_COPY =2
    17. section '.data' data readable writable
    18. SzPath1 db 'C:\',0
    19. SzPath db 'C:\Windows\123',0
    20. lpFileOp SHFILEOPSTRUCT
    21. section '.code' code readable executable
    22.   start:
    23.      mov [lpFileOp.wFunc],2
    24.      mov eax, SzPath
    25.      mov [lpFileOp.pFrom],eax
    26.      mov eax, SzPath1
    27.      mov [lpFileOp.pTo],eax
    28.  
    29.   invoke SHFileOperationA,lpFileOp
    30.   invoke ExitProcess,0
    31. section 'idata' import data readable writable
    32.  
    33.       library shell32,'SHELL32.DLL',\
    34.       kernel32,'KERNEL32.DLL'
    35.  
    36. import shell32,\
    37. SHFileOperationA,'SHFileOperationA'
    38.  
    39. import kernel32,\
    40. ExitProcess,'ExitProcess'
     
  9. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    eua, отлично! Давай ещё примеры, если есть! Про файлы, папки и реестр...
    =)
     
  10. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    [​IMG]

     
  11. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Код (Text):
    1. include '%fasm%\win32ax.inc'
    2. section '.code' executable
    3. start:
    4.         mov [lpFileOp.wFunc],2
    5.         mov [lpFileOp.fFlags],FOF_SILENT
    6.         mov eax,SzFile1
    7.         mov [lpFileOp.pFrom],eax
    8.         mov eax,SzFile2
    9.         mov [lpFileOp.pTo],eax
    10.  
    11.         invoke SHFileOperationA,lpFileOp
    12. exit:
    13.         invoke ExitProcess,NULL
    14.  
    15. section '.data' readable writable
    16.         FO_COPY = 2
    17.         FOF_SILENT = 4
    18.         SzFile2 db 'C:\',0
    19.         SzFile1 db 'C:\I\system32\Setup',0
    20.  
    21. struct  SHFILEOPSTRUCT
    22.         hWnd dd ?
    23.         wFunc dd ?
    24.         pFrom dd MAX_PATH
    25.         pTo dd MAX_PATH
    26.         fFlags dw ?
    27.         fAnyOperationsAborted dd ?
    28.         hNameMappings dd ?
    29.         lpszProgressTitle dd ?
    30. ends
    31.  
    32.         lpFileOp SHFILEOPSTRUCT
    33.  
    34. .end start
    Чёй-то FOF_NOCONFIRMATION и вообще FOF флаги не работают