Подскажите кто в курсе, что означает "звездочка" перед названием параметра в справке по плагину MemoryEx? Например: *lpBuffer.
» Indigo Rose AutoPlay Media Studio
collagen -- что это pointer-тип пременной. Т.е. ссылка на место в памяти, где может хранится значение.
Zloy_Gelud Понятно. Тогда, я думаю, нужно сделать примечание в справке.
Если кому не сложно, можете написать функцию распаковки из 7-Zip архива одного файла по его пути в архиве. Хоть через командную сроку 7-Zip хоть через либо другое.
Перевожу справку по плагину MemoryEx. В описании функции MemoryEx.AllowMemoryFunctions столкнулся, как мне кажется, с ошибкой.
Цитата:
Мой перевод: Данная функция, вызываемая с аргументом false (ложь), позволяет отключить эту защиту.
А на самом деле (понятно из дальнейшего описания параметра State), для отключения загрузки и вызова функций из памяти, параметр должен иметь значение true (истина). Или я не прав?
Кто работал с данной функцией, подскажите.
Цитата:
This function allows you to disable that protection, by calling it with the argument 'false'.
Мой перевод: Данная функция, вызываемая с аргументом false (ложь), позволяет отключить эту защиту.
А на самом деле (понятно из дальнейшего описания параметра State), для отключения загрузки и вызова функций из памяти, параметр должен иметь значение true (истина). Или я не прав?
Кто работал с данной функцией, подскажите.
collagen
Цитата:
Правы.
Цитата:
Или я не прав?
Правы.
Цитата:
Можно как-то избавиться от белёсой рамки вокруг xButton (той что вокруг серой)?
Это зависит от выбранной темы Windows, от выбранной темы для кнопки, от выбранной темы для всего проекта. Для начала посмотрите свойства кнопки, вкладка "Settings", опция "Theme".
Там на любой теме есть. В проекте стоит тема Office 2007 Scenic, но она не используется. Кнопка использует тему Windows. Но и на стандартной теме и на сторонней эта рамка есть в то время как на системных кнопках такой рамки нет.
Есть ли способ прикрепить к проекту тему (*.cjstyles, *.msstyles) и чтобы при этом не менялась рамка окна?
Есть ли способ прикрепить к проекту тему (*.cjstyles, *.msstyles) и чтобы при этом не менялась рамка окна?
Как создать условие чтобы при выбранной определенной радиокнопки создаваль запись в реестр?
dodakaedr
Событие On Click кнопки > действие Registry.CreateKey, Registry.SetValue
Событие On Click кнопки > действие Registry.CreateKey, Registry.SetValue
Всем привет. Я решил уйти от технологии webdav и перейти на rest api. Хочу скачать файл с яндекс диска. Приложение (My Project) зарегистрировано, токен получен. В теле ответа приходит ссылка на скачивание файла, но скачивание через ams не происходит. Через браузер качает. Подскажите пожалуйста, где ошибка?
Код: sToken = "a04059f0848b4585828ce869000a9522";
sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources/download?path=1.flac';
oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send("");
a = oHTTP.ResponseBody;
a = String.Replace(a, '{"href":', "", false);
a = String.Replace(a, '}', "", false);
a = String.Replace(a, ',"method":"GET","templated":false', "", false);
a = String.Replace(a, '"', "", false);
Dialog.Message("", oHTTP.ResponseBody .. "\r\n\r\n" .. a, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
HTTP.DownloadSecure(a, Shell.GetFolder(SHF_DESKTOP) .. "\\1.flac", MODE_BINARY, 20, 443, nil, nil, nil);
error = Application.GetLastError();
if error ~= 0 then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
else
Dialog.Message("", "OK", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Код: sToken = "a04059f0848b4585828ce869000a9522";
sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources/download?path=1.flac';
oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send("");
a = oHTTP.ResponseBody;
a = String.Replace(a, '{"href":', "", false);
a = String.Replace(a, '}', "", false);
a = String.Replace(a, ',"method":"GET","templated":false', "", false);
a = String.Replace(a, '"', "", false);
Dialog.Message("", oHTTP.ResponseBody .. "\r\n\r\n" .. a, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
HTTP.DownloadSecure(a, Shell.GetFolder(SHF_DESKTOP) .. "\\1.flac", MODE_BINARY, 20, 443, nil, nil, nil);
error = Application.GetLastError();
if error ~= 0 then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
else
Dialog.Message("", "OK", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Через браузер качает только если ты авторизован на яндексе. Попробовал сделать так:
Код: sToken = "a04059f0848b4585828ce869000a9522";
sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources/download?path=1.flac';
oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send("");
a = oHTTP.ResponseBody;
a = String.Replace(a, '{"href":', "", false);
a = String.Replace(a, '}', "", false);
a = String.Replace(a, ',"method":"GET","templated":false', "", false);
a = String.Replace(a, '"', "", false);
Dialog.Message("", oHTTP.ResponseBody .. "\r\n\r\n" .. a, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Download.Start(Application.GetWndHandle(), a, Shell.GetFolder(SHF_DESKTOP) .. "\\1.flac", "", "Authorization: OAuth" .. sToken, false, nil, -1, "", "");
Код: sToken = "a04059f0848b4585828ce869000a9522";
sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources/download?path=1.flac';
oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send("");
a = oHTTP.ResponseBody;
a = String.Replace(a, '{"href":', "", false);
a = String.Replace(a, '}', "", false);
a = String.Replace(a, ',"method":"GET","templated":false', "", false);
a = String.Replace(a, '"', "", false);
Dialog.Message("", oHTTP.ResponseBody .. "\r\n\r\n" .. a, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Download.Start(Application.GetWndHandle(), a, Shell.GetFolder(SHF_DESKTOP) .. "\\1.flac", "", "Authorization: OAuth" .. sToken, false, nil, -1, "", "");
dallas page
Цитата:
А ты думаешь у тебя кусок файла скачивается? Открой то, что скачалось, текстовым редактором и посмотри.
Если на диске есть файл 1.flac, то должно скачиваться:
Код: local sToken = "a04059f0848b4585828ce869000a9522";
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources/download?path=1.flac';
local oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
local sLink
if (oHTTP.Status == 200) then sLink = oHTTP.ResponseBody:match('(http.-)"'); end
oHTTP = nil;
if sLink then
result = Download.Start(Application.GetWndHandle(), sLink, "C:\\1.flac", "", "Authorization: OAuth "..sToken, false, nil, -1, "", "");
end
Цитата:
Качает только 8кб
А ты думаешь у тебя кусок файла скачивается? Открой то, что скачалось, текстовым редактором и посмотри.
Если на диске есть файл 1.flac, то должно скачиваться:
Код: local sToken = "a04059f0848b4585828ce869000a9522";
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources/download?path=1.flac';
local oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
local sLink
if (oHTTP.Status == 200) then sLink = oHTTP.ResponseBody:match('(http.-)"'); end
oHTTP = nil;
if sLink then
result = Download.Start(Application.GetWndHandle(), sLink, "C:\\1.flac", "", "Authorization: OAuth "..sToken, false, nil, -1, "", "");
end
Цитата:
Если на диске есть файл 1.flac, то должно скачиваться
На диске он есть, если авторизоваться через браузер и вставить ссылку из тела, то скачивание происходит. А ams не качает, создает пустой файл 8кб. Может заголовок Authorization не правильно передается в коде Download.Start?
dallas page
Цитата:
AMS качает то, что ему отдают. Я тебе посоветовал посмотреть содержимое того, что скачалось.
Цитата:
Я написал проверенный код. Проверял на своем диске. Скачал 2 файла без проблем.
Цитата:
А ams не качает, создает пустой файл 8кб.
AMS качает то, что ему отдают. Я тебе посоветовал посмотреть содержимое того, что скачалось.
Цитата:
Может заголовок Authorization не правильно передается в коде Download.Start?
Я написал проверенный код. Проверял на своем диске. Скачал 2 файла без проблем.
Zloy_Gelud проверил и вот что обнаружил. Текстовые файлы (txt) скачивает без проблем, а jpg (2мб) и flac не хочет (в файле: Страница, которую вы читаете, не существует).
dallas page
Цитата:
JPG 250Kb скачал без проблем. Больше тестить нет желания.
Цитата:
а jpg (2мб)
JPG 250Kb скачал без проблем. Больше тестить нет желания.
Как сделать кнопку "Обзор..." чтобы указать путь извлечения и чтобы этот путь записывался в "Input"?
Zloy_Gelud в итоге получилось так:
Код: local sToken = "a04059f0848b4585828ce869000a9522";
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources?path=%2F1.jpg';
local oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
if (oHTTP.Status == 200) then pKey = oHTTP.ResponseBody:match('(public_key":".-)"'); end
local pKey = String.Replace(pKey, 'public_key":"', "", false);
local pKey = String.Replace(pKey, "/", "%2F", false);
local pKey = String.Replace(pKey, "+", "%2B", false);
local pKey = String.Replace(pKey, "=", "%3D", false);
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=' .. pKey;
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
local sLink
if (oHTTP.Status == 200) then sLink = oHTTP.ResponseBody:match('(http.-)"'); end
oHTTP = nil;
if sLink then
HTTP.DownloadSecure(sLink, "C:\\1\\001.jpg", MODE_BINARY, 20, 443, nil, nil, nil);
end
Код: local sToken = "a04059f0848b4585828ce869000a9522";
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources?path=%2F1.jpg';
local oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
if (oHTTP.Status == 200) then pKey = oHTTP.ResponseBody:match('(public_key":".-)"'); end
local pKey = String.Replace(pKey, 'public_key":"', "", false);
local pKey = String.Replace(pKey, "/", "%2F", false);
local pKey = String.Replace(pKey, "+", "%2B", false);
local pKey = String.Replace(pKey, "=", "%3D", false);
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=' .. pKey;
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
local sLink
if (oHTTP.Status == 200) then sLink = oHTTP.ResponseBody:match('(http.-)"'); end
oHTTP = nil;
if sLink then
HTTP.DownloadSecure(sLink, "C:\\1\\001.jpg", MODE_BINARY, 20, 443, nil, nil, nil);
end
dallas page
Код: function escape (str)
local str = string.gsub (str, "\n", "\r\n");
str = string.gsub (str, "([^0-9a-zA-Z ])",
function (c) return string.format ("%%%02X", string.byte(c)) end);
str = string.gsub (str, " ", "+");
return str
end
--********************************************************************************************************
local sLink = "";
local sToken = "a04059f0848b4585828ce869000a9522";
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources?path=1.jpg';
local oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
if (oHTTP.Status == 200) then
local sKey = oHTTP.ResponseBody:match('public_key":"(.-)"');
TextFile.WriteFromString("C:\\MyFile.txt", sKey, false);
sURL = 'https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=' .. escape(sKey);
oHTTP:Open("GET", sURL, 0);
oHTTP:Send();
if (oHTTP.Status == 200) then
sLink = oHTTP.ResponseBody:match('(http.-)"');
end
end
oHTTP = nil;
--********************************************************************************************************
if (sLink ~= "") then
HTTP.DownloadSecure(sLink, "C:\\001.jpg", MODE_BINARY, 20, 443, nil, nil, nil);
end
Код: function escape (str)
local str = string.gsub (str, "\n", "\r\n");
str = string.gsub (str, "([^0-9a-zA-Z ])",
function (c) return string.format ("%%%02X", string.byte(c)) end);
str = string.gsub (str, " ", "+");
return str
end
--********************************************************************************************************
local sLink = "";
local sToken = "a04059f0848b4585828ce869000a9522";
local sURL = 'https://cloud-api.yandex.net:443/v1/disk/resources?path=1.jpg';
local oHTTP = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
oHTTP:Open("GET", sURL, 0);
oHTTP:SetRequestHeader("Authorization", "OAuth " .. sToken);
oHTTP:Send();
if (oHTTP.Status == 200) then
local sKey = oHTTP.ResponseBody:match('public_key":"(.-)"');
TextFile.WriteFromString("C:\\MyFile.txt", sKey, false);
sURL = 'https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=' .. escape(sKey);
oHTTP:Open("GET", sURL, 0);
oHTTP:Send();
if (oHTTP.Status == 200) then
sLink = oHTTP.ResponseBody:match('(http.-)"');
end
end
oHTTP = nil;
--********************************************************************************************************
if (sLink ~= "") then
HTTP.DownloadSecure(sLink, "C:\\001.jpg", MODE_BINARY, 20, 443, nil, nil, nil);
end
Zloy_Gelud спасибо!!!
dallas page
Спасибо! Не подскажите, реально ли с помощью AMS создать ярлыки на рабочий стол, папку в меню "Пуск" и закрепить на панели задач и в меню пуск?
Спасибо! Не подскажите, реально ли с помощью AMS создать ярлыки на рабочий стол, папку в меню "Пуск" и закрепить на панели задач и в меню пуск?
dodakaedr смотри действия Shell.CreateShortcut и Shell.GetFolder
dallas page
что не правильно делаю? Не получается создать папку в меню пуск.
Цитата:
и не получается закрепить ярлык в меню пуск
Цитата:
что не правильно делаю? Не получается создать папку в меню пуск.
Цитата:
Shell.CreateShortcut(Shell.GetFolder('SHF_STARTMENUPROGRAMS\\My programm'), "Hello", "AutoPlay\\Docs\\setup.exe", "", "", "", 0, SW_SHOWNORMAL, nil, "", START_OPTION_DEFAULT);
и не получается закрепить ярлык в меню пуск
Цитата:
Shell.CreateShortcut(Shell.GetFolder(SHF_STARTUP), "My Programm", "AutoPlay\\Docs\\setup.exe", "", "", "", 0, SW_SHOWNORMAL, nil, "", START_OPTION_PIN);
dodakaedr
Цитата:
Ты хочешь закрепить ярлык на стартовом экране Windows 8?
Добавлено:
Цитата:
Неправильно указываешь путь к папке.
Код: Shell.CreateShortcut(Shell.GetFolder(SHF_STARTMENUPROGRAMS)..'\\My programm', "Hello", "AutoPlay\\Docs\\setup.exe", "", "", "", 0, SW_SHOWNORMAL, nil, "", START_OPTION_DEFAULT);
Цитата:
не получается закрепить ярлык в меню пуск
Ты хочешь закрепить ярлык на стартовом экране Windows 8?
Добавлено:
Цитата:
Не получается создать папку в меню пуск.
Неправильно указываешь путь к папке.
Код: Shell.CreateShortcut(Shell.GetFolder(SHF_STARTMENUPROGRAMS)..'\\My programm', "Hello", "AutoPlay\\Docs\\setup.exe", "", "", "", 0, SW_SHOWNORMAL, nil, "", START_OPTION_DEFAULT);
Цитата:
Ты хочешь закрепить ярлык на стартовом экране Windows 8?
Нет в меню пуск на Windows 7.
dodakaedr
Цитата:
Цитата:
Цитата:
Нет в меню пуск на Windows 7.
Цитата:
Pin the Start menu shortcut to the Windows 8 Start screen. This option allows you to pin Start menu shortcuts that point to non-executables such as help files (however Microsoft discourages that).
Zloy_Gelud
значить никак...
значить никак...
dodakaedr -- можно. Очень долго искал тебе решение этой проблемы. Хотел уже плюнуть на это.
Код: -- Const
SHELL_STARTMENU_PIN = 'startpin'; -- закрепить в меню "Пуск"
SHELL_STARTMENU_UNPIN = 'startunpin'; -- изъять из меню "Пуск"
SHELL_TASKBAR_PIN = 'taskbarpin'; -- закрепить на панели задач
SHELL_TASKBAR_UNPIN = 'taskbarunpin'; -- изъять из панели задач
-- Function
Shell.PinTo = function (sPath, cType)
if File.DoesExist(sPath) then
local tPaths = String.SplitPath(sPath);
local oShell = luacom.CreateObject("Shell.Application");
local oFolder = oShell:Namespace(tPaths.Drive..tPaths.Folder);
local oFolderItem = oFolder:ParseName(tPaths.Filename..tPaths.Extension);
oFolderItem:invokeverb(cType);
oShell = nil;
end
end
-- Example
-- sPath может быть либо ярлыком, либо файлом
Shell.PinTo(_SystemFolder.."\\calc.exe", SHELL_STARTMENU_PIN);
Код: -- Const
SHELL_STARTMENU_PIN = 'startpin'; -- закрепить в меню "Пуск"
SHELL_STARTMENU_UNPIN = 'startunpin'; -- изъять из меню "Пуск"
SHELL_TASKBAR_PIN = 'taskbarpin'; -- закрепить на панели задач
SHELL_TASKBAR_UNPIN = 'taskbarunpin'; -- изъять из панели задач
-- Function
Shell.PinTo = function (sPath, cType)
if File.DoesExist(sPath) then
local tPaths = String.SplitPath(sPath);
local oShell = luacom.CreateObject("Shell.Application");
local oFolder = oShell:Namespace(tPaths.Drive..tPaths.Folder);
local oFolderItem = oFolder:ParseName(tPaths.Filename..tPaths.Extension);
oFolderItem:invokeverb(cType);
oShell = nil;
end
end
-- Example
-- sPath может быть либо ярлыком, либо файлом
Shell.PinTo(_SystemFolder.."\\calc.exe", SHELL_STARTMENU_PIN);
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
Предыдущая тема: память не может быть written
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.