Звуковой сигнал в интерпретаторе lua.exe

Страницы: 1
RSS
Звуковой сигнал в интерпретаторе lua.exe, Как сделать сигнал beep при запуске программы с помощью lua.exe
 

Мне надо адаптировать свою программу тестирования на исторических данных так, чтобы она запускалась не из Quik, а интерпретатором lua.exe из командной строки (типа ..\lua.exe myprogram.lua). В конце программы запрограммирован звуковой сигнал beep для оповещения, что программа завершила работу. Это сделано 2-мя операторами: require("w32") и w32.MessageBeep(w32.MB_OK). Я записал в каталог, где сидит lua.exe, библиотеку w32.dll. Однако lua.exe выдает ошибку “запуск программы  невозможен, так как на компьютере отсутствует файл qlua.dll”.  Если добавить этот файл, то тогда требует еще какой-то файл QCtrls.dll. Что все это значит – я не понимаю.

В каталоге, где сидит lua.exe, есть файл lua54.dll.  Это видимо какая-то своя библиотека?  Пробовал заменить в вышеупомянутых 2-х операторах w32 на lua54, т.е. написал require("lua54”) и lua54.MessageBeep(lua54.MB_OK). Но этот финт не помог -   выдает ошибку Error loading module ‘lua54’ from file ‘D:\lua\lua54.dll’.

В общем сдаюсь. Может кто-то знает- как сделать, чтобы при запуске программы с помощью lua.exe работал сигнал beep?

 
Создайте командный файл beep.bat, в него напишите

echo ^7

^7 - это один символ, набирается на дополнительной клавиатуре с зажатым контролом <Аlt>007

или в редакторе notepad++ и окна таблицы a ascii.

из луа просто вызовите os.execute("beep.bat")

также вместо этого в ф.bat запустить любой медиа проигрыватель с нужной вам мелодией.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
.. c зажатым Аlt, конечно...
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 

Что-то не получается. Например, если в редакторе «блокнот» нажать и удерживать alt и на правой клавиатуре набрать 007, то ничего не происходит, т.е. после  «echo» ничего не добавляется.

А в редакторе Notepad++ не понимаю, что я должен сделать. В меню «правка» вхожу в таблицу  символов и выбираю символ ^ (94-й) и что еще я должен ввести – 007 или 7? Пробовал и то и другое, но выдает ошибку «echo007 не является внутренней или внешней командой, исполняемой программой ил пакетным файлом». Вы пишите, что это ^7 – это один символ. Как же мне это ввести в Notepad++?  

 
Цитата
Виктор Столетов написал:
в редакторе Notepad++
, раз уж зашли в таблицу символов, выбрали символ BEL (007 который) и все. Или просто зажали альт и набрали 007, как сказано выше.
 
Цитата
Anton написал:
, раз уж зашли в таблицу символов, выбрали символ BEL (007 который) и все. Или просто зажали альт и набрали 007, как сказано выше.
Да, теперь получилось (beep двойной, а под управлением Quik был одиночный). Не знал, что в таблице надо было выбрать bel. С нажатым alt+007 в Notepad++ тоже получилось – надо было включить NumLock  (в блокноте это почему-то не срабатывает).

Правда выдает сообщение «echo не является внутренней или внешней командой, исполняемой программой ил пакетным файлом» - см. скриншот. Конечно, хотелось бы от него избавиться, по возможности.

Пояснение: я запускаю файл t.bat, в котором строка ..\lua.exe t1.lua. В файле t1.lua единственная строка os.execute("beep.bat"). Файлы t.bat, t1.lua и beep.bat находятся на d:/lua/f, а  lua.exe на d:/lua.

Спасибо за помощь.

 

Продолжаю данную тему, которую  когда то  начал. Как я уже писал, у меня запрограммирован звуковой сигнал beep таким образом:

require("w32")  

w32.MessageBeep(w32.MB_OK).

Но эта конструкция больше не работает – при запуске скрипта  Quik выдает сообщение об ошибке:

«error loading module 'w32' from file 'G:\БС\QUIK_VTB24\w32.dll': Не найдена указанная процедура.»

Библиотека w32.dll в корне Quik присутствует.

Подскажите пожалуйста, в чем может быть причина?  

 
Спасение - qlua.exe
Делал себе, т.к. в самом деле порой требуется запустить скрипт из ком. строки, а не из QUIK. Но при этом хочется иметь "окружение как в QUIK".
Пока поддержано очень мало чего, но для указанных тут случаев годится

http://quik2dde.ru/static-img/qlua-exe/qlua-exe.zip
Распаковать, файл qlua.exe положить в каталог с QUIK - оттуда и запускать, все будет работать.
Пока это вариант только для Lua5.3, но этого достаточно, считаю, для реальных нужд.

Исходники:
https://github.com/swerg/qlua-exe
 

Я наверно не очень четко объяснил, в чем проблема. Скрипт вызывается непосредственно из терминала Quik (автономно его вызывать нет необходимости). Раньше упомянутые выше операторы  по генерации звука работали. Но видимо в Quik сделали какое -то обновление и теперь они не работают.

Все же я попробовал скачать файл qlua.exe по вашей первой ссылке,  положил его в корень Quik  и запустил. Но звук так и появился.

 
Возьмите в архиве http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/md.html библиотеку bot4sale64.dll

// PlaySound(sound_file)
// Returns error code (0 if successful) and string error description

require "bot4sale64"
err = bot4sale64.PlaySound("file.wav")  -- mp3 и все остальное тоже


для луа 5.3
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
https://forum.quik.ru/messages/forum10/message51026/topic1858/#message51026
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
s_mike@rambler.ru написал:
Возьмите в архиве  http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/md.html  библиотеку bot4sale64.dll
Спасибо. Все получилось. Скачал вашу библиотеку и положил в корень Quik,  а звуковой файл - в каталог scripts (вместо простого beep выбрал имитацию капли дождя, размер файла 32 К) . "err=" можно убрать - тоже работает.  Звуковой файл скачал с https://soundslibmp3.ru/load/721-besplatnye-zvukovye-effekty.shtml - может кому пригодится. В итоге код может быть такой:

require "bot4sale64"
bot4sale64.PlaySound("scripts/sound_drop.mp3")  
 
Цитата
Виктор Столетов написал:
Quik выдает сообщение об ошибке:  «error loading module 'w32' from file 'G:\БС\QUIK_VTB24\w32.dll': Не найдена указанная процедура.»     Библиотека w32.dll в корне Quik присутствует.

У всех работает, у вас не работает. Так не бывает.
Скорее всего не ту версию w32 используете.
Страницы: 1
Читают тему
Наверх