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

» Autoplay Media Studio

Автор: qqwwrr
Дата сообщения: 27.05.2010 01:54
tavria2

Цитата:
Мне трудно ответить на этот вопрос не видя, кода поиска.


Вот такой код:

ListBox.DeleteItem("ListBox1", -1);
tblPages = Application.SearchKeywords(Input.GetText("Input1"), true, false);
if tblPages then
    for i, v in tblPages do
        for k, value in v do
            ListBox.AddItem("ListBox1", i.." - "..value, i);
        end
    end
end
Автор: PAVELNEXT
Дата сообщения: 27.05.2010 07:53
Здравствуйте, прошу помочь , создал в окне web - объект , в него вставил код flash игры , после запуска все нормально запускается, но если начинаешь что то писать и хочешь удалить то кнопка Backspace не реагирует (не удаляет), подскажите как подключить её к web - объекту , проверял через браузер "опера" всё нормально работает.
Автор: LEDRA
Дата сообщения: 27.05.2010 08:38
Ссори что повторяюсь
как повесить действие, которое бы запускалось после внесения своих данных в Combobox?
Автор: tavria2
Дата сообщения: 27.05.2010 09:02
lorents
Попробуй этот вариант:
Код: sFileName = _SourceFolder.."\\AutoPlay\\Docs\\Setup.exe";
ID = File.GetAttributes(sFileName).WriteDateISO; -- создаем идентификатор приложения

instances_of_file = 0;
file_to_check_for = "setup.exe";
processes = Window.EnumerateProcesses();
for j, file_path in pairs(processes) do
file = String.SplitPath(file_path);
if (String.Lower(file.Filename..file.Extension) == file_to_check_for) and (File.GetAttributes(file_path).WriteDateISO == ID) then
instances_of_file = instances_of_file + 1;
hWnd = j;
break;
end
end
if instances_of_file > 0 then
DLL.CallFunction("user32.dll", "OpenIcon", hWnd, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
DLL.CallFunction("user32.dll", "SetForegroundWindow", hWnd, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
else
File.Run(sFileName, "", "", SW_SHOWNORMAL, false);
end
Window.Close(Application.GetWndHandle(), CLOSEWND_TERMINATE);
Автор: lorents
Дата сообщения: 27.05.2010 10:24
tavria2
Выдает следующую ошибку



у меня AMS 8.0.1.1
Автор: lerik2703
Дата сообщения: 27.05.2010 10:47
lorents
у тебя засада на операторе for? проверил ошибка не существует переменной instances_of_file !
Автор: tavria2
Дата сообщения: 27.05.2010 10:53
lorents
В 4-й строке отсутствует 1-й символ в instances_of_file, при копировании выпала первая буква
Код выше поправил.
Автор: lerik2703
Дата сообщения: 27.05.2010 11:02
tavria2
наверно стоит помечать для какой версии пример просто многие будут копировать и задавать вопросы почему не работает?!
Автор: tavria2
Дата сообщения: 27.05.2010 11:10
lerik2703
Цитата:
наверно стоит помечать для какой версии пример просто многие будут копировать и задавать вопросы почему не работает?!
Я поправил код lorents'a. Этот код не имеет отношения к FileRunOnce1.x.apz.
Автор: lerik2703
Дата сообщения: 27.05.2010 11:17
tavria2
это я понял что отношения не имеет я в плане того что кому-то захочется повторить то что делает lorents !
Автор: tavria2
Дата сообщения: 27.05.2010 11:19
lerik2703
Цитата:
я в плане того что кому-то захочется повторить то что делает lorents !
Это его проект и все вопросы к нему.
Автор: lorents
Дата сообщения: 27.05.2010 11:54
tavria2
Получилось! Спасибо!

Сейчас заметил, что если приложение открыто на все окно и свернуто, то при его повторном запуске, приложение свернуто в окно. это так задумано?
Проверил на FileRunOnce1.2, тоже самое.
Автор: tavria2
Дата сообщения: 27.05.2010 14:41
lorents
FileRunOnce1.3 - исправлен баг, связанный с восстановлением свернутого окна на панели задач, в полноэкранный режим.
Для свернутого окна в трей - восстановление окна в полноэкранный режим, невозможно - ограничение AMS.
Автор: lorents
Дата сообщения: 27.05.2010 15:05
tavria2
Класс, спасибо!
Не подскажешь, а что надо сделать, чтобы также работал код запуска отдельного приложения?
Автор: tavria2
Дата сообщения: 27.05.2010 15:30
lorents
Для твоего случая:
Код: sFileName = _SourceFolder.."\\AutoPlay\\Docs\\Setup.exe";
ID = File.GetAttributes(sFileName).WriteDateISO; -- создаем идентификатор приложения

instances_of_file = 0;
file_to_check_for = "setup.exe";
processes = Window.EnumerateProcesses();
for j, file_path in pairs(processes) do
file = String.SplitPath(file_path);
if (String.Lower(file.Filename..file.Extension) == file_to_check_for) and (File.GetAttributes(file_path).WriteDateISO == ID) then
instances_of_file = instances_of_file + 1;
hWnd = j;
break;
end
end
if instances_of_file > 0 then
local IsVisible = tonumber(DLL.CallFunction("user32.dll", "IsWindowVisible", hWnd, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL));
if IsVisible == 0 then                        
DLL.CallFunction("user32.dll", "SetParent", hWnd..",0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
DLL.CallFunction("user32.dll", "OpenIcon", hWnd, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);    
end

local isMinimize = tonumber(DLL.CallFunction("user32.dll", "IsIconic", hWnd, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL));
if isMinimize ~= 0 then -- если окно свернуто на панели задач

DLL.CallFunction("user32.dll", "ShowWindow", hWnd..",9", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);    
end
DLL.CallFunction("user32.dll", "SetForegroundWindow", hWnd, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
else
File.Run(sFileName, "", "", SW_SHOWNORMAL, false);
end
Window.Close(Application.GetWndHandle(), CLOSEWND_TERMINATE);
Автор: lorents
Дата сообщения: 27.05.2010 15:41
tavria2
Большое при большое спасибо, наверно я тебя достал, но я нашел еще одну проблему.
Если приложение развернуто на все окно, то при повтор запуске сворачивается в свернутое состояние окна.
В версии FileRunOnce1.2 такого нет, а FileRunOnce1.3 есть
Автор: tavria2
Дата сообщения: 27.05.2010 17:49
lorents

Цитата:
Если приложение развернуто на все окно, то при повтор запуске сворачивается в свернутое состояние окна.

Спасибо за замечание, твой код поправил выше.
Очередная версия FileRunOnce1.4
Автор: LEDRA
Дата сообщения: 27.05.2010 18:00

Цитата:
В ComboBox есть событие On Select, которое срабатывает при выборе любого элемента и предоставляет тебе переменную e_Selection, которая содержит индекс выбранного пункта. В этом событии проверяй полученный индекс и выполняй нужное действие.


Это я знаю. Но у меня КомбоБокс с возможностью редактирования и мне нужно чтобы запуск был не только после выбора существующего элемента а и после вписывания нового. А такого события нет - может есть плагин какой?
Автор: lorents
Дата сообщения: 27.05.2010 18:07
tavria2

Цитата:
Спасибо за замечание, твой код поправил выше.

это тебе спасибо!
У меня код не работает, проблема

Код: if instances_of_file > 0 then
Автор: tavria2
Дата сообщения: 27.05.2010 18:30
lorents

Цитата:
У меня код не работает, проблема

Упс, вставлял строки кода из своего примера, а у меня вместо hWnd используется hWndReg - твой код поправил.


LEDRA

Цитата:
Но у меня КомбоБокс с возможностью редактирования и мне нужно чтобы запуск был не только после выбора существующего элемента а и после вписывания нового

А, чем событие On Key не устраивает? Ввел данные, нажал Enter, а в событии On Key отловил нажатие Enter и выполнил свой код.
Автор: lorents
Дата сообщения: 27.05.2010 18:47
tavria2
ага понял, ты там в одно месте забыл исправить. Если хочешь исправь, а вообще все получилось вроде как. СПАСИБО!
Автор: LEDRA
Дата сообщения: 27.05.2010 19:12

Цитата:
А, чем событие On Key не устраивает?

Устраивает - но, просто не факт что после ввода цифер будет нажат Энтер - может просто мышкой будет переведен фокус на другое поле.
Автор: lorents
Дата сообщения: 28.05.2010 11:23
tavria2
сейчас проводил тестирования кода запуска приложения, выходит что код не работает с portable приложениями, но я не могу понять почему, ты не знаешь в чем причина?
Автор: lerik2703
Дата сообщения: 28.05.2010 11:41
lorents

Цитата:
не работает с portable приложениями


а что это за приложения такие
Автор: lorents
Дата сообщения: 28.05.2010 11:47
lerik2703
те которые не требуют установки и не "мусорят систему"
вот здесь можешь про них прочитать
http://forum.ru-board.com/topic.cgi?forum=55&topic=9848
Автор: lerik2703
Дата сообщения: 28.05.2010 12:05
ясненько спасибки! пробегись по списку запущенных процессов и посмотри какое расширение имеет твой процесс!допустим инсталяшка тоже не работает с этим кодом т.к. процесс имеет расширение tmp!
Автор: lorents
Дата сообщения: 28.05.2010 12:14
lerik2703
расширение exe
Автор: tavria2
Дата сообщения: 28.05.2010 13:28
lorents

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

Возможные причины:
Не верно указанно имя процесса, проверь существование процесса с таким именем в списке процессов
Имя процесса указано без учета регистра, например реальное имя процесса "Setup.exe", а ты указал "setup.exe"
Динамическое создание файла запуска, у которого дата и время записи файла всегда будут разные, соответственно невозможно определить идентичность файлов
Автор: qqwwrr
Дата сообщения: 28.05.2010 13:31
tavria2

Цитата:
Где у тебя находится этот код? В объекте Input1, событие On Click?



1. Есть объект Hotspot (это кнопка Искать). В событии он клик написано:

ListBox.DeleteItem("ListBox1", -1);
tblPages = Application.SearchKeywords(Input.GetText("Input1"), true, false);
if tblPages then
    for i, v in tblPages do
        for k, value in v do
            ListBox.AddItem("ListBox1", i.." - "..value, i);
        end
    end
end



2. Есть объект инпут (для ввода текста). В нём ничего не прописано.
3. Есть объект листбокс (в нём выводятся результаты). Там в событии он дабл клик прописано:

tblSel = ListBox.GetSelected(this);
if tblSel then
    Page.Jump(ListBox.GetItemData(this, tblSel[1]));
end

В событии он кей прописано:

if e_Key == 8 then
ListBox.SelectItem("ListBox1", 1);
end
Автор: lorents
Дата сообщения: 28.05.2010 13:38
tavria2
думаю проблема в динамическом создании файла запуска, у которого дата и время записи файла всегда будут разные, соответственно невозможно определить идентичность файлов.
Сейчас спрошу в соответствующей теме

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

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


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