Предупреждение о приближении завершения закачки
Moderators: Korney San, marcipan
Предупреждение о приближении завершения закачки
Мне бы пригодился плагин, который предупреждает о том, что до завершения закачки осталась, например, 1 минута. Естественно, интервал должен настраиваться.
Заранее спасибо.
Заранее спасибо.
Пожалуйста, посмотрите: Использование ссылок в тексте сообщений
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re: Предупреждение о приближении завершения закачки
Вы готовы выделить на его разработку некую сумму?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Нет... Я лучше постараюсь разобраться, как написать плагин не на Delphi.Korney San wrote:Вы готовы выделить на его разработку некую сумму?
Пожалуйста, посмотрите: Использование ссылок в тексте сообщений
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re:
Попробуйте освоить то, что сделал VoLT.Qwertiy wrote:Нет... Я лучше постараюсь разобраться, как написать плагин не на Delphi.
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Как раз пытаюсь понять, почему когда я компилирую этот код в VS2010, DM просто не видит, что плагин вообще существует...Korney San wrote:Попробуйте освоить то, что сделал VoLT.
Пожалуйста, посмотрите: Использование ссылок в тексте сообщений
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re:
Мне как-то нагуглилось, что в С++ нет понятия "интерфейс". Может, ноги растут оттуда. Сам же VoLT бодался с присвоением классу GUID...Qwertiy wrote:Как раз пытаюсь понять, почему когда я компилирую этот код в VS2010, DM просто не видит, что плагин вообще существует...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Выяснил, что проблема (по крайней мере, пока) в экспортируемой функции...Korney San wrote:Мне как-то нагуглилось, что в С++ нет понятия "интерфейс". Может, ноги растут оттуда. Сам же VoLT бодался с присвоением классу GUID...Qwertiy wrote:Как раз пытаюсь понять, почему когда я компилирую этот код в VS2010, DM просто не видит, что плагин вообще существует...
Только вот VS def-файл игнорирует... А без него получаетсяreadme.txt wrote:Плагин должен экспортировать единственную функцию - RegisterPlugIn, вызываемую
по соглашению stdcall. Экспортировать ее через __declspec(dllexport) нельзя, т.к.
при этом экспортированное имя будет декорировано в соответствии с соглашением о вызове.
Т.е. будет выглядеть как _RegisterPlugIn@4 - что DMaster'у никак не подходит
Я использовал .def файл.
Code: Select all
Function Name : long __stdcall RegisterPlugIn(struct MyPlugin * *)
Address : 0x10011177
Relative Address : 0x00011177
Ordinal : 1 (0x1)
Filename : DMDIESP.dll
Type : Exported Function
Code: Select all
Function Name : RegisterPlugIn
Address : 0x004027f0
Relative Address : 0x000027f0
Ordinal : 1 (0x1)
Filename : MyPlugin.dll
Type : Exported Function
Пожалуйста, посмотрите: Использование ссылок в тексте сообщений
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Нашёл решение
Теперь получается так:и плагин определяется.
Теперь буду код писать.
Code: Select all
extern "C" HRESULT __declspec(dllexport) _stdcall RegisterPlugIn( MyPlugin** out) {
#pragma comment (linker, "/export:RegisterPlugIn=_RegisterPlugIn@4")
*out = &myp;
return S_OK;
}
Code: Select all
Function Name : _RegisterPlugIn@4
Address : 0x10002430
Relative Address : 0x00002430
Ordinal : 2 (0x2)
Filename : DMDIESP.dll
Type : Exported Function
==================================================
Function Name : RegisterPlugIn
Address : 0x10002430
Relative Address : 0x00002430
Ordinal : 1 (0x1)
Filename : DMDIESP.dll
Type : Exported Function
Теперь буду код писать.
Пожалуйста, посмотрите: Использование ссылок в тексте сообщений
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Re:
Отлично!Qwertiy wrote:Теперь буду код писать.
Вам осталось читать у загрузок поле <timeleft>, сверять с настройкой, умноженной на 60 (если в минутах), и оповещать пользователя каким-либо способом.
Я бы предложил свой сервис всплывающих окон, но для этого Вам придётся переложить на C улучшенный интерфейс...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Пока сделал так:
Потом займусь настройками и, возможно, интерфейсом. А вообще, подумаю над тем, как сделать плагин на VB.NET...
Скачать dll.
Code: Select all
_bstr_t EventRaised(const _bstr_t& eventType, const _bstr_t& eventData)
{
static std::set <int> ignore;
if (eventType == _bstr_t("dm_timer_5"))
{
_bstr_t ids;
wchar_t *ptr, *end, buf[16];
int cur, n;
unsigned time;
ids = DoAction("GetDownloadIDsList", "3");
for(end=(ptr=(wchar_t*)ids)+ids.length(); ptr<end; ptr+=n)
{
if(swscanf(ptr, L"%d %n", &cur, &n) != 1)
break;
if(!ignore.count(cur))
{
wsprintf(buf, L"%d", cur);
swscanf(wcsstr((wchar_t*)DoAction("GetDownloadInfoByID",buf),L"<timeleft>")+10, L"%u", &(time=0));
if(time && time<120)
{
ignore.insert(cur);
MessageBox(0, L"До завершения одной из закачек осталось менее 2 минут!", L"", 48);
}
}
}
}
return "";
}
Скачать dll.
Пожалуйста, посмотрите: Использование ссылок в тексте сообщений
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.
Поддерживаются браузеры: Опера 12, Хром, Firefox.
Обновлено: 21.09.2012. Надо бы ещё подправить и обновить...
Ссылки на файлы обновлены: 24.05.2013.