?
А то надоело перезапускать AkelPad после возникновения ошибки в скрипте.
То есть мы проверяем, что окна нет, но класс все еще зарегистрирован. И пробуем снять регистрацию.
P.S. Кстати, скриптам из комплекта плагина тоже хорошо бы восстанавливать свернутое диалоговое окно.
Posted: Sat Apr 16, 2011 10:36 am
by Instructor
Infocatcher wrote:И как вообще положено проверять, попадет ли окно в рабочую область?
См. EnsureWindowInMonitor в файле исходников Edit.c.
Infocatcher wrote:P.S. Кстати, скриптам из комплекта плагина тоже хорошо бы восстанавливать свернутое диалоговое окно.
Добавил.
Posted: Sat Apr 16, 2011 7:23 pm
by Infocatcher
Instructor wrote:См. EnsureWindowInMonitor в файле исходников Edit.c.
Как-то очень хитро.
Я правильно понимаю, что GetWindowRect() для нескольких мониторов возвращает большие координаты (для второго и далее мониторов), так что достаточно просто их сохранить, а при восстановлении сделать проверку?
Странно. Вроде бы есть смысл восстанавливать положение любого окна (за редкими исключениями в виде каких-нибудь диалогов уровня Да/Нет/Отмена) – это удобно, а в WinAPI нету простого механизма для этого.
Posted: Mon Apr 18, 2011 7:29 am
by Infocatcher
Infocatcher wrote:
Instructor wrote:См. EnsureWindowInMonitor в файле исходников Edit.c.
Как-то очень хитро.
А почему не
hMonitor = MonitorFromRect(lpRect, MONITOR_DEFAULTTONEAREST)
=> GetMonitorInfoA(hMonitor, LPMONITORINFO lpMi)
=> rcMonitor, rcWork
+ коррекция, чтобы влезало в rcWork
?
А вот как предполагается получать основной (primary) монитор, я не понял.
Вот что должно вернуть*
Кто-то интересовался насчет индикатора выполнения скрипта. Пример по использованию можно посмотреть здесь: LinesWrap.js.
Posted: Thu Apr 21, 2011 4:01 pm
by FeyFre
Взято на заметку во время странствования по исходникам AP, но надобности не было, осталось висеть в воздухе.
Posted: Sun Apr 24, 2011 12:03 pm
by Infocatcher
measuresConverter-test.js
Added option to round off measures and currencies.
Added option to sort measures alphabetically.
Window position in systems with multiple monitors should be correctly restored.
And something good things that I forgot, may be.
Posted: Sun Apr 24, 2011 5:31 pm
by Infocatcher
runScript.js
Improved speed of scripts list receiving, based on Instructor's OpenSaveMask.js.
Window position in systems with multiple monitors should be correctly restored.
var unixTime = new Date().getTime(); // или задать числом
var date = new Date(unixTime);
WScript.Echo(
date.toLocaleString() + "\n" +
date.toUTCString() + "\n" +
date.toString() + "\n" +
date.getTime()
);
var dateString = new Date().toString(); // или задать строкой
var date = new Date(dateString);
...
Posted: Tue Apr 26, 2011 4:54 pm
by Deim0s
Infocatcher,
Я не разобрался как работает . Выдаёт текущие время/дату:
причём не правильно(?) (13 чисел).
Хотелось бы что то вроде:
Выделить в AkelPad время/дату (в GMT), к примеру в таком формате:
00:00:00 01.01.1999
Получить в Unix time:
915148800
и.т.д:
16:39:50 26.04.2011 > 1303835990
1303835990 > 16:39:50 26.04.2011
А если было бы возможно ещё выводить hex-значение, вообще сказка была бы:
01:13:28 02.04.2011
1301706808
4D967838
P.S. Хотя последнее можно получить с HexSel.
P.P.S. Поторопился, с HexSel не то.
Posted: Tue Apr 26, 2011 5:47 pm
by Infocatcher
Deim0s
Там в миллисекундах.
Для примера там задается исходная строка на основании текущего времени.
Вот пример для работы с выделенным текстом, маленькие значения считаются заданными в секундах:
var date = AkelPad.GetSelText().replace(/^\s+|\s+$/g, "");
if(/^(\d+|0x[0-9a-f]+)$/i.test(date)) {
date = Number(date);
if(date < 3e9)
date *= 1000;
}
date = new Date(date);
WScript.Echo(
date.toLocaleString() + "\n" +
date.toUTCString() + "\n" +
date.toString() + "\n" +
date.getTime() + "\n" +
Math.round(date.getTime()/1000) + "\n" +
"0x" + Math.round(date.getTime()/1000).toString(16)
);
Только дату текстом съест далеко не каждую – без дополнительной обработки не обойтись.
Posted: Tue Apr 26, 2011 9:54 pm
by Deim0s
Infocatcher,
Там в миллисекундах.
Да, сообразил с опозданием .
Вот пример для работы с выделенным текстом...
Спасибо! То что нужно, в сторону "Unix time > Обычные время/дата" работает отлично. А можно в обратную сторону "Обычные время/дата > Unix time"? В любом бы формате из таких: 00:00:00 01.01.1999 или 00:00:00 01/01/1999 или 01/01/1999 00:00:00. И вызывать бы разными командами .