[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
Извлечение иконок в папку из *.exe *.dll *.icl
IconsExt
Добавлен ресурс 11 в EXEDATA (ResHacker.exe)

код

SCRN ScrW,ScrH
calc t=%ScrH%-250 //меняем координату
ENVI ext=%Temp%\rs\ResHacker.exe -extract %ic%,%fd%\icon_%fn%\MyRes.rc,IconGroup,, // <ext> - команда извлечения
MDIR %Temp%\rs //создаём папку
PUTF -wait %Temp%\rs\ResHacker.exe,,%MyName%#11|EXEDATA //из ресурса 11 извлекаем в %Temp%\rs - ResHacker.exe
ENVI v= Перетащите файл *.exe *.dll *icl
win
_SUB win,L50T%t%W200H100,IconsExt,x,
ENVI @win.POS=::::4 //поверх всех окон
EDIT+ ,L-10T1W1H1, //просто захотел избавиться от курсора в окне (не совсем помогает)
MEMO+-| ic,L1T1W192H66,%v%,,0x208
ENVI @ic.MSG=0x0233::,,start // при перетаскивании файла выполнить start
ENVI @ic.MSG=0x0203::,,delF // при двойном клике - delF
_END
_SUB start
FILE %Temp%\rs\ResHacker.log // очищаем лог
FIND $%ic%=%v%,ENVI @ic=%v%
TEAM FDIR fd=%ic%|FEXT fx=%ic%|FNAM fn=%ic%
IFEX %fd%\icon_%fn%,FILE %fd%\icon_%fn%
FIND [$%fx%=exe | $%fx%=dll | $%fx%=icl],EXEC=%ext%!ENVI @ic=%v% //если файл с этим расширением - запускаем команду извлечения (3 строка)
READ %Temp%\rs\ResHacker.log,0,str //читаем последнюю строку лога и если ....ниже
FIND $%str%=Команды выполнены,TEAM ENVI @ic= Иконки извлечены в папку\n icon_%fn%\n\n\n Удалить папку - двойной клик|FILE %fd%\icon_%fn%\MyRes.rc|findF
_END
_SUB findF //проверяем папку на кол-во иконок
FORX %fd%\icon_%fn%\*.ico,k,0,
IFEX $%k%=0,TEAM ENVI @ic=Иконок не найденo|FILE %fd%\icon_%fn%\
IFEX $%k%>0,TEAM renF|EXEC explorer.exe %fd%\icon_%fn%\ //если больше 0, открываем папку
_END
_SUB delF
FILE %fd%\icon_%fn%\
ENVI @ic= Папка с иконками удалена\n ( icon_%fn% )
_END
_SUB renF //переименование иконок - вместо Icon_1.ico ,Icon_2.ico ... - просто 1.ico , 2.ico ...
FORX %fd%\icon_%fn%\*.ico,ff,0,TEAM SED af=0,Icon_, ,%ff%|FILE %ff%>>%af%
_END
_SUB x // при выходе удаляем папку с ResHacker.exe
FILE %Temp%\rs\
_END


Last edited by avalat on 2022-03-27 08:08; edited 1 time in total

[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
Недавно как то разбирался со ссылками на Youtube, наткнулся на утилитку youtube-dl.exe
Заменил на yt-dlp.exe.
Набросал гуишку.
Скорость загрузки удручила...у меня не больше 70, хотя были и вспышки
Вот код с комментариями
MDIR %Temp%\yt //создаём папку в (%Temp%\yt)
PUTF -wait %Temp%\yt\yt-dlp.exe,,%MyName%#12|EXEDATA // в эту папку распаковываем утилиту yt-dlp.exe
ENVI txt=%TEMP%\logY.txt // создаём переменную для лога (txt)
ENVI &V=
_SUB win,W330H150,Download_YT,x,
ENVI @win.POS=::::4
ITEM st,L140T80W170H30,Вставить из буфера обмена,v
ITEM st2,L140T80W170H30,Загрузить,st
ENVI @st2.visible=0
LABE -left ,L10T4W300H12,Ссылка с Youtube,,0x6D6C6A
PBAR pb,L10T52W300H20,,
EDIT| pp,L10T290W550H20,,,0x20
EDIT ed,L10T20W300H20,,,0x100,0xFF0000,
LABE -left sss,L12T84W40H25,,,0x0000FF,16
LABE -left sss2,L10T145W60H16,,,0x0000FF
LABE -left fil,L10T120W300H23,,,,8
LABE -left vr,L78T145W50H16,Осталось,,
LABE -left vr2,L132T143W50H16,,,0xFF0000,14
LABE -left sk,L200T145W55H16,Скорость,,
LABE -left sk2,L256T145W60H16,,,0xFF0000,
// ENVI @ed.MSG=0x0233::&&wp,,stf
// ENVI @edi.MSG=0x0233::&&wp,,sti
_END
_SUB v
ENVI @ed.SENDMSG=0x0302
ENVI n=%ed%
LSTR bukv=10,%ed%
FIND $%bukv%=https://yo, TEAM ENVI @st.visible=0|ENVI @st2.visible=1!TEAM ENVI @ed=|MESS=-icon Вставьте правильную ссылку //| EXIT
_END
_SUB st // нажатие "Загрузить"
envi n2=%ed% // считываем ещё раз ссылку
find $%n%<>%n2%,team ENVI @st.visible=1|ENVI @st2.visible=0|ENVI @ed=|MESS=-icon Вставьте правильную ссылку|exit // проверяем - не изменилась ли она
ENVI @win.pos=:::200 // меняем (увеличиваем) размер окна
// нужное внизу - выбрать (раскомментировать)
// эта строка для вставки в exe - она пока закомментирована
// EXEC* -hide --cmd::400:progr &V=%Temp%\yt\yt-dlp.exe -i --ignore-errors %ed% // запускаем загрузку - каждые 400 мс будут передаваться данные <&V> в подпрограмму progr
// эта строка для файла youtube-dl.exe - находится рядом
EXEC* -hide --cmd::400:progr &V=%CurDir%\yt-dlp.exe -i --ignore-errors %ed%
TEAM ENVI @win.pos=:::150|ENVI @st2.enable=1|ENVI @st2.visible=0|ENVI @st.visible=1|ENVI @ed=|ENVI @sss=|ENVI @fil=|ENVI %fil%= //после загрузки изменяем размер окна, меняем кнопки на видимые, очищаем переменные
IFEX %CurDir%\%fil%, EXEC explorer.exe %CurDir%\ // если файл существует - открываем окно с загруженным файлом
_END
_SUB progr
ENVI @st2.enable=0 // делаем неактивной кнопку "Загрузить"
ENVI &s= // создаём переменную
WRIT %txt%,$,%&V% // записываем данные из <&V> в лог <txt>
READ *fix %txt%,*r,tx // считываем построчно весь лог в переменную <tx>, нам нужна строка где встречается слово <Destination:> - после неё идет название файла
LPOS** a=Destination:,,%tx% // вычисляем позицию слова - это число <a>
CALC aa=%a%+1 // добавляем единицу
MSTR res=<%aa%->%tx% // сохраняем в переменную <res> текст до конца строки от <%aa-%> - это название файла
READ -,1,ress,%res% // считываем из переменной <res> название файла
ENVI @fil=%ress% // вставляем его в окно в @fil
READ *fix %txt%,0,&s // считываем последние строки из лога в переменную <&s>
ENVI @pp=%&s% // вставляем строки в невидимое окно редактирования @pp, выглядят они так - <[download] 55.7% of 18.58MiB at 76.35KiB/s ETA 01:50>
TEAM MSTR &p=<2>%pp%|CALC #&p=%&p% // извлекаем 2 "слово" из строки - 55.7% - это процент загрузки, делаем его целым
ENVI @sss=%&p%%% // вставляем его в окно в строку @sss
ENVI @pb=%&p% // и вставляем его в прогрессбар
MSTR &ra=<4>%pp% // извлекаем 4 "слово" - 18.58MiB - это размер файла
SED &raz=0,MiB, Mb,%&ra% // заменяем MiB на более привычное Мb
ENVI @sss2=%&raz% // вставляем в окно
MSTR &ps=<6>%pp% // извлекаем 6 "слово" - 76.35KiB/s - это скорость
SED &psk=0,MiB/s, Mb/s,%&ps% // заменяем KiB/s на KB/s
ENVI @sk2=%&psk% //вставляем в окно
MSTR &vr=<8>%pp% // извлекаем 8 "слово" - это оставшееся время
ENVI @vr2=%&vr% //вставляем
IFEX $%sss%=100%,team KILL yt-dlp.exe|ENVI @sss.visible=0//когда будет 100% - закрываем процесс youtube-dl.exe,
_END
_SUB x // при выходе закрыть процесс и удалить лог
KILL yt-dlp.exe
FILE %txt%
FILE %TEMP%\YT\ //удаление папки с yt-dlp.exe
KILL \
_END
В архиве неупакованный exe, утилита yt-dlp.exe и код
(Знаю, что таких подобных прог много, чисто как пример PECMD)


Last edited by avalat on 2022-08-18 20:35; edited 12 times in total

[Quote]

    SergeyZV
  • 528
  • Longevity: 9 years 2 months
  • Posts: 1259
  • REPUTATION:34

    [+] [-]
avalat, youtube-dl.exe отстой. Используй yt-dlp.exe.

[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
SergeyZV,
aa
Ага, подставил yt-dlp.exe, заработало... Только в конце два окна открывается, не успевает процесс убить сразу.
Добавлено через 28 минут 16 секунд:
Поправил, перезалил архив ( вставил yt-dlp.exe)


Last edited by avalat on 2022-05-27 16:59; edited 1 time in total

[Quote]

    Gvint64
  • 24573
  • Longevity: 4 years
  • Posts: 567
  • REPUTATION:65

    [+] [-]
avalat, SergeyZV, aa YDown


Last edited by Gvint64 on 2022-07-07 18:42; edited 3 times in total

[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
Нашёл способ, как избавиться от этого выделения после вставки из буфера
до и после
- .
Добавил строку в код выше
--------------------
_SUB v
ENVI @ed.SENDMSG=0x0302
ENVI @ed.line=1
....
-------------------
перезалил архив

[Quote]

    Gvint64
  • 24573
  • Longevity: 4 years
  • Posts: 567
  • REPUTATION:65

    [+] [-]
avalat, aa Добавил ключ:
EXEC* -hide --cmd::400:progr &V=%CurDir%\yt-dlp.exe -i --ignore-errors %ed%
Key Help:
yt-dlp.exe -h > hlp.txt
P.S. Запускал exe - выскакивают 2 чёрных экрана в конце - поэтому полез пробовать ключи - а смотрю скрипт отличается от того что в ехе - в скрипте вроде нет.


Last edited by Gvint64 on 2022-05-30 13:27; edited 1 time in total

[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
Gvint64, aa
Ага, понял. Давай добавим.
ay

[Quote]

    SergeyZV
  • 528
  • Longevity: 9 years 2 months
  • Posts: 1259
  • REPUTATION:34

    [+] [-]
95337yt-dlp.exe -h > hlp.txt
А смысл?! Тогда уж и нужна возможность добавления ключей.

[Quote]

    Gvint64
  • 24573
  • Longevity: 4 years
  • Posts: 567
  • REPUTATION:65

    [+] [-]
SergeyZV, А какой смысл вообще в справочных данных?

[Quote]

    SergeyZV
  • 528
  • Longevity: 9 years 2 months
  • Posts: 1259
  • REPUTATION:34

    [+] [-]
95339А какой смысл вообще в справочных данных?
В данной проге от avalat нет ни какого смысла.

[Quote]

    Gvint64
  • 24573
  • Longevity: 4 years
  • Posts: 567
  • REPUTATION:65

    [+] [-]
SergeyZV,Никто и не говорил что справку туда надо встраивать. А посмотреть какие ключи и с чем их едят кому-нибудь пригодится.

[Quote]

    dimo70
  • 17296
  • Longevity: 6 years 5 months
  • Posts: 3682
  • REPUTATION:26

    [+] [-]
  • Location: BG
avalat, спасибо! Мастер PECMD. ay az

_________________
Signed off for violation of forum rules

[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
Мастер PECMD - это conty9.
А я так...
Любопытства ради..

[Quote]

    avalat
  • 222
  • Longevity: 9 years 3 months
  • Posts: 423
  • REPUTATION:127

    [+] [-]
Пример мини-твикера
.
В архиве неупакованный exe и скрипт
Давно не применял, твики от sergeysvirid - те , которыми пользуюсь для себя
Как пример...
Как пример...


Last edited by avalat on 2022-07-06 15:02; edited 3 times in total

Page 3 of 7


Display posts:    

Current time is: 25-May 16:36

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum