View previous topic :: View next topic |
Author |
Message |
sa
Joined: 29 Apr 2009 Posts: 2567
|
(Separately) Posted: Wed Oct 06, 2010 07:36 Post subject: |
|
|
Andrey_A wrote: | В Helper есть функция SetTextToClip(Text) - отправить текст в буфер обмена.... при большом куске текста, эта функция не срабатывает. | В апреле этого года Volniy собирался это поведение исправить:
Volniy wrote: | Подтверждаю. Не заметил раньше, потому что на больших количествах файлов попросту не пробовал. Ограничение возникает на объеме буфера около 32 кб. Тут я сам виноват - с панталыку неверно указал тип переменной для хранения размера буфера. Исправим, не проблема. |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 06, 2010 09:50 Post subject: |
|
|
Andrey_A wrote: | Ниже описанный код, сохраненный в vbs - не работает. | Что-то с настройками безопасности IE. Ты у нас по методам тыка спец, найдёшь брешь - доложи, если не трудно.
Есть ещё пару вот таких интересных штучек(требуют установки и реги библиотек): 1, 2.
2-я, кстати, ещё и ini-шники править умеет (это к недавнему P.S. Samwatas). |
|
Back to top |
|
|
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Wed Oct 06, 2010 13:20 Post subject: |
|
|
Quote: | Есть ещё пару вот таких интересных штучек(требуют установки и реги библиотек) | - о портативности, как я понимаю, не стоит даже и заикаться? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 06, 2010 13:25 Post subject: |
|
|
Может речь о портабельности, а не портативности? Если да, то при желании можно в скрипте регистрировать библиотеку, и поставить на проверку для следующих запусков. Будет почти аналогия. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Sun Oct 17, 2010 15:37 Post subject: |
|
|
Script Helper ActiveX for TC beta12
Скачать файл: http://wincmd.ru/download.php?id=script_helper
Исправлены баги: 1) ограниченный до 32 кб размер помещаемого в Буфер обмена текста, 2) ошибка (Несоответствие типа) при вызове методов SetSrcPath и SetTrgPath, если в качестве параметра передавалась переменная, а не просто строка.
Для указания нескольких нажатий клавиши пробела теперь можно использовать синтаксис {SPACE x} или {SP xx} (одиночный пробел {SPACE} или {SP}). Сделано для лучшей читаемости скриптов.
Добавлены Англоязычные доки (спасибо Lev)
PS Пример использования SetSrcPath для выделения файла в панели - http://forum.wincmd.ru/viewpost.php?p=68875 |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2567
|
(Separately) Posted: Sun Oct 17, 2010 16:28 Post subject: |
|
|
Volniy wrote: | Исправлены баги: 1) ограниченный до 32 кб размер помещаемого в Буфер обмена текста |
Проверил: зебра (ZebraMark-3.vbs) для папки Windows, к которой предварительно применён Ctrl+B (больше 9000 файлов), теперь выдаёт верный результат. Спасибо за обновление! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Oct 17, 2010 20:12 Post subject: |
|
|
Volniy
Что-то у меня SetTrgPath перестал устанавливать курсор в другой панели и выделять файл, и после него не работает SendKeyStore.
Добавлено: похоже SetTrgPath ни при чём, через WSH.Run то же самое.. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 23, 2010 07:53 Post subject: |
|
|
Нужна такая вещь: задаём список
Set List = CreateObject("Scripting.Dictionary")
List.Add "бла", ""
List.Add "блабла", ""
List.Add "блаблабла", ""
......
Сравниваем значение ранее заданной переменной со всеми элементами списка. Если один из этих элементов совпал, то используем найденное значение из списка в каком-нибудь последующем методе. Как правильно записать?
Last edited by Flasher on Tue Nov 23, 2010 16:12; edited 1 time in total |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Nov 23, 2010 15:54 Post subject: |
|
|
Flasher
Каждый элемент ассоциированного массива "Scripting.Dictionary" имеет ключ и значение.
Для добавления элемента к массиву используется метод Add:
Code: | Set List = CreateObject("Scripting.Dictionary")
List.Add Key1, Value1
List.Add Key2, Value2 |
Поэтому запись "EXT.List "бла", """ мне совершенно непонятна.
Если необходимо найти значение элемента массива по ключу, который содержится в некой переменной, то используются конструкции вида:
Code: | MyVar = "бла"
Set List = CreateObject("Scripting.Dictionary")
List.Add "бла" , "Значение 1"
List.Add "блабла", "Значение 2"
If List.Exists(MyVar) Then
MsgBox "По ключу """ & MyVar & """ найдено значение """ & List(MyVar) & """"
Else
MsgBox "По ключу """ & MyVar & """ ничего не найдено"
End If
|
Здесь List(MyVar) возвращает значение элемента ассоциированного массива List по ключу MyVar. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 23, 2010 16:17 Post subject: |
|
|
Batya wrote: | Поэтому запись "EXT.List "бла", """ мне совершенно непонятна. | Пардон, поправил. В темпе делал, не ту часть поменял.
Batya wrote: | Здесь List(MyVar) возвращает значение элемента ассоциированного массива List по ключу MyVar. | Хм. Довольно просто. А я в цикл пихал то же самое, откуда глюки и возникли. Только мне не нужно искать значение ключа, мне нужно искать сам ключ, совпадающий со значением переменной, поэтому я и ставлю пустые значения "". |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Nov 23, 2010 16:57 Post subject: |
|
|
Flasher wrote: | Только мне не нужно искать значение ключа, мне нужно искать сам ключ, совпадающий со значением переменной |
Code: | If List.Exists(MyVar) Then MsgBox MyVar |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 23, 2010 17:13 Post subject: |
|
|
Это не то. Я же написал Flasher wrote: | то используем найденное значение из списка в каком-нибудь последующем методе | Т.е., если перефразировать, то - найденный ключ, но вовсе не значение переменной.
Хотя это даёт один и тот же результат, всё-таки хотелось бы узнать, каким способом выдернуть этот найденный ключ? Это нужно в случае, когда из этого ключа будет браться только его синтаксический кусок, в то время как из значения переменной его выделить не получится. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Nov 23, 2010 23:24 Post subject: |
|
|
Flasher
Ничего не понял. А можно более предметно описать задачу? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 23, 2010 23:35 Post subject: |
|
|
Ну, не знаю, к примеру:
Code: | D = "D:\"
C = "C:\"
Set List = CreateObject("Scripting.Dictionary")
List.Add WScript.Arguments(0), ""
List.Add WScript.Arguments(1), ""
If List.Exists(D) And List.Exists(C) Then MsgBox (Найденный ключ аля C) & vbnewline & (Найденный ключ аля D) |
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Wed Nov 24, 2010 12:47 Post subject: |
|
|
Flasher
Опять не понял. Что значит "Найденный ключ аля C", если C - это и есть ключ?
Итак, есть массив. Т.к. в массиве заданы только ключи, то можно сказать, что это список ключей.
Проверяем, есть ли некоторый ключ в этом списке.
Дальше что? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
|