Как очистить винт от всякого мусора?

Тема в разделе "WASM.WIN32", создана пользователем Flasher, 10 фев 2005.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Какие будут предложения?

    Я вот знаю 2 способа:
    Код (Text):
    1. CleanTemporaryInternetFiles proc
    2.      local hCache:HANDLE
    3.      local dwBufferSize:DWORD
    4.      local hHeap:HANDLE
    5.      local pHeap:LPVOID
    6.      local CacheEntry[16]:INTERNET_CACHE_ENTRY_INFO
    7.        and hCache,0
    8.        and pHeap,0
    9.        mov dwBufferSize,sizeof CacheEntry
    10.        invoke FindFirstUrlCacheEntry,0,addr CacheEntry,addr dwBufferSize
    11.          .if eax != 0
    12.             mov hCache,eax
    13.          .else
    14.             invoke GetLastError
    15.               .if eax == ERROR_INSUFFICIENT_BUFFER
    16.                  invoke GetProcessHeap
    17.                  mov hHeap,eax
    18.                  invoke HeapAlloc,hHeap,HEAP_ZERO_MEMORY,dwBufferSize
    19.                  mov pHeap,eax
    20.                  invoke FindFirstUrlCacheEntry,0,addr CacheEntry,addr dwBufferSize
    21.                    .if eax != 0
    22.                       mov hCache,eax
    23.                    .endif
    24.               .endif
    25.          .endif
    26.        .if hCache != 0
    27.           .while TRUE
    28.                 invoke FindNextUrlCacheEntry,hCache,addr CacheEntry,addr dwBufferSize
    29.                   .if eax == FALSE
    30.                      invoke GetLastError
    31.                      .break .if eax == ERROR_NO_MORE_ITEMS
    32.                   .endif
    33.                 invoke DeleteUrlCacheEntry,CacheEntry.lpszSourceUrlName
    34.           .endw
    35.           invoke FindCloseUrlCache,hCache
    36.        .endif
    37.        .if pHeap != 0
    38.           invoke HeapFree,hHeap,0,pHeap
    39.        .endif
    40.        ret
    41. CleanTemporaryInternetFiles endp
    42. CleanRecycle proc
    43.        invoke SHAddToRecentDocs,SHARD_PATH,0
    44.        invoke SHEmptyRecycleBin,0,0,SHERB_NOCONFIRMATION+SHERB_NOPROGRESSUI+SHERB_NO SOUND
    45.        ret
    46. CleanRecycle endp


    Можно ещё замутить FindFirstFile\FindNextFile с "*.log", и очистить их.
     
  2. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    есть предложение не записывать мусор на винт.
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    предлагаю более радикальное средство

    format с:

    или какой там диск нужно очистить :derisive:
     
  4. Vi_Al

    Vi_Al New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2005
    Сообщения:
    38
    Поподробней мона? От какого мусора?
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    используй acronis
     
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Flasher

    Код CleanTemporaryInternetFiles неправилен.
     
  7. lotos_od

    lotos_od New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    29
    Адрес:
    Ukraine
    Ну ведь это ещё не всякий мусор. К примеру остаётся:

    *История документов/МедиаПлеера/Пуск-Выполнить и тд.

    *Временные файлы

    *Кукисы



    Кроме того можно предложить поудалять файлы с некоторыми расширениями (вроде *.tmp ).
     
  8. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640


    всего того - что занимаюет лишнюю память, и бесполезен.

    q_q, я всего-лиш взял этот исходник (помоему отсюда скачивал), убрал мессаги и один .else :)



    Можно-ли программно узнать путь к Cookies ?

    или опять придётся натравить FindFirstFile\FindNextFile - C:\Documents and Settings\ ?

    [​IMG] _1348175018__Clear_IE_Cache.rar
     
  9. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Flasher

    Можно-ли программно узнать путь к Cookies ?

    SHGetSpecialFolderPath/SHGetFolderPath + CSIDL_COOKIES.



    я всего-лиш взял этот исходник

    Сочувствую.

    Рабочий код (на Си) тут.
     
  10. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    q_q, Лично у меня вышепреведённый код всё удаляет из папки Temporary Internet Files.
     
  11. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Flasher

    Это не мои проблемы.

    Поясни какую роль играет pHeap?
     
  12. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    q_q, зачем так воинственно, дорогой? :)

    в pHeap хронятся данные, которые возвращает HeapAlloc, а HeapAlloc - выделяет память :P

    а ещё pHeap указывается, чтоб потом моно было освободить память ;)
     
  13. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Flasher

    Вопрос в другом: "Зачем резервируется память?"
     
  14. Vi_Al

    Vi_Al New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2005
    Сообщения:
    38
    всего того - что занимаюет лишнюю память, и бесполезен.



    Отключить неиспользуемые сервисы.

    Восстановление системы (также резервные копии в папке %sysdir%\dllcache).

    Дефрагментировать реестр.

    Удалить из автозагрузки лишние исполняемые файлы и библиотеки.
     
  15. Vi_Al

    Vi_Al New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2005
    Сообщения:
    38
    В каталоге %WinDir%\Inf находишь файл sysoc.inf и правишь:

    Было:

    WBEM=ocgen.dll,OcEntry,wbemoc.inf,hide,7

    Display=desk.cpl,DisplayOcSetupProc,,7



    Стало:

    WBEM=ocgen.dll,OcEntry,wbemoc.inf,,7

    Display=desk.cpl,DisplayOcSetupProc,,7



    То есть все комбинации ,hide, заменяешь на ,,



    Открываешь установка/удаление программ --> установка дополнительных компонент. Теперь много чего удалить можно, хоть Paint.
     
  16. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    процедура CleanTemporaryInternetFiles бажная: HeapAlloc выполняется только после первого FindFirstUrlCacheEntry а выделенная память (pHeap) вообще не используется!
    чтобы удалить только куки нужен такой вызов:
    Код (Text):
    1. invoke FindFirstUrlCacheEntry,CTEXT("cookie:"),addr CacheEntry,addr dwBufferSize
    а чтобы удалить только history такой:
    Код (Text):
    1. invoke FindFirstUrlCacheEntry,CTEXT("history:"),addr CacheEntry,addr dwBufferSize