Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Я как-то просил тебя cpuid привинтить.
Ок, посмотрю, благо там даже пример есть. Параметров там много, выглядеть это, наверно, может как-нибудь так:

Код: Выделить всё

GetCpuInfo var "SSE3"     -> True
GetCpuInfo var "Vendor"   -> GenuineIntel
Flasher писал(а):А пока прошу сравнить
Сравнил, разницы не заметил. Но это только на глаз, чтобы тут точные значения получить, надо вводить скриптовые функции-таймеры для измерения времени между двумя вызовами функций.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):выглядеть это, наверно, может как-нибудь так:
Может, стоит ещё параметр, возвращающий описание добавить? Есть старые таблички.
Loopback писал(а):Но это только на глаз
На глаз мне бы твоя помощь не потребовалась. Конечно, через таймеры. :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение 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 мс соответственно.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Описание параметров, думаю, лучше в справку.
Вообще да. В конфиге они ни к чему по сути, если знаешь, что за что отвечает.

Спасибо за GetTimer. Да, подтверждаю, разница существенная.
У меня первая даже за 500 уходит. А вторая в диапазоне 26-35. С отключённым WmiPrvSE.exe около 110-130.
Оставляй. Для тестов весьма полезна.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А почему GetTimer? Гуглил-гуглил, так и не нашёл, откуда такое название. У меня лично таймер ассоциируется с чем-то, что надо заводить на какое-то время, и что потом срабатывает. А это, насколько я понял, либо текущий таймштамп (время), либо время со включения компа (тики)...
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

MVV
Да, название некорректное, по-сути это просто обертка над QueryPerformanceCounter. Наверно GetTimestamp будет правильнее.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
В VBS/VB.NET есть Timer (время от полуночи в single-секундах). Тут пример тоже с gettimer из libc.a.
А GetTimestamp — это отметка даты и времени. У нас же дата отсутствует.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

GetTimestamp - таки только время :)

На самом деле таймер - это все-таки некий интервал. То что выдает функция - это именно временной штамп от момента включения компьютера.

Хотя если не углубляться в тонкости реализации, название в принципе ничего не меняет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Timestamp — это по сути число секунд, преобразованное из заданной даты и времени.
Есть брать Unix Time Stamp, то видим 10-тизначное число секунд от 1 января 1070 года. У тебя в текущий момент мне выдаёт 9-тизначное от времени включения в мс.
В vbs в мс 8-мизначное от полуночи можно получить так:

Код: Выделить всё

MsgBox CDbl(Timer)*1000
Loopback писал(а):таймер - это все-таки некий интервал.
Вот он и есть. Между датой и временем запуска машины/полуночи и текущей датой и временем.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Таймштамп - да, нечто более глобальное.

Таймер - это скорее не интервал, а механизм реагирования на истечение некоего интервала.

А число тиков с момента включения... В дотнете это значение возвращается свойством Environment.TickCount (мс, знаковое 32-битное, где-то в 25 дней меняет знак), в Windows API - функцией GetTickCount (мс, беззнаковое 32-битное, где-то раз в 50 дней обнуляется). В WMI вроде время с момента включения считается счётчиком SystemUpTime (секунды). В общем, думаю, надо придерживаться какого-то из существующих названий этой сущности, а не выдумывать своё. GetTicks или GetUptime (может, GetUptimeMs) - вроде неплохие кандидаты.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

GetUptimeMs — больше похоже на правду.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Тогда уж лучше пусть будет GetUptime, т.к. точость функции можно при необходимости сделать и выше, например до микросекунд, добавив управляющий параметр.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):например до микросекунд
А чего сразу не нано? Я уж не говорю про совсем сумашедшие иокто. :D
По чел. восприятию нам и сантисекунд было бы достаточно.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

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

Выложил новые версии тут. MoveOptionsButton теперь запускается без параметров. Если интересно, можно попробовать запустить с параметром "/NARROW" и посмотреть как безобразно выглядит суженный диалог :)
Аватара пользователя
BeTeP
Сообщения: 135
Зарегистрирован: Чт мар 31, 2005 00:57
Откуда: Санкт-Петербург

Сообщение BeTeP »

Loopback писал(а):Если интересно, можно попробовать запустить с параметром "/NARROW" и посмотреть как безобразно выглядит суженный диалог :)
Выглядит конечно не очень, но лично меня вполне устраивает.
Огромное спасибо.
Ответить