Страница 2 из 3
Добавлено: Чт янв 10, 2008 08:35
Lari
2
DrShark
Не смотря на то, что CmdLine=1, приведенный код
Код: Выделить всё
WshShell.SendKeys "{RIGHT}"
WshShell.SendKeys "cd папка_которую нужно открыть"
WshShell.SendKeys "{ENTER}"
открывает последний файл в панели, а не указанную папку? Так как переход в командную строку по нажатию на "->" происходит только в режиме детальной информации в панели, при отображении только имен папок курсор пепемещается на последний файл.
А при выполнении, например, WshShell.SendKeys "cd c:\games" в командной строке отображается: 34 с:\71-5? и побуквенный ввод с помощью SendKey дает тот же результат? Не пойму в чем ошибка

Добавлено: Чт янв 10, 2008 11:15
DrShark
Попробуй с использованием буфера обмена:
Код: Выделить всё
Dim WshShell
Set WshShell = CreateObject ("Wscript.Shell")
WshShell.SendKeys "{F7}"
WshShell.SendKeys "c:\games\"
WshShell.SendKeys "+{HOME}"
WshShell.SendKeys ("^C")
WScript.Sleep 500
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{PGUP}"
WshShell.SendKeys "+{F6}"
WshShell.SendKeys "^V"
WshShell.SendKeys "{ENTER}"
Только это не будет работать, если название папки кириллическое.
Добавлено: Чт янв 10, 2008 13:08
Lari
Результат вообщем-то тот же. В поле ввода имени папки (F7) вместо c:\games\ вводиться 3^\71-5 и как результат создается две папки 3^ и в ней 71-5
а вот этого вообще не понял:
Код: Выделить всё
WshShell.SendKeys "{PGUP}"
WshShell.SendKeys "+{F6}"
WshShell.SendKeys "^V"
Добавлено: Чт янв 10, 2008 13:26
DrShark
Lari писал(а):Результат вообщем-то тот же. В поле ввода имени папки (F7) вместо c:\games\ вводиться 3^\71-5 и как результат создается две папки 3^ и в ней 71-5
Что же, здесь я ничем помочь не могу... Попробуй на
AutoIt подобный код выполнить, только там он проще будет -
Код: Выделить всё
Dim WshShell
Set WshShell = CreateObject ("Wscript.Shell")
выбрасывай, вместо WshShell.SendKeys "{somekey}" используй Send ("{somekey}"), а часть WScript.Sleep n меняй на Sleep (n) или выбрасывай.
а вот этого вообще не понял:
Это переход к "папке" ".." и нажатие Shift+F6 - так активируется элемент текущего пути, т.е. адресная строка.
Добавлено: Чт янв 10, 2008 17:22
Volniy
Lari писал(а):НО еще плюс к этому нужно зайти в эту папку.
Пробуй такой вариант (исправлено на основе идеи
Batya)
Код: Выделить всё
'=========================[ Start of file ]=========================
Option Explicit
Dim CurPath, NewFolder, CurFile, FileName, NPath, TempFile, SelFile
Dim WSH, FSO
Set WSH = CreateObject ("Wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
CurPath = WScript.Arguments(0) '"%P"
NewFolder = WScript.Arguments(1) '"%O"
CurFile = WScript.Arguments(2) '"%L"
FileName = WScript.Arguments(3) '"%N"
If UCase(NewFolder) = UCase(FileName) Then
WScript.Quit()
End If
NPath = CurPath & NewFolder
If Not FSO.FolderExists(NPath) Then
FSO.CreateFolder NPath
End If
If FSO.FolderExists(NPath) Then
Set TempFile = FSO.OpenTextFile(CurFile, 1)
Do While Not TempFile.AtEndOfStream
Set SelFile = FSO.GetFile(TempFile.ReadLine)
If Not FSO.FileExists (NPath & "" & SelFile.Name) Then
FSO.MoveFile SelFile.Path , NPath & "" & SelFile.Name
End If
Loop
WSH.Run """" & "%COMMANDER_PATH%\totalcmd.exe""" _
& " /O /S /L=""" & NPath & """", 8, False
End If
WScript.Quit()
'=========================[ End of file ]=========================
Добавлено: Чт янв 10, 2008 18:19
Batya

Ребята, вы не перегрелись? Зачем изобретать велосипед?
Чем не устраивает
Код: Выделить всё
Dim WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run "%COMMANDER_PATH%\totalcmd.exe /O /S /L=""" & NPath & """", 7, True
Добавлено: Чт янв 10, 2008 21:42
Volniy
Batya писал(а):
Ребята, вы не перегрелись? Зачем изобретать велосипед?
Чем не устраивает
Вполне устраивает, только подглючивает ежели есть пробелы в пути к Тоталу.
А ты где раньше был? Пиво пил? (с)
ОК, исправил свой пост выше
(имхо: бестолковый скрипт...)
Добавлено: Пт янв 11, 2008 09:40
Batya
Volniy писал(а):Вполне устраивает, только подглючивает ежели есть пробелы в пути к Тоталу.
А какие тут могут быть проблемы? Скрипт ведь из под TC запускается.
Volniy писал(а):А ты где раньше был? Пиво пил? (с)
Эх, если бы
Замотался на работе. Даже в инет зайти некогда.
Кстати, что-то меня наводит на мысль, что исходным скриптом с учетом
Lari писал(а):поэтому взял какой-то пример и написал то, что хотел.
мог быть
вот этот.
Добавлено: Пт янв 11, 2008 14:43
Lari
О спасибо!

Теперь все работает!
Batya писал(а):Кстати, что-то меня наводит на мысль, что исходным скриптом с учетом
Lari писал(а):поэтому взял какой-то пример и написал то, что хотел.
мог быть вот этот.
нет другой... в
этом то задача решена по созданию папки, смысл его переписывать.
Добавлено: Пт янв 11, 2008 19:36
Volniy
Batya писал(а):А какие тут могут быть проблемы? Скрипт ведь из под TC запускается.
А причем тут это? Если в пути/имени запускаемого на выполнение файла будет пробел и не будет дополнительных кавычек, тогда именем файла реально считается только то, что лежит до первого пробела, а все остальное параметрами командной строки. Скрипт выдавал ошибку "Система не ожет найти указаный файл". Просто проверь и убедишься сам.
Добавлено: Пн янв 14, 2008 12:27
Batya
Volniy
Ну хорошо, а так?
Код: Выделить всё
WSH.Run """%COMMANDER_PATH%\totalcmd.exe"" /O /S /L=""" & NPath & """", 7, True
Добавлено: Пн янв 14, 2008 18:07
Volniy
Batya писал(а):Ну хорошо, а так?
Не, ты тогда точно что-то пил

Я ведь сразу код исправил. Не заметил?
Добавлено: Пн янв 14, 2008 18:14
Batya
Volniy

Ну не смотрел я в твой код
Тогда все должно работать без проблем.
При каких путях у тебя не работает (конкретный пример)?
И непонятно, зачем лишние символы в начале WSH.Run?
Добавлено: Пн янв 14, 2008 18:51
Volniy
Batya писал(а):При каких путях у тебя не работает (конкретный пример)?
c:\Program Files\wincmd
Batya писал(а):И непонятно, зачем лишние символы в начале WSH.Run?
Это и есть те кавычки (это открывающая кавычка), о которых я тебе и говорю. Я специально наглядно это написал, вместо твоего варианта
а на самом деле это одно и то же.
Добавлено: Вт янв 15, 2008 11:26
Batya
Volniy писал(а):а на самом деле это одно и то же.
Это я знаю, поэтому и спросил, зачем ты написал лишнее, но теперь понятно:
Volniy писал(а):наглядно
Volniy писал(а):c:\Program Files\wincmd
Все прекрасно работает. Ты, случайно, не забыл параметры кнопки указать
в кавычках?