#lua #mouseover #rainmeter
#lua #наведение курсора мыши #rainmeter
Вопрос:
У меня есть скрипт Lua, который я пытаюсь запустить с Rainmeter. В настоящее время скрипт выполняется, и я вижу, что в одной строке моего txt-файла «Notes» к нему применяется шифр Caesar, а затем Update()
функция изменит ScriptMeter Text
поле, чтобы оно соответствовало выходному шифру.
Чего я, похоже, не могу выяснить, так это как вызвать этот скрипт при событии наведения курсора мыши с помощью Rainmeter. Мой план состоит в том, чтобы применить шифр в цикле к событию наведения курсора мыши, пока мышь находится над ним, и отменить шифрование до неразборчивого текста, когда я уберу мышь.
MyLua.ini
[ScriptMeasure]
Measure=Script
ScriptFile="#@#ScriptsMyLua.lua"
[StringStyle]
FontFace=Trebuchet MS
FontColor=255,245,207,255
SolidColor=0,0,0,1
StringStyle=Bold
StringAlign=Center
AntiAlias=1
FontSize=20
[ScriptMeter]
Meter=String
MeterStyle=StringStyle
MeasureName=ScriptMeasure
Text=""
x=100
y=40
MyLua.lua
function Initialize()
FilePath = SKIN:ReplaceVariables("#@#Scripts/MyLua.txt")
f = io.open(FilePath) --open the file, ovewrites the file each time
str = f:read('*l') --read line
f:close()
--number = string.match(str, 1) --use a pattern search to find the first number in the file
print(str) --test code
encrypted = caesar.encrypt(str, 7)
decrypted = caesar.decrypt(encrypted, 7)
print("Original text: ", str)
print("Encrypted text: ", encrypted)
print("Decrypted text: ", decrypted)
output = encrypted
end --funciton Initialize
function Update()
print(output)
SKIN:Bang('!SetOption', 'ScriptMeter', 'Text', output)
--return(output) --return the string
end
function encrypt(text, key)
return text:gsub("%a", function(t)
local base = (t:lower() == t and string.byte('a') or string.byte('A'))
local r = t:byte() - base
r = r key
r = r%26 -- works correctly even if r is negative
r = r base
return string.char(r)
end)
end
local function decrypt(text, key)
return encrypt(text, -key)
end
caesar = {
encrypt = encrypt,
decrypt = decrypt,
}
MyLua.txt
Notes
Ответ №1:
Участник Reddit по имени / u / GlobTwo помог мне разобраться в этом, поэтому я решил опубликовать его ответ и здесь.
MouseOverAction=[!CommandMeasure "ScriptMeasure" "encrypt('sometext', '1')"]