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

» Indigo Rose AutoPlay Media Studio

Автор: KerberX
Дата сообщения: 02.10.2012 22:05
Хорошо бы иметь такой проект. Было бы очень полезно.
Автор: SergD29
Дата сообщения: 02.10.2012 22:11
Люди как присвоить не объявленной переменной n значение массива nArray
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 22:23
KerberX -- будет настроение, может и проект будет.

SergD29 -- поподробней можно?
Автор: Robby
Дата сообщения: 02.10.2012 22:41
SergD29
Наверное так: n=nArray;
В LUA объявлять переменные предварительно не нужно так же как и не нужно определять тип данных для этих переменных.
Автор: SergD29
Дата сообщения: 02.10.2012 22:42
Robby
если бы, так точно не получается

Добавлено:
function save_in_linkarray (n,e_URL)
nArray={};
tblMenu={};
--tblMenu[1]={};
--tblMenu.number ={};
--local n = 1;
linkArray={};
e_URL = IExplorer.GetLocationURL("Web1");
res_fin = String.Find(e_URL, "AutoPlay/Docs/Start.html", 1, false);
if res_fin > 0 then n=1;
else
for i = 1, 2 do
n=nArray[i];
end
--buf_menu=tblMenu;
--n = buf_menu.number;
--RichText.SetText("RichText7",n, false);
for i = n, n+1 do
n=n+1;
end
end
for i = n, n+1 do
linkArray[n] = e_URL;
end
nArray=n;
--tblMenu.number = n;
RichText.SetText("RichText7",n, false)
if n == 0 then RichText.SetText("RichText7","Óâû", false);
end

Добавлено:
пишет что n=nil
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 22:58
SergD29
В твоем коде можно х#й сломать.


Цитата:
n=nArray[i ];

У тебя массив nArray пустой, и ты пытаешься присвоить переменной n значение из массива, в котором ничего нет.
Автор: SergD29
Дата сообщения: 02.10.2012 23:00
а эта строчка разве не пристраивает nArray=n;
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 23:08
SergD29
А ты не исключаешь варианта, что сначала выполняется цикл

Код: for i = 1, 2 do
n=nArray[i ];
end
Автор: Robby
Дата сообщения: 02.10.2012 23:11
SergD29
Чтобы записать в массив значение нужно указать индекс для числового массива или имя для именованного
nArray[1]=n - так записывают значение в массив
лучше опиши свою задачу, а то код у тебя как сказал Zloy_Gelud ...
Автор: SergD29
Дата сообщения: 02.10.2012 23:11
так условие
res_fin = String.Find(e_URL, "AutoPlay/Docs/Start.html", 1, false);
if res_fin > 0 then n=1;
обязано было занести 1 в массив nArray=n;

Добавлено:
Robby ты еще весь код не видел, а индекс я указывал, результат тот же
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 23:14
SergD29
Обязано, если выполняется. А оно у тебя выполняется? Может нет?
Автор: SergD29
Дата сообщения: 02.10.2012 23:15
во общем мне нужно создать переменную которая бы изменялась при работе функции, значения в ней

Добавлено:
да в RichText.SetText подтверждаться вывод 1)))
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 23:22
SergD29
Приведи скриншот ошибки.
Автор: SergD29
Дата сообщения: 02.10.2012 23:27
http://imageshack.us/photo/my-images/560/57268525.png/
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 23:33
SergD29
Ну тогда уж и весь код с события On Navigated в студию.
Автор: SergD29
Дата сообщения: 02.10.2012 23:35
[more] e_UR = IExplorer.GetLocationURL("Web1");
RichText.SetText("RichText4", e_UR, false);
--old_url=e_URL;
--function setWindowsSIZE()
--Window.Maximize(Application.GetWndHandle());
--end
function save_in_linkarray (n,e_URL)
nArray={};
tblMenu={};
--tblMenu[1]={};
--tblMenu.number ={};
--local n = 1;
linkArray={};
e_URL = IExplorer.GetLocationURL("Web1");
res_fin = String.Find(e_URL, "AutoPlay/Docs/Start.html", 1, false);
if res_fin > 0 then n=1;
else
for i = 1, 2 do
n=nArray[i];
end
--buf_menu=tblMenu;
--n = buf_menu.number;
--RichText.SetText("RichText7",n, false);
for i = n, n+1 do
n=n+1;
end
end
for i = n, n+1 do
linkArray[n] = e_URL;
end
nArray=n;
--tblMenu.number = n;
RichText.SetText("RichText7",n, false)
if n == 0 then RichText.SetText("RichText7","Óâû", false);
end
end
save_in_linkarray();
ToolBar.AddButton("Plugin1", n, "Tab", e_URL, false, true, 1, 1, 1);
ToolBar.SetButtonSize("Plugin1", 32, 32, 2, 2, 4, 4);
ToolBar.SetButtonBackColor("Plugin1", STATE_NORMAL, 255);
ToolBar.SetButtonBackColor("Plugin1", STATE_NORMAL, 0); [/more]

Добавлено:
я его только начал писать
Автор: Zloy_Gelud
Дата сообщения: 02.10.2012 23:48
SergD29
Ох. Мне кажется, что после

Цитата:
for i = 1, 2 do
n=nArray[ i];
end

переменная n равна nil. Т.к. похоже, что массив состоит всего лишь из одного элемента, а ты пытаешься присвоить перем. n значение второго элемента, которого нет. Может я и ошибаюсь, но дальнейшего желания в таком "грязном" коде желания нет. Да и занимаемся мы "гаданием на кофейной гуще". Сделай несколько проверок в коде и выясни на каком этапе у тебя перем. n будет равна nil.
Автор: SergD29
Дата сообщения: 02.10.2012 23:52
да даже если я возьму n=nArray[1]; то ошибка возникает снова, а как ещё можно создать изменяемую переменную
Автор: Zloy_Gelud
Дата сообщения: 03.10.2012 00:02
SergD29
Может так:

Код: local n
save_in_linkarray();
ToolBar.AddButton("Plugin1", n, "Tab", e_URL, false, true, 1, 1, 1);
ToolBar.SetButtonSize("Plugin1", 32, 32, 2, 2, 4, 4);
ToolBar.SetButtonBackColor("Plugin1", STATE_NORMAL, 255);
ToolBar.SetButtonBackColor("Plugin1", STATE_NORMAL, 0);
Автор: Robby
Дата сообщения: 03.10.2012 00:09
SergD29
Вот если прокомментировать твой код, то

Код: function save_in_linkarray (n,e_URL)
nArray={}; -- создаем пустую таблицу nArray
tblMenu={}; -- создаем пустую таблицу tblMenu
--tblMenu[1]={};
--tblMenu.number ={};
--local n = 1;
linkArray={}; -- создаем пустую таблицу linkArray
e_URL = IExplorer.GetLocationURL("Web1"); -- получаем URL
res_fin = String.Find(e_URL, "AutoPlay/Docs/Start.html", 1, false); -- ищем в e_URL совпадение
if res_fin > 0 then n=1; -- если найдено присваиваем n=1
else -- иначе
for i = 1, 2 do -- цикл от 1 до 2
n=nArray[i]; -- nArray[i] таблица пустая null, значение в n будет перезаписано 2 раза, вообще не понятно зачем это нужно, тут вообще будет ошибка на ошиибке ибо не известна размерность массива nArray[i] и так как таблица возвращает null то и переменной n больше не существует
end
--buf_menu=tblMenu;
--n = buf_menu.number;
--RichText.SetText("RichText7",n, false);
for i = n, n+1 do -- здесь перменной n может уже и не быть
...
Автор: SergD29
Дата сообщения: 03.10.2012 00:11
все равно пишет что n равно nil

Добавлено:

Цитата:
for i = 1, 2 do -- цикл от 1 до 2
n=nArray[i]; -- nArray[i] таблица пустая null, значение в n будет перезаписано 2 раза, вообще не понятно зачем это нужно, тут вообще будет ошибка на ошиибке ибо не известна размерность массива nArray[i] и так как таблица возвращает null то и переменной n больше не существует

почему пустая, я же в низу присвоил ей nArray=n;, хорошо если написать n=nArray[1] без for результат тот же
Автор: Zloy_Gelud
Дата сообщения: 03.10.2012 00:26
SergD29
Короче, здесь

Цитата:
for i = 1, 2 do
    n=nArray[ i];
end

ты присваиваешь n значение nil, ибо условие

Цитата:
if res_fin > 0 then

в текущей момент не выполняется, не важно до этого выполнялось оно или нет.
Автор: ra700
Дата сообщения: 03.10.2012 09:17
Возвращаясь к прошлому
Цитата:
Этот скрипт умеет/должен извлекать устройства типа DRIVE_REMOVABLE (например, флешки, external HDD)
есть ли возможность силами AMS считать ID материнки?
Автор: Zloy_Gelud
Дата сообщения: 03.10.2012 09:35
ra700

Цитата:
есть ли возможность силами AMS считать ID материнки?

Есть, если ты сам найдешь пример в инете как получить ID мат. платы на любом другом языке программирования.
Автор: ra700
Дата сообщения: 03.10.2012 10:06
Тут есть для С++ и Делфи.
Правда, не готовый скрипт, а ключевая информация.
Я не точно раскрыл задачу. Необязательно только к серийн.номеру материнской платы, а может есть другие идеи по поводу привязки софта к железу компьютера.
Тут еще пример.
Автор: Zloy_Gelud
Дата сообщения: 03.10.2012 10:09
ra700
Ключевую информацию я и так знаю, ты мне покажи код, где именно ID материнки получают.

Добавлено:
А вообще, я на предыдущей странице специально утилиту выложил для работы с WMI. Выбирай нужный класс, смотри свойства и вперед.
Автор: ra700
Дата сообщения: 03.10.2012 10:13
Получить номер материнской платы и номер диска .

Добавлено:
Zloy_Gelud, благодарю!
Мои возможности пока очень скромны, постараюсь "переварить"
Автор: Zloy_Gelud
Дата сообщения: 03.10.2012 10:18
ra700

Цитата:
Получить номер материнской платы и номер диска .

Это получение серийного номера, а не ID, который ты просил.
И я ж написал:

Цитата:
А вообще, я на предыдущей странице специально утилиту выложил для работы с WMI. Выбирай нужный класс, смотри свойства и вперед.

Нашел в инете подходящий вариант, запустил мою утиль, выбрал класс, получил код для AMS. Куда уже проще.

Добавлено:
Я надеюсь, что твой проект реально стоит той защиты, над которой ты работаешь.
Автор: ra700
Дата сообщения: 03.10.2012 10:34

Цитата:
Я надеюсь, что твой проект реально стоит той защиты, над которой ты работаешь.

В моем случае задача стоит не ЧТО защитить, а КАК защитить.
У каждого свои причуды, у меня вот сидит жук и точит:"а слабо сделать?" Делать то, что умеешь делать - это одна задача, а сделать то, что не умеешь - это несколько другое.
Вот и сижу, е...у мозг себе и людям...

Zloy_Gelud, (кстати, почему злой? По-моему, добрый), спасибо, утиль - супер!!!
Автор: Zloy_Gelud
Дата сообщения: 03.10.2012 11:06
ra700

Цитата:
(кстати, почему злой? По-моему, добрый)

Это отдельная история.. да обсуждение здесь моего ника совсем неуместно.

Цитата:
спасибо, утиль - супер!!!

Рад, что пригодилась.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

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


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