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

» Indigo Rose AutoPlay Media Studio

Автор: Grasss
Дата сообщения: 03.02.2016 02:00
есть такой вариант (del /f /s /q C:\*111.exe)
Автор: KerberX
Дата сообщения: 03.02.2016 02:02
Grasss
Bat файлы могут принимать аргументы при запуске. Вот: http://www.windowsfaq.ru/content/view/264/57/

Дальше сам.
Автор: Grasss
Дата сообщения: 03.02.2016 02:13
Вроде оно.
Автор: Pahuchiy1
Дата сообщения: 03.02.2016 07:53
KerberX

Цитата:
Цитата:
винапи установлен

Я должен это заскринить.

В каком смысле? Прислать тебе скрин с галкой на винапи в настройках? или что?
Впрочем, уже не так важно...я немного ошибся ...на самом деле мне нужно изменить не допустимое количество символов во всём инпуте, а максимальное количество символов без переноса (\r\n\) Сейчас максимум это 1024 символа. Это можно исправить?
Автор: KerberX
Дата сообщения: 03.02.2016 11:01

Цитата:
В каком смысле? Прислать тебе скрин с галкой на винапи в настройках? или что?

Те функции не используют плагин WinAPI, а фраза что WinAPI установлен выглядела так, как будто установлен сам WinAPI, а это часть Windows.


Цитата:
Впрочем, уже не так важно...я немного ошибся ...на самом деле мне нужно изменить не допустимое количество символов во всём инпуте, а максимальное количество символов без переноса (\r\n\) Сейчас максимум это 1024 символа. Это можно исправить?

Не знаю. В первый раз вижу такое ограничение. Сейчас пролистал MSDN, но ничего по этому поводу не нашёл.
Автор: Pahuchiy1
Дата сообщения: 03.02.2016 14:12

Цитата:
Не знаю. В первый раз вижу такое ограничение. Сейчас пролистал MSDN, но ничего по этому поводу не нашёл.

не надо читать, ну вот попробуй держать в инпуте нажатой какую нибудь букву. Как только количество этих букв перевалит за 1024, следующий (1025-й) символ будет печататься с новой строки. У меня так. Проверял на чистом новом проекте. Точно так же происходит в стандартном блокноте.
Автор: Grasss
Дата сообщения: 03.02.2016 16:20
Хочу сделать в приложении форму (имя/email) и связать ее с сайтом
Автор: KerberX
Дата сообщения: 03.02.2016 16:38
Pahuchiy1
Это никак не решается для контрола Edit (который и есть Input в AMS). Вот: http://stackoverflow.com/questions/3738889/textbox-control-limits-lines-to-1024-characters-regardless-of-wordwrap-setting

Там предлагается использовать RichEdit и я согласен с этим ответом. Аналог в AMS - объект RichText.
Автор: Grasss
Дата сообщения: 04.02.2016 12:56
Как это можно реализовать без встраивания веб обьекта?
Автор: KerberX
Дата сообщения: 04.02.2016 20:57
Недавно пришла идея попытаться загрузить Action плагин (.lmd) в чистый Lua. Написал для этого DLL. Но плагин не загружается. Я начинаю думать что там недостаточно просто вызвать функцию регистрации. Может кто уже интересовался этим вопросом.

Ошибка загрузки.

Код: Lua.exe: attempt to index a nil value
stack traceback:
[C]: in function 'LoadActionPlugin'
Loader.lua:39: in function 'Main'
Loader.lua:42: in main chunk
[C]: ?
Автор: AntiWinLockerLive
Дата сообщения: 07.02.2016 08:03
Подскажите пожалуйста функцию callback на File.Find , нужен только прогресс...
То есть, найденные файлы заполняются в combobox (реализовано),
а пока ждем выводится прогресс состояния...
Автор: Pahuchiy1
Дата сообщения: 07.02.2016 09:31
Помогите, не работает код:

Цитата:
sourсe =HTTP.SubmitSecure("https://pogoda.yandex.ru/astrahan/", {}, SUBMITWEB_GET, 20, 443, nil, nil)
sourсeRUS = Encoding.ConvertString(sourсe, "", "windows-1251")

sourсeRUS ничего не возвращает. Как мне достать исх код странички с русскими буквами?
Автор: KerberX
Дата сообщения: 07.02.2016 15:31
AntiWinLockerLive
Функция File.Find() не поддерживает Callback с индикатором (Не предоставляет соответствующие данные). Но могу предложить функции для установки неопределённого состояния полосы прогресса. Требуется MemoryEx.
[more]

Код: function Progress.SetStyle(ObjectName)
local GWL_STYLE = -16;
--
    local WS_CHILD = 0x40000000;
    local WS_VISIBLE = 0x10000000;
    --
    local tData = Progress.GetProperties(ObjectName);
    if tData ~= nil then
        local hWnd = tData.WindowHandle;
        --
        local nStyle = WS_CHILD + WS_VISIBLE;
        local hDLL = Library.Load("User32.dll", false);
        hDLL.SetWindowLongA(hWnd, GWL_STYLE, nStyle)
        hDLL:Close_();
        --
        local tSize = Progress.GetSize(ObjectName);
        Progress.SetSize(ObjectName, tSize.Width, tSize.Height+1);
        Progress.SetSize(ObjectName, tSize.Width, tSize.Height);
    end
end
function Progress.SetIndeterminateStyle(ObjectName)
local GWL_STYLE = -16;
--
local PBS_MARQUEE = 0x00000008;
    --
    local tData = Progress.GetProperties(ObjectName);
    if tData ~= nil then
        local hWnd = tData.WindowHandle;
        local hDLL = Library.Load("User32.dll", false);
        --
        local iOldLong = hDLL.GetWindowLongA(hWnd, GWL_STYLE);
        hDLL.SetWindowLongA(hWnd, GWL_STYLE, iOldLong+PBS_MARQUEE);
        hDLL:Close_();
        --
        local tSize = Progress.GetSize(ObjectName);
        Progress.SetSize(ObjectName, tSize.Width, tSize.Height+1);
        Progress.SetSize(ObjectName, tSize.Width, tSize.Height);
    end
end
function Progress.SetMarquee(ObjectName, bFlag, nTimeout)
    local nTimeout = nTimeout or 0;
    local WM_USER = 0x0400;
local PBM_SETMARQUEE = WM_USER+10;
    --
    local tData = Progress.GetProperties(ObjectName);
    if tData ~= nil then
        local hWnd = tData.WindowHandle;
        local hDLL = Library.Load("User32.dll", false);
        --
        local nFalg = 0;
        if bFlag == true then
            nFlag = 1;
        end
        hDLL.SendMessageA(hWnd, PBM_SETMARQUEE, nFlag, nTimeout);
        hDLL:Close_();
        --
        local tSize = Progress.GetSize(ObjectName);
        Progress.SetSize(ObjectName, tSize.Width, tSize.Height+1);
        Progress.SetSize(ObjectName, tSize.Width, tSize.Height);
    end
end
function Progress.SetNormalStyle(ObjectName)
    local tData = Progress.GetProperties(ObjectName);
    if tData ~= nil then
        local hWnd = tData.WindowHandle;
        local hDLL = Library.Load("User32.dll", false);
        local GWL_STYLE = -16;
        local WS_CHILDWINDOW = 0x40000000;
        local WS_VISIBLE = 0x10000000;
        --
        hDLL.SetWindowLongA(hWnd, GWL_STYLE, WS_CHILDWINDOW+WS_VISIBLE);
        hDLL:Close_();
    end
end
Автор: AntiWinLockerLive
Дата сообщения: 07.02.2016 17:21
KerberX, ну в принципе точный прогресс и не нужен, лишь бы отобразить что программа занята поиском файлов...
Автор: KerberX
Дата сообщения: 07.02.2016 17:31
AntiWinLockerLive
Ну если так, то может быть подойдёт и имеющаяся Callback функция.

Код: local function CallbackFind(sCurrentPath)
    Label.SetText("Label1", sCurrentPath);
end
Автор: AntiWinLockerLive
Дата сообщения: 07.02.2016 18:07
KerberX, что то я не понял, как её вызывать...
Наверное в справке есть... Что то я там видел...
Автор: KerberX
Дата сообщения: 07.02.2016 18:11
AntiWinLockerLive
Вот так.

Код: local tFiles = File.Find( _SourceFolder, "*", true, false, CallbackFind, nil);
Автор: Pahuchiy1
Дата сообщения: 07.02.2016 19:01
KerberX
пробовал utf-8, других не знаю. а как узнать какая кодировка?
Автор: KerberX
Дата сообщения: 07.02.2016 19:03
Pahuchiy1
С помощью инструментов разработчика в браузере можно.
Автор: Pahuchiy1
Дата сообщения: 07.02.2016 19:18
KerberX
utf-8 стоит....как я и указывал...что-же не так?
Автор: KerberX
Дата сообщения: 07.02.2016 19:22
Pahuchiy1
Не знаю. Этот плагин иногда просто не работает без какой-либо причины. Не знаю подойдёт ли тебе это, но можешь позаимствовать функцию перекодировки отсюда: http://mydc.ru/topic334.html (как раз самое первое сообщение).
Автор: Pahuchiy1
Дата сообщения: 07.02.2016 20:46
KerberXоказывается это инпут не правильно выводит текст. Потому что если

Цитата:
sourсe =HTTP.SubmitSecure("https://pogoda.yandex.ru/astrahan/", {}, SUBMITWEB_GET, 20, 443, nil, nil)
записать в файл, то всё в порядке.
Вобщем, надо с инпутом бороться...подскажешь?
Автор: KerberX
Дата сообщения: 07.02.2016 20:48
Pahuchiy1
Как именно он неправильно его выводит?
Автор: KerberX
Дата сообщения: 07.02.2016 21:06
Pahuchiy1
Убрал бы этот текст в теги [no][more][/more][/no]. А то вся страница разъехалась. Тут видно что текст не в той кодировке. Он в UTF-8, а должен быть в Windows-1251. Input и другие контролы в AMS не поддерживают UTF-8.
Автор: Pahuchiy1
Дата сообщения: 08.02.2016 16:49
KerberX
всё уже перепробовал, никак не получается даже со сторонними консольными прогами перекодировать файл из utf-8 в windows-1251, может поможешь?
вот к примеру, пробовал:
Цитата:
File.Run("D:\\ams_projects\\tray_menu_6\\CD_Root\\AutoPlay\\Docs\\_distr\\bin\\iconv.exe", [[ -f utf-8 -t windows-1251 d:\1.txt]], "", SW_SHOWNORMAL, true)

а тот код, ссылку на который ты дал работает так же как и Encoding.ConvertString. То что может сконвертить код, конвертит и плаг, и наоборот.
Автор: KerberX
Дата сообщения: 08.02.2016 18:37
Pahuchiy1
Нашёл одну библиотеку, написанную tavria2. Копируешь этот код в глобальные функции.

Код: if not ConvertString then
    ConvertString = {};
end
ConvertString.Path = _SourceFolder.."\\AutoPlay\\Scripts\\ConvertString.dll";
--
function ConvertString.Convert(sString, iSourceEncoding, iOutEncoding)
    local hDLL = Library.Load(ConvertString.Path);
    hDLL:SetReturnType_(MEMEX_RETURNTYPE_STRING);
    local sRet = hDLL.Convert(sString, iSourceEncoding, iOutEncoding);
    hDLL:Close_();
    --
    return sRet;
end
--
function ConvertString.Win1251ToUTF8(sString)
    return ConvertString.Convert(sString, 1251, 65001);
end
function ConvertString.UTF8ToWin1251(sString)
    return ConvertString.Convert(sString, 65001, 1251);
end
--
function ConvertString.FixUTF8(s, replacement)
    local p, len, invalid = 1, #s, {}
    while p <= len do
        if         p == s:find("[%z\1-\127]", p) then p = p + 1
        elseif p == s:find("[\194-\223][\128-\191]", p) then p = p + 2
        elseif p == s:find(             "\224[\160-\191][\128-\191]", p)
                or p == s:find("[\225-\236][\128-\191][\128-\191]", p)
                or p == s:find(             "\237[\128-\159][\128-\191]", p)
                or p == s:find("[\238-\239][\128-\191][\128-\191]", p) then p = p + 3
        elseif p == s:find(             "\240[\144-\191][\128-\191][\128-\191]", p)
                or p == s:find("[\241-\243][\128-\191][\128-\191][\128-\191]", p)
                or p == s:find(             "\244[\128-\143][\128-\191][\128-\191]", p) then p = p + 4
        else
            s = s:sub(1, p-1)..replacement..s:sub(p+1)
            table.insert(invalid, p)
        end
    end
    return s, invalid
end
Автор: Pahuchiy1
Дата сообщения: 08.02.2016 19:11
ну наконец-то!!! спасибо!,
Автор: Pahuchiy1
Дата сообщения: 09.02.2016 06:14
всё равно некоторые символы не распознаются...например, минус, пробел....печалька
Автор: KerberX
Дата сообщения: 09.02.2016 09:22
Pahuchiy1
Некоторых символов просто нет в Windows-1251. Преобразование из UTF8 в Win-1251 почти всегда будет вести к потере данных. Можешь попробовать это.

Код: ConvertString.FixUTF8(ConvertString.UTF8ToWin1251(sUTF8), " ");
Автор: Grasss
Дата сообщения: 10.02.2016 15:01
Хочу добавить в приложение пару вкладок: <<написать автору>>, <<сообщить о проблеме>> и реализовать возможность отправки электронного сообщения автору на email. Что можете предложить?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

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


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