1 (изменено: Andros, 2012-03-26 12:13:53)

Тема: AHK: Удаление неудаляемого

Мне надо, чтобы скрипт нашёл и удалил папки с запущенными файлами или запущенные файлы. Разумеется при использовании:

FileDelete, C:\Program Files\Folder\*.exe
FileDelete, C:\Program Files\Folder\*.dll

Удаляются только не запущенные. Как осуществить их удаление? Заранее спасибо.

2

Re: AHK: Удаление неудаляемого

TargetDir = C:\Program Files\Folder

Loop, %TargetDir%\*.exe
{
   Process, Exist, %A_LoopFileName%
   if ErrorLevel
   {
      WinClose, ahk_pid ErrorLevel,,2
      Process, Exist, %A_LoopFileName%
      if ErrorLevel
         Process, Close, %A_LoopFileName%
   }
}

Loop, %TargetDir%\*.dll
{
      hModule := DllCall("GetModuleHandle", Str, "%A_LoopFileName%", "Ptr")
	  if hModule
         DllCall("FreeLibrary", "Ptr", hModule)
}
sleep 500
FileDelete, %TargetDir%\*.exe
FileDelete, %TargetDir%\*.dll

3

Re: AHK: Удаление неудаляемого

Спасибо большое. А как сделать, чтобы он искал директорию Folder? Ведь она может быть в любом разделе и в любой папке. Или хотя-бы можно было выбрать её самому.

4

Re: AHK: Удаление неудаляемого

FileSelectFolder

5

Re: AHK: Удаление неудаляемого

Andros и Irbis Для справки.
Данный скрипт может не сработать, если exe или dll заблокированы системой (зависит от OS)

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

6

Re: AHK: Удаление неудаляемого

Это понятно, но раз (пока) вопросов по этому поводу не возникло, будем считать, что со своей работой скрипт справляется.