С помощью LMV_GETSELECTEDCOUNT получаешь число выбранных итемов, далее через LVM_GETNEXTITEM(LVIS_SELECTED) перебираешь все выбранные.
У мня еще один вопрос... Почему и как исправить, что некоторые папки не идентифицируются при их поиске как "Папка" Например: Documents and Settings - папка Program Files - пустой файл Вот код: Код (Text): .data sTypeN db "*.*",0 template db "%lu",0 szFolder db "<Folder>",0 ReadFolder Proc Local FindF:WIN32_FIND_DATA Local Buff[256]:BYTE Local SBuff[40]:BYTE Local hFind:DWORD LOCAL lvi:LV_ITEM invoke lstrcpy, addr Buff, addr Patch invoke lstrcat, addr Buff, addr sTypeN invoke FindFirstFile,addr Buff,addr FindF mov hFind,eax invoke GetLastError cmp eax,ERROR_SUCCESS jnz ExitRP mov lvi.imask,LVIF_TEXT+LVIF_PARAM mov lvi.iItem,ebx mov lvi.iSubItem,0 lea eax,FindF.cFileName mov lvi.pszText,eax mov lvi.lParam,ebx invoke SendMessage,hList, LVM_INSERTITEM,0, addr lvi mov lvi.imask,LVIF_TEXT mov lvi.iSubItem,1 invoke wsprintf,addr SBuff, addr template,FindF.nFileSizeLow .if FindF.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY invoke lstrcpy, addr SBuff, addr szFolder .endif lea eax,SBuff mov lvi.pszText,eax mov lvi.lParam,ebx invoke SendMessage,hList,LVM_SETITEM, 0,addr lvi inc ebx Next: invoke FindNextFile,hFind,addr FindF invoke GetLastError cmp eax,ERROR_SUCCESS jnz ExitRP mov lvi.imask,LVIF_TEXT+LVIF_PARAM mov lvi.iItem,ebx mov lvi.iSubItem,0 lea eax,FindF.cFileName mov lvi.pszText,eax mov lvi.lParam,ebx invoke SendMessage,hList, LVM_INSERTITEM,0, addr lvi mov lvi.imask,LVIF_TEXT mov lvi.iSubItem,1 invoke wsprintf,addr SBuff, addr template,FindF.nFileSizeLow .if FindF.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY invoke lstrcpy, addr SBuff, addr szFolder .endif lea eax,SBuff mov lvi.pszText,eax mov lvi.lParam,ebx invoke SendMessage,hList,LVM_SETITEM, 0,addr lvi inc ebx jmp Next ExitRP: xor ebx,ebx Ret ReadFolder EndP
Имеется в виду почему для Program Files не срабатывает WIN32_FIND_DATA.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY? Потому что dwFileAttributes это набор флагов, а Вы его сравниваете с одним флагом. Вероятно, для Documents and Settings никаких других флагов не установлено, поэтому условие соблюдается, а для Program Files еще какие-то флаги. Код должен выглядеть примерно так: Код (Text): test wfd.dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY .if !ZERO? ; папка .endif