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

» Indigo Rose AutoPlay Media Studio

Автор: Pus21
Дата сообщения: 10.04.2015 16:50

Цитата:
Robby

Спасибо еще раз огромное, а можете сказать что в моём варианте не так?

full_name = INIFile.GetValue(_SourceFolder.."\\CONF.ini", "Section", "run");
if (full_nam ~= "1") then
RadioButton.SetChecked("RadioButton1", true);
else
if (full_nam ~= "2") then
RadioButton.SetChecked("RadioButton2", true);
end
end

Добавлено:
Ааа!!!, и у Вас тоже самое, при старте выбран Run1, хотя в ini я поставил Run=2...

Добавлено:
А все разобрался с Вашим примером, перенес скрипт из "On Show" в "On Preload".

Буду пытаться понять что я делал не так...

Добавлено:
ПОМОГИТЕ, поправил по аналогии, теперь даже RadioButton1 при старте неактивен, не понимаю.

full_name = INIFile.GetValue(_SourceFolder.."\\ddraw.ini", "ddraw", "width");
if (full_nam == "1") then
RadioButton.SetChecked("RadioButton1", true);
elseif (full_nam == "2") then
RadioButton.SetChecked("RadioButton2", true);
end

Добавлено:

Цитата:
Robby

Спасибо еще раз, сделал на 100% как у Вас, теперь все работает, самостоятельно нечего не получилось, увы (грустный смайлик).
Автор: Robby
Дата сообщения: 10.04.2015 19:36
Pus21
Орфографическая ошибка.
full_name - ты используешь это имя переменной, а проверяешь full_nam.

Добавлено:
Pus21
рекомендую почитать, переведенную на русский, справку, ссылка в этом сообщении http://forum.ru-board.com/topic.cgi?forum=5&topic=39341&start=1820#10

Автор: Pus21
Дата сообщения: 11.04.2015 00:52

Цитата:
Robby

Я это взял из примера, и это не команда, поэтому я, на это и не обратил на это внимание, сам терпеть не могу безграмотных.
Автор: DartKane
Дата сообщения: 12.04.2015 10:55

Цитата:
[/q]
[q]Теперь хочу реализовать фидбэк.
Нужно, чтобы  программа слала с адреса fid@domain1.ru на адрес mail@domain2.ru тектст, который будет написан в поле "input".
Скрин: https://yadi.sk/i/g9s-xUbOfpk9y
Вот болванка: https://yadi.sk/d/RYVjj_xifpkoB
 
Как это реализовать? И возможно ли?


Полазил в AMS и не нашёл ничего связанного с почтой(
Автор: AntiWinLockerLive
Дата сообщения: 12.04.2015 20:18

Цитата:
Вызываем стандартный Windows диалог, который видим, когда копируем в проводнике Windows.

Копирую папку с файлами с одного места (диска) в другое (жесткий диск) файлов много и объем большой...
Нужно реализовать прогресс. В окне программы, места нет.
Хочу задействовать системный прогресс копирования (как при обычном копировании файлов в системе), возможно ли это сделать?
Автор: dallas page
Дата сообщения: 13.04.2015 00:19
AntiWinLockerLive, может подойдет пример 3 из справки.
Можно еще запускать DialogEx и прописать Callback функцию для копирования. Подробнее о CallbackFunction в справке. В дополнении или отдельно можно использовать TaskBarList Action Plugin.
Автор: AntiWinLockerLive
Дата сообщения: 13.04.2015 08:02
Пример 3 отображает прогресс бар, правда не системный, свой...
Ну хоть что то...

Плагин TaskBarList Action Plugin, уж очень много весит...
Да и кто на иконку будет смотреть...

А есть все таки способ использовать именно системное окно копирования?
Я так понял, надо CallbackFunction использовать, но как сообщить системному прогрессу ?
Автор: dallas page
Дата сообщения: 13.04.2015 15:41
AntiWinLockerLive, самому всегда интересно было, как вызвать системный прогресс. Я могу ошибаться, но может использовать CopyFileExA через Kernel32.dll?!! Подробнее тут. Похожий пример тут.

Добавлено:

Цитата:
Я так понял, надо CallbackFunction использовать

Это относится к объекту Progress, который можно использовать в окне DialogEx.
Автор: AntiWinLockerLive
Дата сообщения: 13.04.2015 17:47
Не копирует совсем, ну и ладно...
Есть же пример №3 ну или программу tepacopy можно применить.
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 09:49
Сделал в своей программе функцию перетаcкивания образов в окно программы, в форму input.
Подскажите как сделать маску, только определенные файлы что бы окно принимало. Форматов 7, заглавными и маленькими буквами, получается 14.
Если обрабатывать каждую запись, код получается громоздким.
Может как то можно использовать таблицу, и в ней перечислить доступные форматы файлов?
Сейчас так перечисляю:

Код: _OnDragDrop = function (tFiles)
if tFiles then
for i = 1, #tFiles do
typeImage = String.Right(tFiles[i], 4); -- считываю расширение файла
if typeImage == ".iso" then -- проверяю совпадает ли расширение с допустимым, если да то:
Input.SetText("input",tFiles[i])
-- тут идут команды
end
if typeImage == ".ISO" then -- проверяю совпадает ли расширение с допустимым, если да то:
Input.SetText("input",tFiles[i])
-- тут идут команды
end
end
end
end
Автор: Zloy_Gelud
Дата сообщения: 17.04.2015 10:36
AntiWinLockerLive -- попробуй.

Код: checkExt = function(sExt)
    local tTrueExts = {'.iso','.img'};
    for i = 1, #tTrueExts do
        if (String.Lower(sExt) == tTrueExts[i]) then return true; end
    end
    return false;
end

_OnDragDrop = function (tFiles)
if tFiles then
    local tPaths;
for i = 1, #tFiles do
            tPaths = String.SplitPath(tFiles[i]);
            if checkExt(tPaths.Extension) then
                Input.SetText("input",tFiles[i]);
            else
                result = Dialog.Message("Error", "Неверный формат.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
            end
end
end
end
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 10:54
РАБОТАЕТ!!! Я очень рад!!! Благодарю!!! Вы лучший!!!
Так сделал:

Код:     local tTrueExts = {'.iso','.ISO','.ima','.IMA','.img','.IMG','.bin','.BIN','.vhd','.VHD','.7z','.7Z','.rar','.RAR'};
Автор: Zloy_Gelud
Дата сообщения: 17.04.2015 11:03
AntiWinLockerLive
Если сделать вот так:

Код: local tTrueExts = {'.iso','.ima','.img','.bin','.vhd','.7z','.rar'};
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 11:06
Нет, если заглавным расширение в файле.
Автор: Zloy_Gelud
Дата сообщения: 17.04.2015 11:10
AntiWinLockerLive

Цитата:
Нет, если заглавным расширение в файле.

Я код здесь чуть исправил, ты наверно успел старый вариант скопировать.
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 11:17
Так и есть... Теперь работает с заглавными, тоже. Спасибо!
Автор: Zloy_Gelud
Дата сообщения: 17.04.2015 11:23
AntiWinLockerLive

Цитата:
Хочу задействовать системный прогресс копирования (как при обычном копировании файлов в системе), возможно ли это сделать?

Угу. Только плагин luacom необходимо подключить.

Код: local sSrcPath = _ProgramFilesFolder .. "\\AutoPlay Media Studio 8";
local sDestPath = _WindowsFolder .. "\\Temp";

local oSHApp = luacom.CreateObject("Shell.Application");
oSHApp:Namespace(sDestPath):CopyHere(sSrcPath);
oSHApp = nil;
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 11:29
Плагин в моем проекте используется (для определения цифры диска)
Две верхние строчки непонятны для меня... Создаются переменные....
А как именно прописать копирование с одного места файлов, в другое?

Цитата:
oSHApp:Namespace(sDestPath):CopyHere(sSrcPath);
это?
Автор: Zloy_Gelud
Дата сообщения: 17.04.2015 11:32
AntiWinLockerLive

Цитата:
Две верхние строчки непонятны для меня... Создаются переменные....

sSrcPath - путь к тому, что будем копировать.
sDestPath - путь, куда будем копировать.

Цитата:
А как именно прописать копирование с одного места файлов, в другое?

То, что после этих переменных и есть системная функция копирования.
https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb787866(v=vs.85).aspx
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 11:34
То есть когда я что то хочу скопировать, каждый раз пишу весь код?
Спасибо, а я уже отчаялся, думал что не получится системный прогресс копирования вывести.
Удалил данную функцию из проекта, а зря. Теперь придется вспоминать как у меня там все было...
Еще один вопрос, а можно при перетаскивании на объект понять, что папку на него перетащили?
Ведь по расширению не получится...
Автор: Zloy_Gelud
Дата сообщения: 17.04.2015 11:49
AntiWinLockerLive

Цитата:
То есть когда я что то хочу скопировать, каждый раз пишу весь код?

Можно упростить до такого вида:

В Глобальные функции:

Код: local g_oSHApp = luacom.CreateObject("Shell.Application");

File.CopyEx = function (sSrcPath, sDestPath, sOpt)
    local oSHApp = g_oSHApp or luacom.CreateObject("Shell.Application");
    oSHApp:Namespace(sDestPath):CopyHere(sSrcPath, sOpt);
end
Автор: AntiWinLockerLive
Дата сообщения: 17.04.2015 11:56
Круть!!! Есть у меня теперь, чем заняться. Что доделать, переделать.
Автор: Pus21
Дата сообщения: 20.04.2015 14:41
Здравствуйте подскажите ПЛЗ:

Нужно чтобы APMS проверяло наличие файла в указанной директории, соответственно код такой:

File.DoesExist(_SourceFolder.."\\Data\\001.txt")

и все работает, но мне нужно чтобы APMS проверяло наличие любого файла с расширением "txt", а команду
File.DoesExist(_SourceFolder.."\\Data\\*.txt")
программа не понимает, как правильно ее задать?

Заранее спасибо.
Автор: KerberX
Дата сообщения: 20.04.2015 14:47
Pus21

Код: local tFiles = File.Find(_SourceFolder.."\\Data\\", "*.txt", false, false, nil, nil);
if tFiles ~= nil then
    Dialog.Message("", "Найденные TXT файлы:\r\n\r\n"..table.concat(tFiles, "\r\n", 1, #tFiles));
else
    Dialog.Message("", "TXT файлы не найдены");
end
Автор: Pus21
Дата сообщения: 20.04.2015 15:14
Спасибо за быстрый ответ, но почему то не работает, не видит наличие файлов в директории, мне нужна их дальнейшая архивация, пишу так:

Код: local tFiles = File.Find(_SourceFolder.."\\Data\\*.txt", "*.txt", false, false, nil, nil);
if tFiles ~= nil then
Zip.Add(_SourceFolder.."\\Data\\Save.zip", {_SourceFolder.."\\Data\\*.txt"}, true, "", 9, nil, false);
result = Dialog.Message("", "Good", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
result = Dialog.Message("", "Bad", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: KerberX
Дата сообщения: 20.04.2015 15:18
Pus21
Я исправил код. Забыл убрать фильтр из пути для поиска.


Цитата:
Забыл написать, команда нужна на кнопке.

Как будто код будет выглядеть по другому из-за этого.
Автор: Pus21
Дата сообщения: 20.04.2015 15:25

Цитата:
Как будто код будет выглядеть по другому из-за этого.

Нет конечно, просто я подумал что, может быть, строчку:
local tFiles = File.Find(_SourceFolder.."\\Data\\*.txt", "*.txt", false, false, nil, nil);
нужно писать в "On Show".

Спасибо, сейчас попробую.
Автор: KerberX
Дата сообщения: 20.04.2015 15:26
Pus21
Не забудь заменить _SourceFolder.."\\Data\\*.txt" на _SourceFolder.."\\Data\\"
Автор: Pus21
Дата сообщения: 20.04.2015 15:51

Цитата:
Не забудь заменить _SourceFolder.."\\Data\\*.txt" на _SourceFolder.."\\Data\\"
Да, да, спасибо, я заметил разницу.

Большое спасибо еще раз, теперь все работает.
Автор: DartKane
Дата сообщения: 21.04.2015 19:11
Нужно отсылать фид. Знакомый накидал код:


Цитата:
-- Create var
local sMessage = Input.GetText("tblMessage");

local MailText = {}; -- создание таблицы MailText
MailText.FromName = "FeedBack Application"; -- имя отправителя якобы
MailText.FromEmail = "feed@domen1.com"; -- мыло отправителя
MailText.To = "mail@domen2.com"; -- мыло получателя
MailText.Subject = "Отзыв о программе"; -- тема сообщения
MailText.TextBody = sMessage; -- текст сообщения

local ServerMail = {}; -- создание таблицы ServerMail
ServerMail.Server = "mail.nic.ru"; -- SMTP-сервер
ServerMail.ServerPort = 25; -- порт
ServerMail.Authenticated = true; --[[
true - авторизация обязательна
false - авторизация необязательна
В нашем случае требуется подключение под пользователем, поэтому стоит true]]
ServerMail.UserName = "stat"; -- логин пользователя
ServerMail.PassWord = "12345"; -- пародь пользователя
ServerMail.TimeOut = 300; -- время ожидания подтверждения. Если не будет одобрено в течении 300 секунд, отправка будет отменена

SmtpT.SendMail(MailText, ServerMail, nil); -- отправка письма


Однако почта не приходит и приложение не закрыть.
Плагин mail установлен.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: память не может быть written


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