Volniy

|
Posted: Tue Mar 21, 2006 01:42 Post subject: |
|
|
Batya wrote: | Volniy
Вообще-то задача изначально стояла:
Quote: | Как можно выделить дубликат(ы) для удаления? |
Удалить-то - просто, а как выделить? |
Я же хотел именно, как проще... Ну ладно, тогда можно переписать вот так:
Code: | '=====================[ Start of file ]=========================
' File: SelNotFirst.vbs
' Description: Удаляет все парные файлы кроме первого
' из списка, созданного поиском дубликатов в ТС
' Installation: Создайте кнопку на панели TC
' Команда: "диск:\путь\к\файлу\SelNotFirst.vbs"
' Параметры: "%L"
' Copyright: (c) 2006, Volniy
Option Explicit
Dim FSO, ListFile, SelFile,TCS
Dim File1, File2, Cnt, Buf
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine
File2 = FSO.GetFileName(SelFile)
If StrComp(File1, File2, 1) = 0 Then
Buf = Buf & SelFile & vbNewLine
Cnt = Cnt + 1
End If
File1 = File2
Loop
ListFile.Close
'TCS.ClearClip
TCS.SetTextToClip CStr(Buf)
TCS.SendCommand "cm_LoadSelectionFromClip", True
Set ListFile = Nothing
Set FSO = Nothing
Set TCS = Nothing
MsgBox "Выделено дубликатов: " & Cnt, vbInformation, "Завершено!"
WScript.Quit
'=====================[ End of file ]=========================
|
Quote: | Лучше скажи, почему SendKeystroke может криво отрабатывать? Где-то проскакивало, что на XP SendKeys криво работает. Не знаешь, как обойти? |
Насчет глюков с SendKeys подтверждают и Мелкомягкие. А в твоем скрипте, как я понял, проблема-то не в этом. Просто когда открывается виндовое диалоговое окно выбора файла фокус ввода может попадать совсем даже не в поле для имени файла (у меня, например, дерево дисков в фокусе), а SendKeys именно полю в фокусе шлет нажатия клавиш, вот и облом выходит. Я вообще очень неприветствую управление системными диалоговыми окнами через SendKeys: вполне можно наделать пакостей (например, поудалять файлы или типа того). |
|