Помогите написать скрипт

Russian main discussion
  • Author
  • Message
Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Andrey_A_A
обратите внимание на программу из этого сообщения, может добавите её к себе в сборку

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

SpecChar... Надо подумать... Хотя для спец симолов буквально вчера сделал контекстное меню, а для других мест работает СLСL и она более структурирована

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Andrey_A_A
набор символов SpecChar (размер всего-лишь 20 кб) настраивается через ini-файл, структурируйте как хотите

Offline
Posts: 47
Joined: Wed Aug 17, 2011 7:12 pm
Contact:

Post by ermakoov »

[quote="Andrey_A_A"][quote]
ЦИТАТА. Я твою хотелку раскусил, её можно реализовать скриптом
1. Сохраняется обычный Hotkeys.ini в Hotkeys_Defolt.ini
2. Настраивается второй с где ! - это 1, @ - 2....
3. скрптом переключаются эти два файла
В идеале. т.е. печатаешь 12345..., нажал на скрипт и уже !@#...
Но за этим целая проблема, потому что в редакторе 3-5 плагинов настраивают свои горячие клавиши через Hotkey... и каждый раз это действие может сбить другие настройки - поэтому такой скрипт потенциально опасен и очень-очень индивидуален, а я за безопасность (не навреди) КОНЕЦ ЦИТАТЫ

Андре, я кажется нашел более красивый выход - ставить Шифт на залипание. Есть такая фича в Винде в Спецвозможностях, переключаться в неё можно каким-то сочетанием.

Видишь, я ешё цитаты не научился вставлять, приходится редактиоровать :)

Offline
Posts: 47
Joined: Wed Aug 17, 2011 7:12 pm
Contact:

Post by ermakoov »

Instructor
Andrey_A_A
А назначение кавычек в хоткейс некорректно у меня работало, потому что я неграмотно писал. И никто не догадался, мне дураку, подсказать, что надо писать не Insert("""), а Insert("\"")

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

ermakoov, читаем внимательно хелпы, в часномти Hotkeys-Rus.txt
Там мы видим пример записи команд с строчніми аргументами - можно использовать три вида кавычек, в том числе и вперемешку: "" '' ``

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Вообще имхо такие вещи делаются system-wide посредством изменения раскладки клавы

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Fr0sT, ну дык в личке была данна ссылка на MSKLC

Offline
Posts: 47
Joined: Wed Aug 17, 2011 7:12 pm
Contact:

Post by ermakoov »

Fr0sT
FeyFre
Эх, знать бы ещё, что значат эти матюки: system-wide, MSKLC :( :)

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »


Offline
Posts: 47
Joined: Wed Aug 17, 2011 7:12 pm
Contact:

Post by ermakoov »

FeyFre

Виноват - исправлюсь :) Но так вышло не из-за тяжести, а по другой причине. А позволяет ли эта MSKLC переназначать функциональные клавиши - то есть вешать на них свои команды?

И еще вопросик, который меня мучает давно и на него до сих пор не дал мне вменяемый ответ ни один программист. Можно ли в Винде (ХР) чисто системными средствами назначить всем клавишам звук (например, пишущей машинки, как в Акеле)? В OS ведь уже в принципе присутствует фича "звуковых схем". Некоторые программисты говорят, что ничего (только системными средствами, то есть без привлечения сторонних программ) поделать нельзя, так как всё это хозяйство в Винде уже откомпилировано.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

А позволяет ли эта MSKLC переназначать функциональные клавиши - то есть вешать на них свои команды?
Нет. Задача "раскладок клавиатуры" преобразовать координаты нажатой клавиши(второй ряд, пятая клавиша слева) в символ ввода. Причем делается это в последнюю очередь - если приложение желает работать с кнопками напрямую, оно не позволяет раскладкам делать своё дело.
Можно ли в Винде (ХР)
Что по-вашему "системные средства"? То что в Винде из коробки? Может и возможно, а может и нет.(В Винде столько функционала и механизмов есть, что я даже не уверен, существует ли человек, который его весь знает). Но в любом случае, тремя щелчками мышки это не настроить.

Offline
Posts: 47
Joined: Wed Aug 17, 2011 7:12 pm
Contact:

Post by ermakoov »

FeyFre
Фей, ты, наверняка, на этом форуме самый отзывчивый отвечальщик :) Спасибо! И тогда, позволь ещё чуть помучить тебя.

Подскажи пожалуйста код скрипта нажатия, например, клавиши Home.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Подскажи пожалуйста код скрипта нажатия, например, клавиши Home.
в скриптах .vbs

Code: Select all

Set WSH = CreateObject("WScript.Shell")
WSH.SendKeys "{HOME}"

Объект WshShell
Методы
SendKeys
Синтаксис:

SendKeys(<String>)

Назначение:

Посылает одно или несколько нажатий клавиш в активное окно (имитация набора на клавиатуре).

Параметры:

<String> - строка, перечень клавиш в специальном формате.

Описание:

Каждая клавиша задаётся своим символом. Например, чтобы задать нажатие друг за другом клавиш А, Б и В, нужно указать в качестве параметра строку "АБВ".
Некоторые специальные символы следует всегда задавать заключёнными в фигурные скобки. Перечень таких символов:
{+} {^} {%} {~} {(} {)} {[} {]} {{} {}}
Задание неотображаемых символов и специальных клавиш:
<Backspace> - {BACKSPACE} или {BS} или {BKSP}
<Break> - {BREAK}
<Caps Lock> - {CAPSLOCK}
<Delete> - {DELETE} или {DEL}
<End> - {END}
<Enter> - {ENTER} или ~
<Esc> - {ESC}
<Home> - {HOME}
<Insert> - {INSERT} или {INS}
<Num Lock> - {NUMLOCK}
<Page Down> - {PGDN}
<Page Up> - {PGUP}
<Print Screen> - {PRTSC}
<Scroll Lock> - {SCROLLLOCK}
<Tab> - {TAB}
<Up Arrow> - {UP}
<Left Arrow> - {LEFT}
<Down Arrow> - {DOWN}
<Right Arrow> - {RIGHT}
<F1> - {F1}
<F2> - {F2}
и т.д.
<Shift> - +
<Ctrl> - ^
<Alt> - %
Можно использовать скобки. Например, нажатие клавиш <G> и <S> при нажатом <Shift> следует записывать как "+(GS)". Запись "+GS" приведёт к нажатию клавиши <G> при нажатом <Shift>, а затем клавиши <S> уже без <Shift>.
Задание нескольких нажатий: "{LEFT 42}" приведёт к нажатию клавиши <Left Arrow> 42 раза подряд, "{h 10}" приведёт к нажатию клавиши <h> 10 раз подряд.
Метод не может быть использован для посылки нажатий клавиш в приложения MS-DOS.


Пример:

Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}"


Offline
Posts: 47
Joined: Wed Aug 17, 2011 7:12 pm
Contact:

Post by ermakoov »

Andrey_A_A
Спасибо большое! А как то же самое будет выглядеть на js?
Post Reply