View previous topic :: View next topic |
Author |
Message |
Lari
Joined: 12 Mar 2007 Posts: 30
|
(Separately) Posted: Thu Jan 10, 2008 09:35 Post subject: |
|
|
2DrShark
Не смотря на то, что CmdLine=1, приведенный код
Code: |
WshShell.SendKeys "{RIGHT}"
WshShell.SendKeys "cd папка_которую нужно открыть"
WshShell.SendKeys "{ENTER}"
|
открывает последний файл в панели, а не указанную папку? Так как переход в командную строку по нажатию на "->" происходит только в режиме детальной информации в панели, при отображении только имен папок курсор пепемещается на последний файл.
А при выполнении, например, WshShell.SendKeys "cd c:\games" в командной строке отображается: 34 с:\71-5? и побуквенный ввод с помощью SendKey дает тот же результат? Не пойму в чем ошибка |
|
Back to top |
|
|
DrShark
Joined: 21 Oct 2006 Posts: 911 Location: Kyiv, Ukraine
|
(Separately) Posted: Thu Jan 10, 2008 12:15 Post subject: |
|
|
Попробуй с использованием буфера обмена:
Code: | 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}" |
Только это не будет работать, если название папки кириллическое. |
|
Back to top |
|
|
Lari
Joined: 12 Mar 2007 Posts: 30
|
(Separately) Posted: Thu Jan 10, 2008 14:08 Post subject: |
|
|
Результат вообщем-то тот же. В поле ввода имени папки (F7) вместо c:\games\ вводиться 3^\71-5 и как результат создается две папки 3^ и в ней 71-5
а вот этого вообще не понял:
Code: |
WshShell.SendKeys "{PGUP}"
WshShell.SendKeys "+{F6}"
WshShell.SendKeys "^V"
|
|
|
Back to top |
|
|
DrShark
Joined: 21 Oct 2006 Posts: 911 Location: Kyiv, Ukraine
|
(Separately) Posted: Thu Jan 10, 2008 14:26 Post subject: |
|
|
Lari wrote: | Результат вообщем-то тот же. В поле ввода имени папки (F7) вместо c:\games\ вводиться 3^\71-5 и как результат создается две папки 3^ и в ней 71-5 |
Что же, здесь я ничем помочь не могу... Попробуй на AutoIt подобный код выполнить, только там он проще будет -
Code: | Dim WshShell
Set WshShell = CreateObject ("Wscript.Shell") |
выбрасывай, вместо WshShell.SendKeys "{somekey}" используй Send ("{somekey}"), а часть WScript.Sleep n меняй на Sleep (n) или выбрасывай.
Quote: | а вот этого вообще не понял: |
Это переход к "папке" ".." и нажатие Shift+F6 - так активируется элемент текущего пути, т.е. адресная строка. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Thu Jan 10, 2008 18:22 Post subject: |
|
|
Lari wrote: | НО еще плюс к этому нужно зайти в эту папку. |
Пробуй такой вариант (исправлено на основе идеи Batya)
Code: | '=========================[ 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 ]=========================
|
Last edited by Volniy on Thu Jan 10, 2008 22:36; edited 1 time in total |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Jan 10, 2008 19:19 Post subject: |
|
|
Ребята, вы не перегрелись? Зачем изобретать велосипед?
Чем не устраивает
Code: | Dim WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run "%COMMANDER_PATH%\totalcmd.exe /O /S /L=""" & NPath & """", 7, True |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Thu Jan 10, 2008 22:42 Post subject: |
|
|
Batya wrote: |
Ребята, вы не перегрелись? Зачем изобретать велосипед?
Чем не устраивает
|
Вполне устраивает, только подглючивает ежели есть пробелы в пути к Тоталу.
А ты где раньше был? Пиво пил? (с)
ОК, исправил свой пост выше (имхо: бестолковый скрипт...) |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 11, 2008 10:40 Post subject: |
|
|
Volniy wrote: | Вполне устраивает, только подглючивает ежели есть пробелы в пути к Тоталу. |
А какие тут могут быть проблемы? Скрипт ведь из под TC запускается.
Volniy wrote: | А ты где раньше был? Пиво пил? (с) |
Эх, если бы
Замотался на работе. Даже в инет зайти некогда.
Кстати, что-то меня наводит на мысль, что исходным скриптом с учетом
Lari wrote: | поэтому взял какой-то пример и написал то, что хотел. |
мог быть вот этот. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Lari
Joined: 12 Mar 2007 Posts: 30
|
(Separately) Posted: Fri Jan 11, 2008 15:43 Post subject: |
|
|
О спасибо!
Теперь все работает!
Batya wrote: | Кстати, что-то меня наводит на мысль, что исходным скриптом с учетом
Lari wrote: | поэтому взял какой-то пример и написал то, что хотел. |
мог быть вот этот. |
нет другой... в этом то задача решена по созданию папки, смысл его переписывать. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Fri Jan 11, 2008 20:36 Post subject: |
|
|
Batya wrote: | А какие тут могут быть проблемы? Скрипт ведь из под TC запускается. |
А причем тут это? Если в пути/имени запускаемого на выполнение файла будет пробел и не будет дополнительных кавычек, тогда именем файла реально считается только то, что лежит до первого пробела, а все остальное параметрами командной строки. Скрипт выдавал ошибку "Система не ожет найти указаный файл". Просто проверь и убедишься сам. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Jan 14, 2008 13:27 Post subject: |
|
|
Volniy
Ну хорошо, а так?
Code: | WSH.Run """%COMMANDER_PATH%\totalcmd.exe"" /O /S /L=""" & NPath & """", 7, True |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Mon Jan 14, 2008 19:07 Post subject: |
|
|
Batya wrote: | Ну хорошо, а так? |
Не, ты тогда точно что-то пил Я ведь сразу код исправил. Не заметил? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Jan 14, 2008 19:14 Post subject: |
|
|
Volniy
Ну не смотрел я в твой код
Тогда все должно работать без проблем.
При каких путях у тебя не работает (конкретный пример)?
И непонятно, зачем лишние символы в начале WSH.Run?
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Mon Jan 14, 2008 19:51 Post subject: |
|
|
Batya wrote: | При каких путях у тебя не работает (конкретный пример)? | c:\Program Files\wincmd
Batya wrote: | И непонятно, зачем лишние символы в начале WSH.Run?
|
Это и есть те кавычки (это открывающая кавычка), о которых я тебе и говорю. Я специально наглядно это написал, вместо твоего варианта Code: | WSH.Run """%COMMANDER_PATH%... | а на самом деле это одно и то же. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Jan 15, 2008 12:26 Post subject: |
|
|
Volniy wrote: | а на самом деле это одно и то же. |
Это я знаю, поэтому и спросил, зачем ты написал лишнее, но теперь понятно:
Volniy wrote: | c:\Program Files\wincmd |
Все прекрасно работает. Ты, случайно, не забыл параметры кнопки указать в кавычках?
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
|