Удаление файлов из корзины

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Lisabon
У меня UAC тоже включен и никаких ошибок не вижу. Срипт не обязательно запускать от админа, он и так работает при обычном запуске из Exporer.
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

imig73
не обязательно запускать от админа
Не обязательно, но... Если запустить от админа, то ошибка есть, а если не запускать от админа, то ошибки - нет. Это на Win 7.

Для Vista... Если не запускать от админа, то ошибка:

Код: Выделить всё

Сценарий:	C:\EmptyRecycleBin.vbs
Строка:	13
Символ:	3
Ошибка:	Неопознанная ошибка 
Код:	80004005
Источник: 	(null)
Если запустить от админа, то ошибка:

Код: Выделить всё

Сценарий:	C:\EmptyRecycleBin.vbs
Строка:	12
Символ:	1
Ошибка:	Невозможно создание объекта контейнером ActiveX: 'GetObject'
Код:	800A01AD
Источник: 	Ошибка выполнения Microsoft VBScript
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Lisabon
Ах Vista, ну тада не знаю у меня её нету и не могу протестировать. На 7, 8 и 10 любой разрядности ошибок нет, хоть как запускай...
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Как-то это странно, держать целую утилиту или скрипт для очистки корзины, не? С NirCmd понятно - утилиту можно использовать не только для этого.

Очистка корзины на AutoIt, одной командой:

Код: Выделить всё

"%COMMANDER_PATH%\AutoIt3.exe" /AutoIt3ExecuteLine "FileRecycleEmpty()"
Очистка корзины конкретного диска, пусть будет D:

Код: Выделить всё

"%COMMANDER_PATH%\AutoIt3.exe" /AutoIt3ExecuteLine "FileRecycleEmpty('D:\')"
Хотя есть нюанс: требуется наличие IE4+.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Skif_off писал(а):Как-то это странно, держать целую утилиту или скрипт для очистки корзины, не?
Наверное всё же "не", ведь autoit3.exe это тоже утилита 732,7 KB, ИМХО скрипт на 993 байта выглядит практичней. Если уж утилита, то тогда RecycleNOW на 20 KB. Конечно если есть куча полезных скриптов для autoit, то и вопросов нет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off писал(а):С NirCmd понятно
Что понятно? Это? Изображение :
imig73 писал(а):nircmd утилита годная и много чего умеет, но не для тотала она у меня
Про FileRecycleEmpty (в т. ч. в AHK) я прекрасно знал, но мне было даже стыдно такое предлагать, навязывая интерпретатор, в 1000 раз больший, чем скрипт...
imig73 писал(а):это тоже утилита 732,7 KB
Последняя x32 = 875 Кб и x64 = 990 Кб.
imig73 писал(а):то тогда RecycleNOW на 20 KB.
rbc вообще 10 Кб весит. :wink:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

imig73 писал(а):Наверное всё же "не", ведь autoit3.exe это тоже утилита
Естественно, нет смысла брать AutoIt ради одной команды очистки корзины и пример на AutoIt связан не с первым вопросом, а названием темы и с "утилиту можно использовать не только для этого".
У меня скриптов десятка 3 точно и, думаю, я не одинок. Или: количество скачиваний TCIMG с сайта wincmd.ru 237361, заодно пробуем

Код: Выделить всё

"%COMMANDER_PATH%\TCIMG\TCIMG.exe" /AutoIt3ExecuteLine "FileRecycleEmpty()"
Работает. И понятно, почему. Запуск любого скрипта:

Код: Выделить всё

"%COMMANDER_PATH%\TCIMG.exe" /AutoIt3ExecuteScript "%COMMANDER_PATH%\Utils\DontSleep.au3"
Т.е. если уже есть, зачем тянуть что-то ещё, на 20 КБ, 10 КБ или даже 993 Б?
Flasher писал(а):я прекрасно знал, но мне было даже стыдно такое предлагать
Как-по мне, не стыдно озвучить все варианты, как ты нередко делаешь.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Skif_off
Юзер сам решит что ему надо, ваш совет с Autoit имеет право на жизнь + 30 скриптов к нему. Вот у меня есть Autoit и 1 скрипт по замене текста в файлах по нескольким полям, но не пригодился за 2 года ни разу, теперь уберу вместе с интерпретатором.

Касаемо TCIMG, здесь вообще его возможности зашкаливают, но размер в почти 15 MB мне однозначно не нужен, как и сами его функции. Помню на ру-борде в теме по сборкам, сборки на 2,36GB(!) со всяким говном, и не впечатляет утилита эта такого размера с кучей не нужного в работе барахла, которое создатель запихал в 1 exe.

993 Б тянуть не надо, им пользуешся уже второй день и не замечаешь его совсем.

Варианты нужно озвучить все, против никто не будет и как уже написал "Юзер сам решит что ему надо".
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off
Я смотрю, ты в провокаторы заделался. Есть ряд скриптовых языков, но ты из них всех тянешь именно AutoIt и выдаёшь его с позиции, что лучше для остальных. И кому тут интересно какое-то липовое кол-во скачиваний, из которого в лучшем случае 0.0005% реальных пользователей? Спецом для тебя.
Skif_off писал(а):Т.е. если уже есть, зачем тянуть что-то ещё, на 20 КБ, 10 КБ или даже 993 Б?
Если есть. А если нет? Ты сам понимаешь, что это глупый вопрос, в котором сравниваемое может быть переставлено местами? Ты понимаешь, что то, о чём ты пишешь, это пакет из 100+ файлов, которые тоже надо "тянуть"? (рит.)
Skif_off писал(а):как ты нередко делаешь.
Приведи хоть один пример. Тебя за язык никто не тянул.
Хочешь заняться публикацией всех решений, так вперёд. Есть ещё по меньшей мере 100 вариантов на всяких языках. Ждём твоих изысканий.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Перепалку прекращаем. Альтернативные решения в разумных пределах предлагать не возбраняется, а кому надо, будет сам выбирать, какие из вспомогательных инструментов ему влом скачивать, а какие не влом.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Lisabon
Тогда так:

Код: Выделить всё

'====== VBS ======
' Очистить корзину
'===== Flasher © =
Option Explicit: Dim RBin, Old, Par, Str, i, L, Title, A
Set RBin = CreateObject("Shell.Application").NameSpace(10)
With CreateObject("Scripting.FileSystemObject")
  Old = .GetFileVersion(.GetSpecialFolder(1) & "\shell32.dll") < "6.0.6"
  If Old Then Par = 625 : Str = 6 Else Par = 1050 : Str = 8
  If RBin.Items.Count = 1 Then
    If .FileExists(RBin.Items.Item(0).Path) Then
      If Old Then Par = 1042 : Str = 9 Else Par = 1055 : Str = 13
    Else
      If Old Then Par = 1043 : Str = 3 Else Par = 1056 : Str = 4
    End If
  End If
End With
RBin.Self.InvokeVerb "Empty"
With CreateObject("CDO.Message").AddAttachment("res://shell32.dll/6/" & Par).GetDecodedContentStream
  .Type = 1
  For i = 0 To Str
    L = AscB(.Read(2)) * 2 : If L > 0 Then Title = CStr(.Read(L))
  Next
End With
With CreateObject("WScript.Shell")
  Do : A = .AppActivate(Title) : Loop Until A
  WSH.Sleep 10 : .SendKeys "~"
End With
While RBin.Items.Count : WSH.Sleep 400 : Wend
Set RBin = Nothing
Либо:

Код: Выделить всё

'=================
' Очистить корзину
'=================
Set RBin = CreateObject("Shell.Application").Namespace(10)
With CreateObject("Scripting.FileSystemObject")
  While RBin.Items.Count
    Path = .GetParentFolderName(RBin.Items.Item(0).Path)
    .DeleteFolder Path & "\*", 1 : .DeleteFile Path & "\*", 1
  Wend
End With
Set RBin = Nothing
Последний раз редактировалось Flasher Сб июл 21, 2018 15:26, всего редактировалось 2 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

Flasher
Тогда так:
На Win XP выскакивает стандартное окно подтверждения очистки корзины. Это окно висит и ждёт выбора пользователя. Если нажать нет, то выскакивает ошибка:

Код: Выделить всё

Сценарий:	C:\EmptyRecycleBin.vbs
Строка:	9
Символ:	1
Ошибка:	Указанное имя ресурса не найдено в файле образа.

Код:	80070716
Источник: 	CDO.Message.1
Если нажать да, то корзина очищается, но через некоторое время выскакивает, выше указанная ошибка.
Нужен ли чтобы в системе установлен какой-то компонент?
С другими операционками, проблем пока не увидел.
Последний раз редактировалось Lisabon Сб июл 21, 2018 15:51, всего редактировалось 4 раза.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
Да, скрипт на этой странице без PS ещё более универсален и работает на XP и 2k3 с оговорками. Выдаётся запрос на удаление, корзина очищается и выдаётся ошибка
Изображение
которую просто закрываю. На 7, 8 и 10 ошибок и вопросов нет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Lisabon
imig73
Cкиньте свои %WinDir%\SYSTEM32\ru-RU\shell32.dll.mui.
В т. ч. для 2k3.

imig73
См. п. 2 снизу.
imig73 писал(а):На 7-ке х32 и XP x32 скрипт отрабатывает без нареканий
А теперь с оговорками? :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
У меня в XP и 2k3 в System32 нет файла shell32.dll.mui (Версии ОС изначально русские).
Flasher писал(а):А теперь с оговорками
Не совсем понял :) Скрипт без PS с этой страницы универсальней и работает везде хорошо, кроме недочёта описанного мной для XP и 2k3 и Lisabon выше.

p.s. Отвечать довольно сложно, сайт постоянно падает и глючит...
Ответить