Копирование имени без слеша
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
skyinfire
[s]Batya логическую ошибку допустил.[/s]
[s]Batya логическую ошибку допустил.[/s]
Последний раз редактировалось Flasher Чт июл 12, 2012 00:01, всего редактировалось 1 раз.
Не надо вводить в заблуждение.Flasher писал(а):Batya логическую ошибку допустил.
Если речь об этом скрипте, то там всё правильно:
Если есть ошибка (т.е. объект "TCScript.Helper" не зарегистрирован), то копирование выполняется через IE.
Проблема с регистрацией TCScript.Helper связана, я более чем уверен, с тем, что не делается от имени администратора.
В Windows 7 надо выполнять команду по правой кнопке мыши "Запуск от имени администратора".
Нет, я не сплю. Я просто медленно моргаю.
Извиняюсь, к вечеру голова опухла..Batya писал(а):Если речь об этом скрипте, то там всё правильно
Ну, это не вариант - постоянно через этот диалог подобные команды запускать. Уж лучше nircmd прикрутить.Batya писал(а):В Windows 7 надо выполнять команду по правой кнопке мыши "Запуск от имени администратора".
Я вёл речь только о регистрации (запуске файла TCWSHelp.exe), что выполнять "постоянно" не нужно.Flasher писал(а):Ну, это не вариант - постоянно через этот диалог подобные команды запускать. Уж лучше nircmd прикрутить.Batya писал(а):В Windows 7 надо выполнять команду по правой кнопке мыши "Запуск от имени администратора".
Нет, я не сплю. Я просто медленно моргаю.
Приветствую форумчан!
Хочу немного освежить тему и задать очередной вопрос. Скрипт копирования и имени выделенных файлов и копирования полного пути файлов прекрасно работает при использовании его на локальных дисках, либо же при "эмуляции" удаленных дисков как локальные с помощью программ типа WebDrive. Однако при подключении по ftp максимум, что удается получить это полный путь к файлу. А сейчас возникла необходимость получать только имя выделенного файла (файлов) именно при подключении по ftp. Может старожилы подскажут каким образом можно решить возникшую проблему, если это возможно... именно при подключении по ftp без использования сторонних программ типа WebDrive. Если же подобная уже тема обсуждалась, ткните носом в соответствующий топик, я к сожалению не смог найти.
Заранее благодарю за ответы.
Хочу немного освежить тему и задать очередной вопрос. Скрипт копирования и имени выделенных файлов и копирования полного пути файлов прекрасно работает при использовании его на локальных дисках, либо же при "эмуляции" удаленных дисков как локальные с помощью программ типа WebDrive. Однако при подключении по ftp максимум, что удается получить это полный путь к файлу. А сейчас возникла необходимость получать только имя выделенного файла (файлов) именно при подключении по ftp. Может старожилы подскажут каким образом можно решить возникшую проблему, если это возможно... именно при подключении по ftp без использования сторонних программ типа WebDrive. Если же подобная уже тема обсуждалась, ткните носом в соответствующий топик, я к сожалению не смог найти.
Заранее благодарю за ответы.
Код: Выделить всё
'========================================
' Копировать имена выбранных папок/файлов
'========================================
Const P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
With CreateObject("WScript.Shell")
.Run """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"" /ef tcm(2017)""",, True
A = .RegRead(P) : If A > 0 Then .RegWrite P, 0, "REG_DWORD"
With CreateObject("InternetExplorer.Application")
.Navigate("about:blank")
Clip = .document.Parentwindow.ClipboardData.GetData("text")
List = Replace(Clip, "\" + chr(13), chr(13))
List = Replace(Clip, "/" + chr(13), chr(13))
.document.ParentWindow.ClipboardData.SetData("text"), List
.ExecWB 45, 2 : .Quit
End With : If A > 0 Then .RegWrite P, A, "REG_DWORD"
End WithАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Код: Выделить всё
...
List = Replace(Clip, "\", "")
List = Replace(Clip, "/", "")
...Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
skyinfire
Вообще должен работать и первый вариант и второй. Компонент IE, видимо, не срабатывает, хотя должен. А система не x64, случаем?
Вообще должен работать и первый вариант и второй. Компонент IE, видимо, не срабатывает, хотя должен. А система не x64, случаем?
В смысле? Есть же cm_CopyFullNamesToClip и cm_CopyNetNamesToClip.skyinfire писал(а):И можно ли еще научить скрипт копировать полный путь (два ярлыка будет, разумеется)?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
да, W7х64А система не x64, случаем?
Собственно, с них и началась вся эта тема. Скрипты для того и написаны были, что стандартные ТС комманды оставляли слеши до или после имен.Есть же cm_CopyFullNamesToClip и cm_CopyNetNamesToClip.
Тогда здесь мне дали скрипт
Он работает отлично - два ярлыка: с параметром %L копирует путь, с параметром %F - копирует имя. Но последний барахлит на FTP ресурсах.'=========================================
' Копировать имена выделенных папок/файлов
' Параметр: {%L|%l|%F|%f|%D|%d}
'=========================================
If WScript.Arguments.Count = 0 Then Wscript.Quit
Dim T
T = Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1).ReadAll, "\" + chr(13), chr(13))
Text2Clip Mid(T, 1, Len(T) - 2)
Sub Text2Clip(pText)
Dim TCS
On Error Resume Next
Set TCS = CreateObject("TCScript.Helper")
If Err.Number > 0 Then
Dim A
On Error GoTo 0
Const P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
With CreateObject("WScript.Shell")
A = .RegRead(P)
If A > 0 Then .RegWrite P, 0, "REG_DWORD"
With CreateObject("InternetExplorer.Application")
.Navigate("about:blank")
.document.ParentWindow.ClipboardData.SetData("text"), pText
End With
If A > 0 Then .RegWrite P, A, "REG_DWORD"
End With
Else
On Error GoTo 0
TCS.SetTextToClip(pText)
End If
End Sub
Если этот скрипт допилить, то вопрос тоже был бы закрыт.