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

» Autoplay Media Studio

Автор: Vadim021X
Дата сообщения: 30.10.2011 15:32
как на кнопку Esc сделать действие?
Автор: Stalkersof
Дата сообщения: 30.10.2011 16:13
Vadim021X
On Key страницы


Код: if e_Key == 27 then
Dialog.Message("Notice", "Your message here.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: dallas_page
Дата сообщения: 30.10.2011 23:00
Доброй ночи господа. У меня сложный (по крайней мере для меня) вопрос. Мне нужно чтобы программа запускала батник в скрытом режиме или хотя бы в свернутом. Но на экране в программе в текстовом объекте показывалось бы что сейчас происходит, как если бы батник запускался в обычном режиме. И если это возможно слева от каждого действия писалось бы время, когда оно началось. Другими словами что-то типа лога, но текст он брал бы из батника. Из переписки выше я так понял бантик в скрытом режиме можно запустить кодом Shell.Execute(sPath.."\\Install\\g01.bat", "open", "", "", SW_HIDE, true). Плиз светлые головы подскажите что тут можно сделать. Заранее спасибо.

Добавлено:
И еще приз подскажите как прописать чтобы действие происходило при нажатии одновременно нескольких клавиш, скажем ctrl+q. Заранее спасибо
Автор: Zloy_Gelud
Дата сообщения: 30.10.2011 23:11
dallas_page


Цитата:
Мне нужно чтобы программа запускала батник в скрытом режиме или хотя бы в свернутом. Но на экране в программе в текстовом объекте показывалось бы что сейчас происходит, как если бы батник запускался в обычном режиме.

Есть плагин для этих задач - CommandLine. И к нему хороший пример прилагается. Стоит изучить.

Цитата:
И если это возможно слева от каждого действия писалось бы время, когда оно началось.

А вот это тебе необходимо реализовывать уже в самом батнике, т.к. плагин может выводить только результат выполнения консольного приложения/команды (stdout).
Автор: dallas_page
Дата сообщения: 30.10.2011 23:13
Zloy_Gelud спасибо

Добавлено:

Цитата:
И еще приз подскажите как прописать чтобы действие происходило при нажатии одновременно нескольких клавиш, скажем ctrl+q. Заранее спасибо


Если не трудно подскажи пожалуйста по этому вопросу. Заранее спасибо.
Автор: Zloy_Gelud
Дата сообщения: 30.10.2011 23:18

Цитата:
И еще приз подскажите как прописать чтобы действие происходило при нажатии одновременно нескольких клавиш, скажем ctrl+q. Заранее спасибо


On Key страницы:

Код: if e_Modifiers.ctrl and e_Key == 81 then Dialog.Message("Notice", "Your message here."); end
Автор: Mancoffee
Дата сообщения: 31.10.2011 09:26
Как сделать, чтобы по нажатию на кнопку происходило копирование в определённую папку определённых файлов?
Автор: Zloy_Gelud
Дата сообщения: 31.10.2011 09:42
Mancoffee

Копирование файлов с расширением .TXT:

Код: File.Copy("C:\\MyDir\\*.txt", "C:\\DestDir", false, true, false, true, nil);
Автор: Mancoffee
Дата сообщения: 31.10.2011 11:38

Цитата:
[/q][q]Копирование файлов с расширением .TXT:

А не с расширением txt также или ...

Вот сделал вот так


Код: File.Copy("Soft\\Total Commander\\Wincmd.ini", "%Program Files (x86)%\\Total Commander", true, true, false, true, nil);
Автор: Zloy_Gelud
Дата сообщения: 31.10.2011 12:23
Mancoffee

Цитата:
"%Program Files (x86)%\\Total Commander"

Что это за путь такой?
Вот, попробуй.

Код: File.Copy("Soft\\Total Commander\\Wincmd.ini", _ProgramFilesFolder.."\\Total Commander", true, true, false, true, nil);
Автор: Stalkersof
Дата сообщения: 31.10.2011 12:32
Zloy_Gelud
Тоже интересно как переменная _ProgramFilesFolder будет определяться на 64 битных системах ?
Допустим:
Program Files (x86)\ЕЕЕЕЕЕ и Program Files (x64)\ггггггг
Такая запись будет работать? _ProgramFilesFolder.."\\EEEEEE" и _ProgramFilesFolder.."\\ггггггг"

Mancoffee
Отпишись как там если получится.
И еще попробуй права проекта изменить(Project\Settings) На админа или пользовательские требовать.

Добавлено:
Кто нибудь знает на 64 битных системах используя _ProgramFilesFolder мы получим путь к папке Program Files (x86) или к Program Files. Или и к той и к той. Но хота из за такой ерунды систему ставить.
Автор: dallas page
Дата сообщения: 31.10.2011 17:16

Цитата:
плагин может выводить только результат выполнения консольного приложения/команды (stdout)


Zloy_Gelud попробовал, не получается. Выводит только первую строчку из батника. Может что-то я не так делаю. Будь добр, взгяни пожалуйста на батник.

Ссылка на батник:
http://narod.ru/disk/30077413001/Signal.7z.html

Заранее спасибо
Автор: Zloy_Gelud
Дата сообщения: 31.10.2011 18:06
dallas page
Вот это у меня отработало нормально.

Код: StatusDlg.Show(MB_ICONNONE, false);
StatusDlg.ShowProgressMeter(false);
StatusDlg.SetTitle("Working..");
StatusDlg.SetMessage(" Executing Command...");

local sz_commandline = _SourceFolder.."\\New Folder\\111.bat"

tblResult = CommandLine.Execute(sz_commandline, 0);

if (tblResult ~= nil ) then

Input.SetText("Input1", tblResult.StdOut);
Input.SetText("Input2", tblResult.StdError);
Input.SetText("Input3", tblResult.ExitCode);

StatusDlg.Hide();

else

StatusDlg.Hide();
Dialog.Message("Error", "Failed To Execute command Line..", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

end
Автор: dallas page
Дата сообщения: 31.10.2011 18:14

Цитата:
А теперь скажи мне, плиз, как удалить то что установилось?

А ничего и не установилось. Не работает. Тоже самое. Выводит:

Running Install Script
Done

а если просто запустить батник, то будет полный текст

Добавлено:
убей процесс adb.exe
Автор: AVM185
Дата сообщения: 31.10.2011 18:17
Доброго времени суток, помогите пожалуйста, как сделать так чтобы при вводе в Input создавался текстовый файл txt, и дальнейшие действия в программе сохранялись в него, а после следующего открытия всё что было сделано или пройдено восстанавливалось, и можно было продолжить работу? Заранее спасибо
Автор: Zloy_Gelud
Дата сообщения: 31.10.2011 18:31
dallas page

Немного покурив, я понял, что плагин читает stdout только того консольного приложения/скрипта/команды, которого он запускает. Т.е., если запускать батник, то в stdout будут попадать команды выполняемые непосредственно самим батником, а не приложением adb.exe. Если необходимо получать результат выполнения консольного приложения adb.exe, то нужро работать именно с ним, а не с батником.

Код: StatusDlg.Show(MB_ICONNONE, false);
StatusDlg.ShowProgressMeter(false);
StatusDlg.SetTitle("Working..");
StatusDlg.SetMessage(" Executing Command...");

local sz_commandline = _SourceFolder.."\\New Folder\\adb.exe install \"".._SourceFolder.."\\New Folder\\Advanced_Task_Killer_Pro_1.9.7B91_ru.apk\""

tblResult = CommandLine.Execute(sz_commandline, 0);

if (tblResult ~= nil ) then

Input.SetText("Input1", tblResult.StdOut);
Input.SetText("Input2", tblResult.StdError);
Input.SetText("Input3", tblResult.ExitCode);

StatusDlg.Hide();

else

StatusDlg.Hide();
Dialog.Message("Error", "Failed To Execute command Line..", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

end
Автор: dallas page
Дата сообщения: 31.10.2011 18:40
Zloy_Gelud спасибо. Сработало. Но, в батнике были параметры @ECHO off, чтобы не было видно пути к файлу и через adb.exe устанавливались все файлы *.apk которые присутствуют в той же папке. Похоже проще будет оставить батник... Жаль


Добавлено:
Что ж, у меня тогда есть другой интересный вопрос. В папке находятся *.apk файлы. Можно ли сделать, чтобы программ посмотрела их имена и если есть в названии пробел, то заменила бы его на _ и если название начинается со строчной буквы, то делала бы ее заглавной. Заранее спасибо.
Автор: BUBKO3
Дата сообщения: 31.10.2011 20:04
Делаю програмку на AMS 8.0
и в ходе работы, появилось пару вопросов:

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

2. Нужно сделать кнопку которая при нажатие показывала объекты а при втором нажатие прятала их. (как показывать и прятать объекты, я знаю, а вот как работать с повторным нажатием, не знаю. Пробовал радиобутоном DOWN и UP. пробовол и else и всё такое, оно только появится на долю секунды и тут же пропадает)
Автор: mezi
Дата сообщения: 31.10.2011 20:45
tavria2 17:31 20-05-2011

Цитата:
Пример SlideShow с различными эффектами, используется IsSlideShow.dll v1.02 от ExpeditoR.

Можите кинуть проект у кого есть?
(давно было)
Автор: Stalkersof
Дата сообщения: 31.10.2011 21:00
mezi
http://narod.ru/disk/30111290001/IsSlideshow.apz.html Оно
Автор: lerik2703
Дата сообщения: 31.10.2011 21:04
BUBKO3

Цитата:
Нужно сделать кнопку которая при нажатие показывала объекты а при втором нажатие прятала их


Код: Paragraph.SetVisible("Paragraph1", not Paragraph.IsVisible("Paragraph1"));
Автор: mezi
Дата сообщения: 31.10.2011 21:05
Stalkersof -- спасибо
Автор: dallas page
Дата сообщения: 01.11.2011 09:29

Цитата:
В папке находятся *.apk файлы. Можно ли сделать, чтобы программ посмотрела их имена и если есть в названии пробел, то заменила бы его на _ и если название начинается со строчной буквы, то делала бы ее заглавной. Заранее спасибо.


кто нибудь подскажите плиз, это возможно?
Автор: BUBKO3
Дата сообщения: 01.11.2011 11:58
lerik2703

Спасибо!!! Выручил!!!
Автор: Stalkersof
Дата сообщения: 01.11.2011 12:05
dallas page
Пробелы будут просто удаляться. Криво но работает. Спецы придут получше сделают.

[more=Код]
Код: local tFindFile = File.Find("AutoPlay\\Docs", "*.apk", true, false);
if tFindFile then
for i = 1, #tFindFile do
local Drive = String.SplitPath(tFindFile[i]).Drive;
local Folder = String.SplitPath(tFindFile[i]).Folder;
local FileName = String.SplitPath(tFindFile[i]).Filename;
local Extension = String.SplitPath(tFindFile[i]).Extension;
if String.Find(FileName, " ")then FileName = String.Replace(FileName, " ", "", false);end
if String.Compare(String.Left(FileName, 1), String.Upper(String.Left(FileName, 1)))~= 0 then
FileName = String.Upper(String.Left(FileName, 1))..(String.Right(FileName,String.Length(FileName)-1));
end
Dialog.Message("Table Item",Drive..Folder..FileName..Extension);
File.Rename(tFindFile[i], Drive..Folder..FileName..Extension);
end
end
Автор: Zloy_Gelud
Дата сообщения: 01.11.2011 12:10
dallas page --держи.

Код: local tAPK = File.Find("C:\\MyDir", "*.apk", false, false, nil, nil);
if tAPK then
local tSplit, sName
for i, sAPK in pairs(tAPK) do
tSplit = String.SplitPath(sAPK);
sName = String.Replace(tSplit.Filename, " ", "_", false);
sName = String.Upper(String.Left(sName, 1))..String.Mid(sName, 2, -1);
File.Rename(sAPK, tSplit.Drive..tSplit.Folder..sName..tSplit.Extension);
end
end
Автор: tavria2
Дата сообщения: 01.11.2011 12:41
Привет Zloy_Gelud

В файлах с русскими именами, не будет преобразования в верхний регистр 1-го символа.

По умолчанию, в Lua локаль установлена, как английская и русские символы не будут обрабатываться в String.Upper, String.Lower и регулярных выражениях.

Нужно предварительно установить локаль Lua соответствующей локали нашей ОС:
Код: os.setlocale(""); -- установка локали
Автор: Zloy_Gelud
Дата сообщения: 01.11.2011 12:48
tavria2 --здарова. Не хватает тут тебя. Бросай работу.

Добавлено:

Цитата:
Нужно предварительно установить локаль Lua соответствующей локали нашей ОС:

Хм. Покурю насчет этого. Спасиб. А так, я знал, что регистр русских слов не будет изменяться, я надеялся, что все файлы у dallas page на латинице.
И, кстати, есть и другой способ изменять регистр кириллический букв..
Автор: BUBKO3
Дата сообщения: 01.11.2011 13:11
lerik2703

Спасибо!!!

А ты не знаешь как вывести в Label имя учетной записи Windows и язык?
Автор: tavria2
Дата сообщения: 01.11.2011 13:20
Zloy_Gelud

Цитата:
Хм. Покурю насчет этого.

Вот несколько вариантов установки локали чтобы не было проблем с обработкой русских строк:
Код: -- 1-й вариант
os.setlocale(""); -- установка локали соответствующей локали ОС
-- 2-й вариант
os.setlocale("Russian_Russia.1251"); -- установка русской локали

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

Предыдущая тема: Media Player Classic - Home Cinema (MPC-HC)


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