1 (изменено: serzh82saratov, 2012-12-21 17:04:26)

Тема: AHK: Варианты реализации скрипта для переназначения кнопок

Господа т.к. код скрипта привести текстом не представляется возможным, выкладываю аттачем в установщике\распаковщике. Также ссылка на описание http://xbmc.ru/forum/showpost.php?p=332 … ostcount=1 .
Реализация идеи в том, что скрипт (ConfigRemaper.ahk) с помощью регулярных выражений создаёт текстовый файл с синтаксисом AHK (Remaper.ahk) который выполняет желаемое, и из него же читает пользовательские настройки.

Вопрос:
Есть ли более "надёжные"\другие варианты реализации задуманного?
И каким образом реализованы подобные программы на других языках?

Post's attachments

Remaper_Setup.rar 581.42 kb, 11 downloads since 2012-12-21 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Варианты реализации скрипта для переназначения кнопок

serzh82saratov пишет:

выкладываю аттачем в установщике\распаковщике.

Вряд ли кто-то рискнёт запускать неизвестный exe-файл, не зная, что там.
Для постановки задачи приведи скрипт в предельно упрощённом виде, из которого можно было бы понять, что он делает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: serzh82saratov, 2012-12-21 17:36:30)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

---

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Это называется в упрощённом виде? Тут надо сутки сидеть, чтобы разобраться. Тебе нужно придумать простенький скрипт, демонстрирующий только суть проблемы. Ну, или ждать человека с большим количеством свободного времени.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: serzh82saratov, 2012-12-21 17:55:24)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Удалил ненужные файлы.

Тебе нужно придумать простенький скрипт, демонстрирующий только суть проблемы

Проще уже никак.
Запустите Remaper.ahk там кнопки 1 и 2 уже настроены на регулировку громкости. Посмотрите его в блокноте. Запустите ConfigRemaper.ahk добавьте пару действий, закройте, проверьте действия, снова посмотрите в блокноте Remaper.ahk.
Собственно принцип описан в топике.
Вопрос ведь не в доработке кода, а в предложении иной реализации.

Функция программы заключается банально в том чтоб добавлять хоткеи, и на них вешать действия, и всё через интерфейс.

Post's attachments

Remaper.rar 398.17 kb, 12 downloads since 2012-12-21 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Аццкая сотона... А что здесь работает ненадёжно?

7

Re: AHK: Варианты реализации скрипта для переназначения кнопок

ypppu пишет:

Аццкая сотона... А что здесь работает ненадёжно?

Переформулирую вопрос:
Каким бы путём пошли Вы, кроме описанного выше?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Если требуется изменить настройки, запускается ConfigRemaper.ahk, который, заменяет содержимое файла Remaper.ahk.
Я правильно понял?
А вопрос в том, хорошо ли хранить настройки в виде скрипта AutoHotkey?

9 (изменено: creature.ws, 2012-12-21 18:44:36)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

В биографии почти каждого пользователя этого подфорума есть период, когда он делится с общественностью всем, что насобирал в свой «замечательный многофункциональный скрипт» за прошедшие месяцы «вникания» в AHK.

10

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Если требуется изменить настройки, запускается ConfigRemaper.ahk, который, заменяет содержимое файла Remaper.ahk.
Я правильно понял?

Да

А вопрос в том, хорошо ли хранить настройки в виде скрипта AutoHotkey?

Ну можно и так сказать

В биографии почти каждого пользователя этого подфорума есть период, когда он делится с общественностью всем, что насобирал в свой «замечательный многофункциональный скрипт» за прошедшие месяцы «вникания» в AHK.

Я вроде ничего и не говорил про то какой он "замечательный". И выложил не с целью себя "попиарить", а просто посоветоватся, правильным-ли путём я пошёл в реализации задуманного.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Хорошо ли хранить настройки в виде скрипта AutoHotkey?

Не по фэн-шую, а вообще нужно разбирать отдельные случаи. Кто будет пользоваться (Вы или другие люди), стоит ли давать пользователю возможность модифицировать программу.

12

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Кто будет пользоваться

другие люди

стоит ли давать пользователю возможность модифицировать программу

нет
---------------
Если бы перед вами стояла задача сделать такую программу:

Функция программы заключается банально в том чтоб добавлять хоткеи, и на них вешать действия, и всё через интерфейс. Выполняемые действия каждой кнопки могут также зависеть от выбранного режима, заранее созданного пользователем.

Как бы вы это реализовали?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Если возможные действия уже заложены в программе, то сохранил бы настройки в файл Settings.ini вида:

[Hotkeys]
Action1=vk34
Action2=vk2F

14

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Если возможные действия уже заложены в программе

Да
-------------------------
Ок. Сохранили в ини файле. Запускаем... И как дальше?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15 (изменено: serzh82saratov, 2012-12-24 01:08:43)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Считываем ини плюсуя по "1" к "Action" пока не выдаст "ЕRROR". Создаём хоткеи, из считанных переменных. А как создавать метки для хоткеев? И как сохранять и выполнять  заданные пользователем действия?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK: Варианты реализации скрипта для переназначения кнопок

serzh82saratov пишет:

Считываем ини плюсуя по "1" к "Action" пока не выдаст "ЕRROR".

Число возможных действия известно, я бы перечислял от 1-го до n-го.

Создаём хоткеи, из считанных переменных.

Да.

А как создавать метки для хоткеев?

Зачем? Мы вроде выяснили, что действия уже заложены в программе. Я предполагал, что у каждого действия уже есть метка. При создании горячих клавиш (которые Вы называете хоткеями) устанавливается связь между конкретной клавишей и меткой действия.

И как сохранять и выполнять  заданные пользователем действия?

Сохранять при помощи IniWrite, а как выполнять - Вам виднее.

17

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Зачем? Мы вроде выяснили, что действия уже заложены в программе

Действия заложены. Но они тоже зависят от пользователя, например запуск программы в нём же путь надо указать, в каком состоянии запустить окно, запустить еще один ехе, или активировать окно если прога уже запущена и.т.п.
И как выполнять в зависимости от режима?
Например в режиме 1 кнопка F1 посылает нажатие кнопки, а в режиме 2 запускает программу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18 (изменено: serzh82saratov, 2012-12-24 12:57:32)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Я предполагал, что у каждого действия уже есть метка.

Ну будет метка, и что? Вот мы прочитали "Action55=vk2F", и как тут понять что надо переходить к какой-то метке, и как в hotkey эту метку создать?

UPD:

А, видимо "Action55" и есть метка действия!
Тогда опять же как сделать зависимость от режима, и выполнение нескольких действий по кнопке?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

19

Re: AHK: Варианты реализации скрипта для переназначения кнопок

С учётом режимов можно вот так:

[Action1]
Hotkey=vk34
Mode=5
Path="C:\prog\cmd.exe"

[Action2]
Hotkey=vk2F
Mode=1
Path="C:\prog\mgr.exe"

И так далее любые параметры (windowed/fullscreen, window size и т. п.)

20 (изменено: serzh82saratov, 2013-02-17 06:43:50)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Вроде как полностью определил для себя алгоритм сохранения всех настроек в ини файл без ущерба нынешней функциональности.

[Название_режима¶vk33]
1=Название_функции¶параметр1¶параметр2¶параметр3
---
10=Название_функции¶параметр1¶параметр2¶параметр3

исполняемый файл создаёт из переменной горячие клавиши

Button = vk31¶vk32¶vk33¶vk34¶1Joy10
loop, Parse, Button, ¶
Hotkey, %A_LoopField%, PressKey, UseErrorLevel


обработка нажатий


PressKey:
loop {
IniRead, Action, %A_ScriptDir%\INI-File.ini, %Config%¶%A_ThisHotkey%, %A_Index% 
If Action = ERROR
Break
StringSplit, Action, Action, ¶
%Action1%(Action2, Action3, Action4)
}

Но вот остался один вопрос:
Так как сейчас настройками является сам код АНК в исполняемом файле, то реализована возможность с помощью интерфейса программы вставлять код AutoHotkey между предусмотренными действиями

Action1
---
код АНК ( сколько угодно строк )
---
Action3

Как это реализовать в случае с ини файлом?
Как вариант создавать скрипты в папке. И с названием вида: "Название_режима¶vk33.АНК", и запускать потом с помощью RunWait, но это нарушает принцип - все настройки в одном файле.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

21

Re: AHK: Варианты реализации скрипта для переназначения кнопок

serzh82saratov пишет:

Кто будет пользоваться

другие люди

стоит ли давать пользователю возможность модифицировать программу

нет

То есть в итоге Вы всё-таки решили хранить код в открытом доступе (то бишь в ini-файле)? Тогда не имеет смысла "переезжать" на ini-файл.

Так как сейчас настройками является сам код АНК в исполняемом файле, то реализована возможность с помощью интерфейса программы вставлять код AutoHotkey между предусмотренными действиями

Action1
---
код АНК ( сколько угодно строк )
---
Action3

Как это реализовать в случае с ини файлом?

Так возможность вставлять код AutoHotkey между предусмотренными действиями реализована или не реализована?

22 (изменено: serzh82saratov, 2013-02-17 10:52:04)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

стоит ли давать пользователю возможность модифицировать программу

Видимо тогда не понял суть вопроса (подумал что вы про саму программу, а  вы про настройки), вообщем пускай модифицуруют, мне всё равно.

Так возможность вставлять код AutoHotkey между предусмотренными действиями реализована или не реализована?

Только в "старой версии". Как это реализовать в новой версии не знаю.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23 (изменено: serzh82saratov, 2013-02-17 11:24:06)

Re: AHK: Варианты реализации скрипта для переназначения кнопок

Тогда не имеет смысла "переезжать" на ini-файл.

В скрипт заносятся разные данные - пути, параметры, разные пользовательские сообщения и.т.д. Нужно постоянно учитывать, что всякие символы  "  ;  /*  */  :  =  %  и.т.п. могут сделать все настройки непригодными, и врядли удастся предугадать все возможные варианты.
+ это сильно облегчит код конфигуратора настроек.
+ интересно другое решение, для чего собственно и завёл тему.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui