Страница 81 из 243
Добавлено: Сб янв 26, 2019 22:13
Loopback
Flasher писал(а):Я как-то просил тебя cpuid привинтить.
Ок, посмотрю, благо там даже пример есть. Параметров там много, выглядеть это, наверно, может как-нибудь так:
Код: Выделить всё
GetCpuInfo var "SSE3" -> True
GetCpuInfo var "Vendor" -> GenuineIntel
Flasher писал(а):А пока прошу сравнить
Сравнил, разницы не заметил. Но это только на глаз, чтобы тут точные значения получить, надо вводить скриптовые функции-таймеры для измерения времени между двумя вызовами функций.
Добавлено: Сб янв 26, 2019 23:01
Flasher
Loopback писал(а):выглядеть это, наверно, может как-нибудь так:
Может, стоит ещё параметр, возвращающий описание добавить? Есть
старые таблички.
Loopback писал(а):Но это только на глаз
На глаз мне бы твоя помощь не потребовалась. Конечно, через таймеры.

Добавлено: Вс янв 27, 2019 21:55
Loopback
Flasher писал(а):Может, стоит ещё параметр, возвращающий описание добавить?
Описание параметров, думаю, лучше в справку.
Flasher писал(а):На глаз мне бы твоя помощь не потребовалась
В принципе я так и думал

Попробуй эту
версию, добавил функцию получения таймера из скрипта. Значение возвращает в мс. Если окажется полезной, можно будет и оставить. Использовать так:
Код: Выделить всё
GetTimer T1
ProcessExecGetOutput Manufacturer %ComSpec% '/q/c for /f "skip=2 tokens=2 delims=:" %i in (''"%COMMANDER_PATH%\Utils\CPUIdC.exe"'') do echo%i &exit'
ProcessExecGetOutput DataWidth %ComSpec% '/q/c for /f "skip=3 tokens=2 delims=:" %i in (''"%COMMANDER_PATH%\Utils\CPUIdC.exe"'') do echo%i &exit'
StrReplace /S DataWidth '%DataWidth%' ' Bits'
GetTimer T2
GetWMIValue Manufacturer Manufacturer "SELECT Manufacturer FROM Win32_Processor"
GetWMIValue DataWidth DataWidth "SELECT DataWidth FROM Win32_Processor"
GetTimer T3
Set /C Diff1 %T2%-%T1%
Set /C Diff2 %T3%-%T2%
У меня примерно 140 и 30 мс соответственно.
Добавлено: Вс янв 27, 2019 22:25
Flasher
Loopback писал(а):Описание параметров, думаю, лучше в справку.
Вообще да. В конфиге они ни к чему по сути, если знаешь, что за что отвечает.
Спасибо за GetTimer. Да, подтверждаю, разница существенная.
У меня первая даже за 500 уходит. А вторая в диапазоне 26-35. С отключённым WmiPrvSE.exe около 110-130.
Оставляй. Для тестов весьма полезна.
Добавлено: Пн янв 28, 2019 10:18
MVV
А почему GetTimer? Гуглил-гуглил, так и не нашёл, откуда такое название. У меня лично таймер ассоциируется с чем-то, что надо заводить на какое-то время, и что потом срабатывает. А это, насколько я понял, либо текущий таймштамп (время), либо время со включения компа (тики)...
Добавлено: Пн янв 28, 2019 10:39
Loopback
MVV
Да, название некорректное, по-сути это просто обертка над QueryPerformanceCounter. Наверно GetTimestamp будет правильнее.
Добавлено: Пн янв 28, 2019 10:49
Flasher
Loopback
В VBS/VB.NET есть Timer (время от полуночи в single-секундах).
Тут пример тоже с gettimer из libc.a.
А GetTimestamp — это отметка даты и времени. У нас же дата отсутствует.
Добавлено: Пн янв 28, 2019 11:41
Loopback
Get
Timestamp - таки только время
На самом деле таймер - это все-таки некий интервал. То что выдает функция - это именно временной штамп от момента включения компьютера.
Хотя если не углубляться в тонкости реализации, название в принципе ничего не меняет.
Добавлено: Пн янв 28, 2019 12:25
Flasher
Timestamp — это по сути число секунд, преобразованное из заданной даты и времени.
Есть брать
Unix Time Stamp, то видим 10-тизначное число секунд от 1 января 1070 года. У тебя в текущий момент мне выдаёт 9-тизначное от времени включения в мс.
В vbs в мс 8-мизначное от полуночи можно получить так:
Loopback писал(а):таймер - это все-таки некий интервал.
Вот он и есть. Между датой и временем запуска машины/полуночи и текущей датой и временем.
Добавлено: Пн янв 28, 2019 15:06
MVV
Таймштамп - да, нечто более глобальное.
Таймер - это скорее не интервал, а механизм реагирования на истечение некоего интервала.
А число тиков с момента включения... В дотнете это значение возвращается свойством Environment.TickCount (мс, знаковое 32-битное, где-то в 25 дней меняет знак), в Windows API - функцией GetTickCount (мс, беззнаковое 32-битное, где-то раз в 50 дней обнуляется). В WMI вроде время с момента включения считается счётчиком SystemUpTime (секунды). В общем, думаю, надо придерживаться какого-то из существующих названий этой сущности, а не выдумывать своё. GetTicks или GetUptime (может, GetUptimeMs) - вроде неплохие кандидаты.
Добавлено: Пн янв 28, 2019 15:17
Flasher
GetUptimeMs — больше похоже на правду.
Добавлено: Чт янв 31, 2019 12:37
Loopback
Тогда уж лучше пусть будет GetUptime, т.к. точость функции можно при необходимости сделать и выше, например до микросекунд, добавив управляющий параметр.
Добавлено: Чт янв 31, 2019 13:08
Flasher
Loopback писал(а):например до микросекунд
А чего сразу не нано? Я уж не говорю про совсем сумашедшие иокто.

По чел. восприятию нам и сантисекунд было бы достаточно.
Добавлено: Пн фев 25, 2019 01:16
Loopback
BeTeP писал(а):Дело в том, что MoveButton, в отличии от FixWindow, не только переносит кнопку, но и уменьшает ширину диалога копирования/перемещения.
MoveButton никогда не уменьшала ширину диалога, просто в то время он был такой ширины. Увы, тут обрадовать не смогу, поскольку есть как минимум две проблемы с уменьшением ширины диалога. Во-первых, уменьшить можно только те контролы, которые есть в диалоге в момент его открытия. А те контролы, которые появляются после нажатия кнопки опций, в момент открытия диалога еще не существуют. Вторая проблема в 64-битной версии тотала, в ней невозможно уменьшить ширину комбобоксов, они никак не реагируют попытки изменить их ширину.
Выложил новые версии
тут. MoveOptionsButton теперь запускается без параметров. Если интересно, можно попробовать запустить с параметром "/NARROW" и посмотреть как безобразно выглядит суженный диалог

Добавлено: Пн фев 25, 2019 03:17
BeTeP
Loopback писал(а):Если интересно, можно попробовать запустить с параметром "/NARROW" и посмотреть как безобразно выглядит суженный диалог

Выглядит конечно не очень, но лично меня вполне устраивает.
Огромное спасибо.