1 (изменено: ypppu, 2016-06-08 15:09:32)

Тема: AHK: Использование содержимого #Include в функции

keycodes.ahk

KeyG = {sc22}

main.ahk


#include keycodes.ahk

^5:: testMethodSendInput()

testMethodSendInput() {
	SendInput, ^%KeyG%
}

Функция не видит что KeyG = {sc22}, чтобы видела пишу так


testMethodSendInput() {
	#includeAgain, keycodes.ahk
	SendInput, ^%KeyG%
}

Как можно решить более эстетично?

2

Re: AHK: Использование содержимого #Include в функции

keycodes.ahk

KeyG := "{sc22}"

main.ahk

#include keycodes.ahk

^5::testMethodSendInput(KeyG)

testMethodSendInput(KeyG) {
	SendInput, ^%KeyG%
}

3

Re: AHK: Использование содержимого #Include в функции

Nikva
Это упрощенный пример. Может использоваться много чего из keycodes.ahk.

Я хочу сделать отдельно файл actions.ahk (функции обработки) и main.ahk (вызов функций), хоткеев и функций у меня десяток другой наберется. Передавать параметрами все хоткеи которые будут использоваться не хочу. Писать явно сканкодами тоже, тоже уходит прозрачность кода.

Рабочий код:

; Ctrl + shift + j - Переход к объекту метаданных
$^+sc24::
	module = tmp\module.txt

	FileDelete %module%
	FileAppend,, %module%
	RunWait, system\inputbox.exe %module%
	
	SendInput, ^!%KeyO%
	SendInput, ^+%KeyC%
	SendInput, ^%KeyF%
	pasteTextFromFile()
	SendInput, !{Insert}
	SendInput, {Enter}
	; жду выполнения в основной программе, за 2 сек должно успеть отработать
	Sleep 2000
	SendInput, ^%KeyA%
	ClipWait
	SendInput, {Left}{Enter}
	putSelectionInFile(0)
	SendInput, ^{END}
	RunWait, wscript scripts.js %module% gotoobject
	SendInput, {Home}
	SendInput, ^%KeyF%
	pasteTextFromFile()
	SendInput, !{Insert}
	ClipWait
	SendInput, {Enter}
	SendInput, {Enter}
return

4

Re: AHK: Использование содержимого #Include в функции

var1 = a
var2 = b
var3 = c
fn()
Return

fn()
{
	Global
	Msgbox % var1
			. "`n" var2
			. "`n" var3
}

5 (изменено: ypppu, 2016-06-08 15:33:28)

Re: AHK: Использование содержимого #Include в функции

Спасибо, сработало.

Странно, до этого пробовал писать Global, но выдавало синт.ошибку. Наверное что-то не так написал.

6

Re: AHK: Использование содержимого #Include в функции

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