[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2498
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
81424Hi,I come from bbs.wuyou.net of China.
lsmlcx,
Приветствую! aa Добро пожаловать на usbtor.ru
Это здорово, что Вы помогаете советами в этой непростой для нас теме по PECMD fr-P.S.
Кстати, смотрю, новая версия вроде как появилась: PECMD2012.1.88.05.82Stable-180149测试202010G

[Цитировать]

    lsmlcx
  • 26081
  • Стаж: 3 года 5 месяцев
  • Сообщений: 9
  • Репутация:15

    [+] [-]
81430
81424Hi,I come from bbs.wuyou.net of China.
lsmlcx,
Приветствую! aa Добро пожаловать на usbtor.ru
Это здорово, что Вы помогаете советами в этой непростой для нас теме по PECMD fr-P.S.
Кстати, смотрю, новая версия вроде как появилась: PECMD2012.1.88.05.82Stable-180149测试202010G
Yes,
Fix some bugs or new function
SWIN
WRIT *v
ENVI-zero
FDRV
PART list cdrom 0,&a
ENVI-addr ;&b=&a
GETF -find
STRL -8
FONT -

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1269
  • Репутация:126

    [+] [-]
Я наверно в этой теме скачал helpPECMD.chm, но не нашёл этот пост в шапке, там поиск не работает, поэтому перепаковал с поиском и почему-то размер в 2 раза меньше, скачать
Там были лишние страницы которых нет в дереве, я засунул все в дерево, это наверно копии, в любом случае их легко убрать, файл проекта тоже внутри.
Перезалил, подсветил разделы, имена функций, шестнадцатеричные числа
Перезалил, подсветил переменные и L200T360W128H232

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 2 месяца
  • Сообщений: 453
  • Репутация:127

    [+] [-]
AZJIO, Красота... дубли ещё убери, пожалуйста....
DLL и все с _****

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1269
  • Репутация:126

    [+] [-]
Если кому интересно самому поковырять, то вот регулярные выражения, которые я использовал

регулярные выражения

Разделы. Вместо {3,} пробовать {2,} и {1,} и проверять захват индивидуально
(( | ){3,})(?-i)(Формат|Функция|Параметры|Пример|Примечания)(?=( | ){3,})
\1<font class="section">\3</font>
Тест, тех, которые не подсветились и ручная доводка.
(?<!>)(?-i)(Формат|Функция|Параметры|Пример|Примечания)(?!<)
Имена функций.
(?-i)(?<![_A-Z%])(ADSL|BASE|BROW|CALC|CALL|CHEK|CMPS|CODE|COME|DATE|DEVI|DFMT|DISK|DISP|DTIM|EDIT|EJEC|ENVI|EXEC|EXIT|FBWF|FDIR|FDRV|FEXT|FILE|FIND|FLNK|FNAM|FONT|FORM|FORX|GETF|GROU|HASH|HELP|HIDE|HIVE|HKEY|HOME|HOTK|IFEX|IMAG|INIT|IPAD|ITEM|KILL|LABE|LINK|LIST|LOAD|LOCK|LOGO|LOGS|LOOP|LPOS|LSTR|MAIN|MDIR|MEMO|MENU|MESS|MOUN|MSTR|NAME|NOTE|NTPC|NUMK|PAGE|PART|PATH|PBAR|PCIP|PINT|PUTF|RADI|RAMD|RAND|READ|RECY|REGI|RPOS|RSTR|RUNS|SCRN|SEND|SERV|SHEL|SHOW|SHUT|SITE|SIZE|SLID|SOCK|SPIN|SSTR|STRL|SUBJ|SWIN|TABL|TABS|TEAM|TEMP|TEXT|THRD|TIME|TIPS|UPNP|USER|WAIT|WALL|WRIT)(?![_A-Z%])
<font class="fnc">\1</font>
Шестнадцатеричные числа
(-?0x[\dA-Fa-f]++)
<font class="xnum">\1</font>
Звезда ※, китайский иероглиф (без пробелов)
(& # 9472)
<font class="star">\1</font>
Координаты 1-й проход (подсветить целиком)
(L-?\d+T-?\d+W-?\d+H-?\d+)
<font class="ltwh">\1</font>
Координаты 2-й проход (подсветить части)
(<font class="ltwh">)(L)(-?\d+)(T)(-?\d+)(W)(-?\d+)(H)(-?\d+)(</font>)
\1\2</font><font class="ltwh2">\3</font>\1\4</font><font class="ltwh2">\5</font>\1\6</font><font class="ltwh2">\7</font>\1\8</font><font class="ltwh2">\9</font>
Переменные
(%\w+%)
<font class="var1">\1</font>
не использовал пока (без пробелов)
(%(& amp;)+\w+%)
<font class="var1">\1</font>
Переменные (не работает в HTML, так как захватывает & nbsp; и & #9472; и т.д.) из _pecmd.coder
([%&#$@]+\w++%?)
дубли ещё убери
убрал
Перезалил, сделал заголовок окна справки стандартный, а то мой плаг прыжка в справку связан через заголовок, то есть кто пользуется моей сборкой AkelPad с поправленным заголовком теперь не будут иметь проблем.
Перезалил. Сделал переименование страниц в имена их функций.

переименование файлов по содержимому

Давно хотел написать скрипт AutoIt3, чтобы переименовать файлы по некоторому тексту в содержимом. В данном случае критерий в теге TITLE.
#include <Array.au3> ; для _ArrayDisplay
#include <FileOperations.au3>
$aFileList = _FO_FileSearch(@ScriptDir, 'page_*.html', True, 0, 0, 1)
; _ArrayDisplay($aFileList)
For $i = 1 To $aFileList[0]
  $sText = FileRead(@ScriptDir & '\' & $aFileList[$i])
  $aName = StringRegExp($sText, '<TITLE>(\w+)</TITLE>', 1)
  If Not @error Then
    If Not FileMove(@ScriptDir & '\' & $aFileList[$i], @ScriptDir & '\' & $aName[0] & '.htm', 0) Then
      ; MsgBox(0, 'не удалось', $aFileList[$i] & @CRLF & $aName[0])
    EndIf
  EndIf
Next

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 2 месяца
  • Сообщений: 453
  • Репутация:127

    [+] [-]
Обновил справку по PECMD.
Добавлено:
- поиск и подсветка от AZJIO !!
- немного поправок из последних постов


Последний раз редактировалось: avalat (2021-02-02 20:39), всего редактировалось 1 раз

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет 2 месяца
  • Сообщений: 577
  • Репутация:41

    [+] [-]
  • Откуда: Омск
avalat, az ay

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет 2 месяца
  • Сообщений: 577
  • Репутация:41

    [+] [-]
  • Откуда: Омск
Приветствую господа aa
Вышла новая версия PECMD2012.1.88.05.84Stable-201201.7z
Скинул на яндекс PECMD2012.1.88.05.84Stable-201201-Pass 1234.7z
Пароль:1234(т.к. ругается на оригинальный архив)

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2498
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
Всем здрасте! aa
По мотивам обсуждений этой темы
PECMD2012.1.88.05.84_Stable-201204_CH-EN-RU_X86-X64-Подробнее:
PECMD_Full_original.7z - Оригинальные файлы проекта. Неупакованные MPRESS.
PECMD_for_WinPE.7z - PECMD для WinPE. Удалены некоторые (ненужные) ресурсы. Неупакованные MPRESS.
PECMD_lite.7z - Облегчённый вариант PECMD. Удалены ещё некоторые (ненужные) ресурсы по рекомендации conty9 из этого поста . Подходит для создания своей утилиты путём правки ресурса SCRIPT\101 (или SCRIPTINIT\100). Неупакованные MPRESS.-В каждом архиве имеется скрипт _Packed_PECMD.EXE_with_mpress.cmd (если появится нужда упаковать PECMD.EXE с помощью MPRESS)

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет 2 месяца
  • Сообщений: 577
  • Репутация:41

    [+] [-]
  • Откуда: Омск
sergeysvirid, aa
Подробнее:
PECMD_Full_original.7z - Оригинальные файлы проекта. Неупакованные MPRESS.
PECMD_for_WinPE.7z - PECMD для WinPE. Удалены некоторые (ненужные) ресурсы. Неупакованные MPRESS.
PECMD_lite.7z - Облегчённый вариант PECMD. Удалены ещё некоторые (ненужные) ресурсы по рекомендации conty9 из этого поста . Подходит для создания своей утилиты путём правки ресурса SCRIPT\101 (или SCRIPTINIT\100). Неупакованные MPRESS.
Все получилось bp

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 2 месяца
  • Сообщений: 453
  • Репутация:127

    [+] [-]
sergeysvirid,
В PECMD_lite без ресурса 10016 (Dialog) надписи OK, NO, YES, Cancel .... будут китайскими (на мессагах). Лучше оставить.

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2498
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
avalat,
Приветствую! aa
Спасибо за полезное замечание. fr Перезалил архив. bs

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]

Перечень назначения ресурсов оригинального файла PECMD

EXEDATA\100: Пример пользовательских данных (например, для размещения EXE-утилит)
INDATA\2: Драйвер поддержки UPNP (X86)
INDATA\4: Список подключаемых модулей
INDATA\5: Запись PBR для NT5 FAT
INDATA\6: Запись PBR для DOS
INDATA\7: Запись PBR для NT6 FAT
INDATA\8: Запись PBR для NT5
INDATA\9: Запись PBR для NT6
INDATA\10: Поддержка расширенного отображения секторов (X86)
INDATA\20: Скрипт обновления буквы диска
INDATA\21: Скрипт GUI управления разделами дисков
INDATA\22: Поддержка загрузки и выгрузки UDM.
INDATA\23: Поддержка самостоятельного удаления
INDATA\24: Поддержка воспроизведения FLASH.
INDATA\25: Скрипт OnBoot.wcs
INDATA\26: Скрипт GUI управления процессами
INDATA\27: Скрипт GUI калькулятор
INDATA\28: Модуль автоматической установки Imdisk
INDATA\29: CAB-пакет драйвера Imdisk
INDATA\30: Скрипт Экранная клавиатура
INDATA\31: Скрипт создания скриншота
INDATA\32: Скрипт просмотра изображения
INDATA\33: CAB-распаковщик библиотек DLL
INDATA\34: Интерфейс запуска оболочки
INDATA\35: расширение DEVI
SCRIPT\101: Встроенный настраиваемый скрипт с автозапуском .autoapp.wcs
SCRIPT\102...203: Пример дополнительных скриптов
SCRIPTINIT\100: Скрипт инициализации
TAGDATA\10005: Маркер
Меню\10021: Меню в трее при использовании PECMD в качестве оболочки
RCData\301: Встроенная справка
Диалог\302: GUI справки (при удалении интерфейс справки не отображается)
Диалог\100хх: Интерфейс окон запросов
Строковая таблица: Шрифты
Иконка\1...4: Иконки
Версия\1: Версия
Манифест\1: Манифест для поддержки запроса режима администратора

Что можно безболезненно удалить из PeCMD (для уменьшения размера конечного файла)

EXEDATA\* - сюда добавляем, при необходимости, нужные утилиты (если не нужно, удаляем)
INDATA\* - если не нужны имеющиеся плюшки (установка MBR, разные GUI, Imdisk), удаляем
SCRIPT\101 - сюда добавляем основной скрипт
SCRIPT\102...ХХХ - сюда можно закинуть дополнительные скрипты
SCRIPTINIT\100 - что будет выполнено при инициализации (если не нужно, удаляем)
TAGDATA\* - удаляем
Меню\* - удаляем. Если PECMD используется в качестве оболочки WinPE, размещаем в 10021 своё меню (вызывается в трее по ЛКМ/ПКМ)
RCData\301 - если не нужна встроенная справка, удаляем
Диалог\302 - если не нужна встроенная справка, удаляем
Диалог\10011-10019: - правим под свой язык, 10023 - нужна только для WinPE
Строковая таблица - указываем свои шрифты
Иконка - своя иконка, ненужное удаляем
Версия - для красоты указываем свою версию утилиты на базе PeCMD
Манифест - не трогаем.
Если планируется последующая упаковка своей утилиты на базе PeCMD (UPX или другими пакерами), тогда для уменьшения размера конечного файла рекомендуется распаковать всё, что включается в состав готового модуля. Т.е., скрипты и утилиты в EXEDATA должны быть неупакованы ни пакерами, ни командой CMPS. Если же необходимо защитить скрипт (или прочее) от распаковки, тогда его предварительно пакуем (или шифруем) CMPS. Учитывайте, что расшифровать потом можно будет не всё. И зашифрованное будет гарантированно работать только с версией PeCMD, которой производилось шифрование (с более старыми работать не будет, с новыми - без гарантии).


Последний раз редактировалось: Гость (2020-12-08 18:10), всего редактировалось 1 раз

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1269
  • Репутация:126

    [+] [-]
А есть ли смысл упаковки UPX-ом, учитывая что прога будет внутри wim? То есть она по определению будет сжата. На сколько я понял стратегию UPX-а (как и любого пакера): при запуске программы в памяти создаются две копии программы, одна пожатая, другая распакованная. Откуда такой вывод? Например берём прогу на AutoIt3 и смотрим размер процесса в памяти 10 Мб. Ну и логически рассудить, при запуске любой exe загружается в память, так что пожатое UPX-ом будет в памяти как есть. А далее для работы программы она должна быть распакована, так что получаем ещё и распакованную копию в памяти, которая уже выполняется. Так что жать есть смысл чтобы больше программ уместить на флешке, не более. А в памяти выполняем пару-троку программ, что не критично к памяти. Но если прога внутри wim, то пропадает смысл этого действа.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3604
  • Репутация:127

    [+] [-]
AZJIO,

оффтоп

Я даже больше скажу. Начиная с WinME программа начинает выполняться сразу, подгружая в память только необходимые куски. В то время как сжатая любым упаковщиком программа должна быть загружена в память целиком, там распакована и только потом начнётся её выполнение.

Страница 23 из 28


Показать сообщения:    

Текущее время: 19-Апр 13:34

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы