Войти

Показать полную графическую версию : [решено] Язык LUA


Страниц : 1 [2]

pva
01-05-2013, 22:38
в общем, у тебя подключен пакет "os", ты можешь вызвать любую внешнюю программу

os.execute("\"c:\\program files\\internet explorer\\iexplore.exe\" http://www.ya.ru")

но у меня (отдельно собранный интерпретатор LUA) os.execute почему-то на любой аргумент отвечает "no such file or directory". Попробуй, возможно у тебя получится

by_gangster
01-05-2013, 22:47
pva, мне это так писать ?

self:AddCallback("btn_mod_option",ui_events.BUTTON_CLICKED,self.os.execute("\"c:\\program files\\internet explorer\\iexplore.exe\" http://www.ya.ru"),self)

pva
01-05-2013, 22:54
нет, для начала так:

self:AddCallback("btn_mod_option", ...) -- оставляешь как было
debug_to_file("exec-test.txt", os.execute("\"c:\\program files\\internet explorer\\iexplore.exe\" http://www.ya.ru"))

Заставляешь его то выполнить, если не запускается эксплорер, то ищешь файл "exec-test.txt", там должен быть текст ошибки.
Если сработает, то:

self:AddCallback("btn_mod_option",ui_events.BUTTON_CLICKED,self.my_fun,self)

и где-нибудь добавляешь функцию

function main_menu:my_fun()
os.execute("\"c:\\program files\\internet explorer\\iexplore.exe\" http://www.ya.ru")
end

либо вместо двух правок одна:

self:AddCallback("btn_mod_option",ui_events.BUTTON_CLICKED,function() os.execute("\"c:\\program files\\internet explorer\\iexplore.exe\" http://www.ya.ru") end)

by_gangster
01-05-2013, 23:02
pva, всё работает, большое спасибо.
А почему cmd открывается ?
И если можно какую-нибудь справочку по пакету "os".

pva
01-05-2013, 23:05
os.execute вызывает функцию C system(), которая может быть реализована через вызов cmd. Это уже никак не победить
для отметки темы решённой вверху есть ссылочка

http://www.lua.org - сайт авторов
http://www.lua.org/pil/contents.html - учебник по LUA 5.0 от авторов (5.2 в онлайне нет, но можно скачать вместе с исходниками)
http://www.lua.org/pil/22.html - конкретно про OS
http://www.lua.org/manual/5.2/ - мануал (но рекомендую сначала почитать книгу и проделать все примеры оттуда)

by_gangster
04-05-2013, 14:47
pva, Не проверял когда игра запущена в полном окне, оказалось что при нажатии тупо виснет, но если вызвать Диспетчер, то видно что cmd и браузер успешно открыты... А если запускать в окне то нормально... Может можно как-то решить эту проблему ?

pva
05-05-2013, 17:05
Видимо они не поделили экран, клавиатуру или что-то ещё. Варианты:
1. использовать другой браузер (напр. firefox) - не факт, что есть на любой машине
2. найти, чем можно выйти из полноэкранного режима (если есть) - очередной костыль
3. пойти по пути lxa85 и найти более родное сталкеру средство для открытия веб-страниц (если оно есть) - угадыванием или по доке

by_gangster
05-05-2013, 23:18
pva, а какая-нибудь команда сворачивания окна в LUA есть ?

pva
06-05-2013, 10:16
by_gangster, Насколько я знаю, разработчики LUA средств работы с окнами не выкладывали. Тут каждый пользователь библиотеки LUA волен сделать так, как ему удобней, и что лучше для его системы. Например я для себя как то прикручивал окна к LUA. Думаю тут уже надо копать в сторону сталкера.

by_gangster
09-05-2013, 21:30
pva, Я тут случайно зашёл в сетевую игру (по нету) и нажал на кнопочку Востановить пароль, и он мне свернул игру и открыл страницу, вот только как не понимаю

by_gangster
09-05-2013, 21:54
Всё, вроде, разобрался, пакет OS уже не нужен в скрипте со сворачиванием страницы нашёл такие строки

function gamespy_page:OnBtnLPForgotPassword()
self.owner.l_mgr:forgot_password("https://login.gamespy.com/lostpassword.aspx")
end


Затем заменил на своё

function main_menu:sigerous()
self.l_mgr:forgot_password("https://login.gamespy.com/lostpassword.aspx")
end


И именно forgot_password, сворачивает и открывает страницу, если его заменить то - вылет...

Интересно как она работает

pva
10-05-2013, 08:51
Возможно что-то есть здесь:
https://www.google.ru/search?q=%D1%81%D1%82%D0%B0%D0%BB%D0%BA%D0%B5%D1%80+sdk&rlz=1C1ASUT_enRU521RU521&aq=f&oq=%D1%81%D1%82%D0%B0%D0%BB%D0%BA%D0%B5%D1%80+sdk&aqs=chrome.0.57j0l3.5658j0&sourceid=chrome&ie=UTF-8#newwindow=1&rlz=1C1ASUT_enRU521RU521&sclient=psy-ab&q=%D1%81%D1%82%D0%B0%D0%BB%D0%BA%D0%B5%D1%80+sdk+lua&oq=%D1%81%D1%82%D0%B0%D0%BB%D0%BA%D0%B5%D1%80+sdk+lua&gs_l=serp.3...44130.44738.0.45069.4.4.0.0.0.0.67.238.4.4.0...0.0...1c.1.12.psy-ab.I19ice3JShw&pbx=1&bav=on.2,or.r_qf.&bvm=bv.46340616,d.bGE&fp=c3445bb11e74d3fd&biw=1076&bih=649

Dodakaedr
03-10-2014, 00:05
Подскажите как создать ключ реестра с значением? Этот пример не работаетRegistry.SetValue(HKEY_CURRENT_USER, "Software\\My Application", "MyValue", "Saved Value", REG_SZ);




© OSzone.net 2001-2012