Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Автоматический переход в папку при ее создании
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Lari



Joined: 12 Mar 2007
Posts: 30

Post (Separately) Posted: Thu Jan 10, 2008 09:35    Post subject: Reply with quote

2DrShark

Не смотря на то, что CmdLine=1, приведенный код

Code:

WshShell.SendKeys "{RIGHT}"
WshShell.SendKeys "cd папка_которую нужно открыть"
WshShell.SendKeys "{ENTER}"


открывает последний файл в панели, а не указанную папку? Так как переход в командную строку по нажатию на "->" происходит только в режиме детальной информации в панели, при отображении только имен папок курсор пепемещается на последний файл.

А при выполнении, например, WshShell.SendKeys "cd c:\games" в командной строке отображается: 34 с:\71-5? и побуквенный ввод с помощью SendKey дает тот же результат? Не пойму в чем ошибка Sad
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Thu Jan 10, 2008 12:15    Post subject: Reply with quote

Попробуй с использованием буфера обмена:
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
View user's profile Send private message
Lari



Joined: 12 Mar 2007
Posts: 30

Post (Separately) Posted: Thu Jan 10, 2008 14:08    Post subject: Reply with quote

Результат вообщем-то тот же. В поле ввода имени папки (F7) вместо c:\games\ вводиться 3^\71-5 и как результат создается две папки 3^ и в ней 71-5 Smile

а вот этого вообще не понял:
Code:

WshShell.SendKeys "{PGUP}"
WshShell.SendKeys "+{F6}"
WshShell.SendKeys "^V"
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Thu Jan 10, 2008 14:26    Post subject: Reply with quote

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
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Thu Jan 10, 2008 18:22    Post subject: Reply with quote

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
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Thu Jan 10, 2008 19:19    Post subject: Reply with quote

Smile
Ребята, вы не перегрелись? Зачем изобретать велосипед?
Чем не устраивает
Code:
Dim WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run "%COMMANDER_PATH%\totalcmd.exe /O /S /L=""" & NPath & """", 7, True

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Thu Jan 10, 2008 22:42    Post subject: Reply with quote

Batya wrote:
Smile
Ребята, вы не перегрелись? Зачем изобретать велосипед?
Чем не устраивает

Вполне устраивает, только подглючивает ежели есть пробелы в пути к Тоталу.

А ты где раньше был? Пиво пил? (с) Laughing

ОК, исправил свой пост выше (имхо: бестолковый скрипт...)
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Jan 11, 2008 10:40    Post subject: Reply with quote

Volniy wrote:
Вполне устраивает, только подглючивает ежели есть пробелы в пути к Тоталу.

А какие тут могут быть проблемы? Скрипт ведь из под TC запускается.

Volniy wrote:
А ты где раньше был? Пиво пил? (с)

Эх, если бы Rolling Eyes
Замотался на работе. Даже в инет зайти некогда.

Кстати, что-то меня наводит на мысль, что исходным скриптом с учетом
Lari wrote:
поэтому взял какой-то пример и написал то, что хотел.

мог быть вот этот.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Lari



Joined: 12 Mar 2007
Posts: 30

Post (Separately) Posted: Fri Jan 11, 2008 15:43    Post subject: Reply with quote

О спасибо! Smile
Теперь все работает!

Batya wrote:
Кстати, что-то меня наводит на мысль, что исходным скриптом с учетом

Lari wrote:
поэтому взял какой-то пример и написал то, что хотел.


мог быть вот этот.


нет другой... в этом то задача решена по созданию папки, смысл его переписывать.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Fri Jan 11, 2008 20:36    Post subject: Reply with quote

Batya wrote:
А какие тут могут быть проблемы? Скрипт ведь из под TC запускается.

А причем тут это? Если в пути/имени запускаемого на выполнение файла будет пробел и не будет дополнительных кавычек, тогда именем файла реально считается только то, что лежит до первого пробела, а все остальное параметрами командной строки. Скрипт выдавал ошибку "Система не ожет найти указаный файл". Просто проверь и убедишься сам.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Jan 14, 2008 13:27    Post subject: Reply with quote

Volniy
Ну хорошо, а так?
Code:
WSH.Run """%COMMANDER_PATH%\totalcmd.exe"" /O /S /L=""" & NPath & """", 7, True

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Mon Jan 14, 2008 19:07    Post subject: Reply with quote

Batya wrote:
Ну хорошо, а так?

Не, ты тогда точно что-то пил Wink Я ведь сразу код исправил. Не заметил?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Jan 14, 2008 19:14    Post subject: Reply with quote

Volniy
Smile Ну не смотрел я в твой код Rolling Eyes
Тогда все должно работать без проблем.
При каких путях у тебя не работает (конкретный пример)?

И непонятно, зачем лишние символы в начале WSH.Run?
Code:
"""" & "...

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Mon Jan 14, 2008 19:51    Post subject: Reply with quote

Batya wrote:
При каких путях у тебя не работает (конкретный пример)?
c:\Program Files\wincmd

Batya wrote:
И непонятно, зачем лишние символы в начале WSH.Run?
Code:
"""" & "...

Это и есть те кавычки (это открывающая кавычка), о которых я тебе и говорю. Я специально наглядно это написал, вместо твоего варианта
Code:
WSH.Run """%COMMANDER_PATH%...
а на самом деле это одно и то же.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Jan 15, 2008 12:26    Post subject: Reply with quote

Volniy wrote:
а на самом деле это одно и то же.

Это я знаю, поэтому и спросил, зачем ты написал лишнее, но теперь понятно:
Volniy wrote:
наглядно


Volniy wrote:
c:\Program Files\wincmd

Все прекрасно работает. Ты, случайно, не забыл параметры кнопки указать в кавычках?
Code:
"%P" "%O" %L "%N"

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group