Ru-Board.club
← Вернуться в раздел «Программы»

» AutoHotkey

Автор: thejustsoul
Дата сообщения: 06.10.2014 11:54
Krot66
Как передать эти параметры в саму программу, что передаются скрипту? Конкретный пример можете привести на основе моего вопроса? Или опять скопируете откуда-нибудь невпопад что-то отдаленно похожее, найденное в гугле за 2 минуты?


Код: RunWait, "%A_ScriptDir%\firefox.exe" -profile "%A_ScriptDir%\profile" "%1%" "%2%" "%100500%"

Run, "%A_ScriptDir%\firefox.exe" -profile "%A_ScriptDir%\profile" %1% %2% %100500%
Автор: Krot66
Дата сообщения: 07.10.2014 21:28
thejustsoul
Мешанина в синтаксисе. Одинарные кавычки экранируют знаки переменных, превращая их просто в знак процента. И проще через относительные пути


Код: SetWorkingDir %A_ScriptDir%
Run firefox.exe ""-profile profile"" ""%1%"" ""%2%"" ""%100500%""
Автор: thejustsoul
Дата сообщения: 07.10.2014 23:31
Твою же дивизию, откуда же я мог знать, что скрипты написанные на AutoHotKey не передают параметры (кроме тех, что прописаны в коде) другим программам если их не скомпилировать.
Скомпилировал скрипт и все стало передаваться как и задумывалось.. Зря только отвлекал вас, да и сам столько времени потратил -(

Krot66
Нашел тут как передать параметры, если их будет неизвестное кол-во, вот код (уже весь скрипт):

Код:
#NoTrayIcon
#NoEnv

SetWorkingDir %A_ScriptDir%

Loop %0%
params .= %A_Index% . A_Space
If params !=
Run, firefox.exe "-profile profile" %params%
Else
Run, firefox.exe "-profile profile"
Return
Автор: user7c7
Дата сообщения: 09.10.2014 11:14
На маке у меня "умный" shift. Шлет Esc, когда нажат отдельно, и работает как обычный shift в сочетании с другими клавишами. Может ли такое AHK?
Автор: DoctorLans
Дата сообщения: 13.10.2014 07:56
Господа, нужно чтобы скрипт выполнятся по горячей клавише только в окне диалога Миранды (диалога с любым человеком).

С помощью Window Spy узнал, что ahk_class #32770

Но это оказался слишком обширный класс и под него попадают множество окон различных приложений. Подскажите, как поточнее идентифицировать нужное мне окно? По заголовку не вариант, он формируется динамически <имя_пользователя> - <статус>.
Автор: Krot66
Дата сообщения: 15.10.2014 12:22
DoctorLans
Что-то вроде

Код: SetTitleMatchMode, 2
#If WinActive("ahk_class #32770") && WinActive("Имя пользователя")
Автор: DoctorLans
Дата сообщения: 15.10.2014 14:41
Krot66
пользователей - добрая сотня. Каждого перечислять не вариант. Уж лучше тогда перечислить статусы, коих десяток ("в сети", "недоступен"). Только почему вы предложили вариант с #IF, почему не с #IfWinActive? В нём же в параметре WinTitle можно ведь указывать "Multiple criteria", типа
#IfWinActive My File.txt ahk_class Notepad
Автор: Krot66
Дата сообщения: 15.10.2014 16:43
DoctorLans
Потому что #IfWinActive это директива, а #If WinActive - "выражение", которое и позволяет использовать логические операторы
Автор: OnMyDSeeAtAll
Дата сообщения: 15.10.2014 19:59
@ZevSforum Без наличия целевого приложения трудно чем-либо помочь.
user7c7 12:14 09-10-2014
Цитата:
Может ли такое AHK?
[more=Может]
Код: #KeyHistory, 0
SetStoreCapslockMode,
Off

~LShift::
~RShift::
SendEvent, % "{"(A_ThisHotkey~="L" ? "Esc":"CapsLock")" Down}"
KeyWait, Shift
SendEvent, % "{"(A_ThisHotkey~="L" ? "Esc":"CapsLock")" Up}"
Return
Автор: Skif_off
Дата сообщения: 20.10.2014 22:40
Никто случайно ClipJump под себя не пилил?
Возникла проблема, в настройках ничего не нашёл, боюсь, придётся лезть в код...
Автор: vadim3sh
Дата сообщения: 21.10.2014 06:58
Skif_off
Я очень глубоко не вникал, но пользуюсь именно им.. по-моему Clipjump хранит не изображение, а ссылку на него.. Я типа попробовал сделал Copy, картинку удалил, после поптки Paste программа заругалась, что файла найти не может..

Цитата:
PNG или что-нибудь ещё из lossless

я как-то туплю.. цитата из WIKI

Цитата:
Некоторые графические файловые форматы, такие как PNG, используют только сжатие без потерь; тогда как другие (TIFF, MNG) или GIF могут использовать сжатие как с потерями, так и без.

вроде PNG оно и есть lossless Я что-то пропустил?
Автор: Skif_off
Дата сообщения: 21.10.2014 10:00
vadim3sh
Не совсем вас понял, сейчас сделал скрин рабочего стола, ClipJump в папке cache сохранил 5тиметровый файл с расширением avc и JPEG на 200 кб. Скопировал из истории и в буфер попало фуфло пожатое. А хочется что было Собственно, и должно быть что было, оптимальный формат - PNG 32 бита (без сжатия/артефатов и с прозрачностью). Ковырялся в исходниках и не сообразил, как происходит работа с изображениями, наверное всё-таки лучше писать разработчику, но с ходу не сформулировал (языковой барьер) - полез в код...

Цитата:
вроде PNG оно и есть lossless Я что-то пропустил?

Наверное, вы пропустили "ещё" во фразе

Цитата:
или что-нибудь ещё из lossless

Автор: DoctorLans
Дата сообщения: 21.10.2014 12:10

Цитата:
@DoctorLans Добавьте в фильтр имя процесса (ahk_class #32770 ahk_exe miranda32.exe).

Спасибо, похоже то что нужно.
Автор: Samotek
Дата сообщения: 24.10.2014 16:14
Спецы! Простой для вас вопрос:
Как послать заменяемую комбинацию неактивному окну?
Есть такая конструкция
ifWinExist ahk_class %KmpWin%
{
    Send ^{vkC0}
return
}
А надо послать ^{vkC0} не активному окну, а окну с ahk_class %KmpWin% (оно может быть и не активное)


Автор: vadim3sh
Дата сообщения: 30.10.2014 04:36
Skif_off
Тут наткнулся случайно... Я понимаю, что исходя из
Цитата:
и в буфер попало фуфло пожатое.
- это не вариант. Но я не нахожу (простите, если ошибаюсь, совсем глубоко лезть мне практического смысла нету - поправьте информацией ) что
Цитата:
сейчас сделал скрин рабочего стола, ClipJump в папке cache сохранил 5тиметровый файл
в буфер загоняет ClipJump. А это не винда разве делает?
Ну, короче, вдруг пригодится. (Я про ссылку)


Автор: Skif_off
Дата сообщения: 30.10.2014 17:12
vadim3sh

Цитата:
Тут наткнулся случайно...

Спасибо, но нужна регистрация, найду альтернативы, если что. И с буфером не всё ясно - при копировании из GIMP в Paint.NET и наоборот прозрачность не всегда сохраняется, даже - обычно нет.

Цитата:
А это не винда разве делает?

Она, а вот перехватывает клавиши и сохраняет содержимое в файл в cache уже ClipJump. В общем, с разработчиком общался - копировать обратно в буфер надо не из истории, там только превью (хотя и с полноразмерное). А вообще утилита работает странно иногда: при запуске грохает то, что было в буфере (по крайней мере - содержимое не выдаётся при клике Ctrl+V). +тормоза при Ctrl+V. Для себя решил так.
Автор: ZevSforum
Дата сообщения: 31.10.2014 05:27
OnMyDSeeAtAll

Цитата:
@ZevSforum Без наличия целевого приложения трудно чем-либо помочь.

Да это прога для сканера, из драйвера. Да и главное че оно не активируется хз.. Но я уже сделал обходными путями. Муторно но все-же лучше хоть чтото чем ничего.
Автор: DoctorLans
Дата сообщения: 31.10.2014 13:04
Написал простенький скрипт, который включает US раскладку по нажатию CAPS, и RU раскладку по RightALT.

Код: Capslock::
Locale1=0x4090409 ; Английский (американский).
SendMessage, 0x50,, % Locale1,, A ; включение английского
return
    
RAlt::    
Locale2=0x4190419 ; Русский.
SendMessage, 0x50,, % Locale2,, A ; включение русского    
return
Автор: OnMyDSeeAtAll
Дата сообщения: 01.11.2014 05:39
Samotek
Цитата:
...надо послать ^{vkC0}... ...окну с ahk_class %KmpWin% (оно может быть и не активное)
[more=Пример]
Код: IfWinExist, % sClassName:="ahk_class Notepad"
{
; send acceleration shortcut Ctrl+H (Replace)
IfWinNotActive
, % sClassName
ControlSend, ahk_parent, % "^{vk48}", % sClassName
Else
Send, % "^{vk48}"
}
; Else ; do something...
; MsgBox, 262160, % A_LineNumber, % "Notepad isn't exist"
Автор: Samotek
Дата сообщения: 01.11.2014 11:18
OnMyDSeeAtAll
Спасибо, получилось.
А вот еще вопрос: не получается ничего послать в TotalCommander, а также в AkelPad. C NotePad или еще пара редакторов точно такой же send работает!
Автор: DoctorLans
Дата сообщения: 01.11.2014 19:00
OnMyDSeeAtAll

Цитата:
Тут как вариант может быть такая ситуация: скрипт и приложение имеют разные уровни прав (если приложение запущено от имени администратора, а скрипт нет, то он не будет работать в этом приложении).

Скомпилил скрипт в .exe, запустил от админа - не помогло. Миранда по-прежнему игнорит. Process Explorer показывает, что она запущена от того же пользователя.
Автор: helbvtynec
Дата сообщения: 03.11.2014 13:49
Давно хотел попробовать AH именно по хоткейной части. Сейчас пользуюсь HotkeyP, и там есть не встречавшаяся в других подобных программах возможность использовать кнопки мыши как модификатор. К примеру для переключения между окнами (Alt+Tab), зажимаю одну из боковых кнопок и кручу колесом.
Также использую Win+Alt+колесо для регулировки громкости с отображением индикатора.

Реализуемо ли (или уже имеется) это в AutoHotkey ? Если подскажете готовые варианты буду благодарен.
Автор: vadim3sh
Дата сообщения: 05.11.2014 21:57
helbvtynec
пробуйте..

1. крутим колесико с правой мышой - громкость
2. правый клик - родной , двойной правый клик - пишем, чего хотим
3. правый клик не отпуская левый клик - пишем, чего хотим

надо полистать последних страниц 10-15.. здесь очень много ссылок полезных и разных
Автор: Samotek
Дата сообщения: 06.11.2014 09:35

Цитата:
А вот еще вопрос: не получается ничего послать в TotalCommander, а также в AkelPad. C NotePad или еще пара редакторов точно такой же send работает!

Отвечаю сам себе, может кому поможет: На Win7 работает, на 8.1 не работало. После согласования прав, согласно совету OnMyDSeeAtAll DoctorLans, все работает правильно. Спасибо OnMyDSeeAtAll
Автор: OnMyDSeeAtAll
Дата сообщения: 06.11.2014 11:40
DoctorLans 20:00 01-11-2014
Цитата:
...запустил от админа - не помогло. Миранда по-прежнему игнорит.
Да, из любопытства поставил это приложение себе, и [more=так]
Код: Capslock::f(0x4090409) ; включение английского
RAlt::f(0x4190419) ; включение русского

f(p)
{
ControlGetFocus,
sCN, % "A"
PostMessage, 0x50,,
p, % sCN, % "A"
}
Автор: DoctorLans
Дата сообщения: 06.11.2014 12:01
OnMyDSeeAtAll
спасибо большое, ваша версия работает!
А почему так важно послать сообщение именно в фокусный контрол активного окна, а не в само окно, как в моей версии?
И почему у вас % "A" вместо A?
Автор: OnMyDSeeAtAll
Дата сообщения: 06.11.2014 20:18

Цитата:
...почему так важно послать сообщение именно в фокусный контрол активного окна...
Ну, в контексте именно окна чата этой программы это непременное условие.
Цитата:
...почему у вас % "A" вместо A?
Да тут дело вкуса, можно написать - ..., % "A", можно и так - ..., A.
Автор: helbvtynec
Дата сообщения: 07.11.2014 16:03
OnMyDSeeAtAll

Цитата:
Так Вам подходит?

всё работает (почти) как надо, только индикатор тултипом совсем не катит
vadim3sh
Попробовал индикатор оттуда (пришлось почистить). Почти Ok, только всё же хотелось бы что-то посимпатичнее (даже если через нативный прогресс-бар — вылезало что-то подобное в процессе правок), с полупрозрачностью и числовым значением.

Как вообще это всё лучше организовывать, если приличное количество всяких хоткеев надо? Совсем без GUI как-то некомфортно: одна сиротливая иконка в трее на скрипт.
Автор: vadim3sh
Дата сообщения: 07.11.2014 21:08
helbvtynec

Цитата:
если приличное количество всяких хоткеев надо? Совсем без GUI как-то некомфортно:

ну.. как бы.. если не помнишь хоткей и надо открыть GUI, так там в списке или как-то ышо кликнуть тоже не проблема..? я к тому, что где надо много хоткеев, не проще готовую программку подобрать через gui? есть такой clipjump. (менеджер буфера обмена) На базе AutoHotkey, GUI присутствует. Но, честно говоря, если бы не его безупречная работа с фокусом ввода, я бы что-то более причесанное пробовал..
P.S. да.. и если получилось причесать код индикатора, так и простенький гуи под себя слепить не проблема я, помню, лет 5 назад переделал на 1 полоску (вторая все равно работает некорректно). Потом недавно потерялся этот файл вместе с системой. Я уже и забыл, как делал. Плюнул, и оставил как есть. Как говориться, на скорость не влияет.
Автор: helbvtynec
Дата сообщения: 08.11.2014 14:37
Да я о том, что y AHK менеджера нет: скрипт с кучей текста командной строкой, да иконка в трее. Если обширный функционал в один файлик сводить — заблудиться в нем можно будет. Я вот на вскидку только и вижу вариант с выделяющимися комментариями-разделителями.

Страницы: 12345678910111213141516171819202122232425262728293031323334

Предыдущая тема: как добавить ивритские шрифты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.