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

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

    [+] [-]
ID процесса можно узнать при его запуске через EXEC
TEAM EXEC -pid:&pid notepad.exe|WAIT *%&pid%|MESS. %&pid% //*PID процесса notepad.exe
Есть, правда, определённые ограничения: например, запуск папки в проводнике "explorer.exe My_path" ОС преобразует в вызов отдельного окна основного проводника, и отдельного процесса в памяти не будет. Соответственно, ID будет неверным. А вот если запускается программа с уникальным именем, тогда работает без проблем, как EXEC с ключом -pid, так и поиск по процессам (FIND --pid).-
92876чтоб производные процессы тоже убивались?
В общем случае это называется "дочерние" процессы. Вначале нужно узнать ID "родительского процесса" - в данном случае Totalcmd.exe. Потом получаем (в переменную %&L%) полный список запущенных процессов: FIND --pid*@ &&L,
Потом в этом списке ищем по второй колонке (в ней указан ID "родительского процесса") совпадение, и получаем имя утилиты, запущенной от имени Totalcmd.exe
Вот как примерно выглядит кусок списка (5248 - это ID Totalcmd.exe, и он же во второй колонке запущенного из-под Totalcmd.exe блокнота):
5248 1784 15260 3744024 132890774372140879 C:\Program Files\Total Commander\Totalcmd.exe "C:\Program Files\Total Commander\Totalcmd.exe"
4000 5248 4824 312002 132890774372140879 C:\Windows\System32\notepad.exe "C:\Windows\System32\notepad.exe"-Насколько я понял задачу, нужно удалить не всё, что запущено из Totalcmd.exe, а всё, что есть в каталоге, где лежит сам Totalcmd.exe. Тогда проще все процессы проанализировать на предмет пути к папке Totalcmd.exe (если путь к этой папке уникален, из самораспаковки - например, %Temp%\My_TC), тогда можно просто убить всё, что запущено из %Temp%\My_TC и её подкаталогов.

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

    xnik
  • 19473
  • Стаж: 6 лет
  • Сообщений: 486
  • Репутация:11

    [+] [-]
  • Откуда: СССР
conty9 aa
Скажите пожалуйста что это конструкция делает, в плане PECMD? И зачем это для Acronis-a нужно?
TEAM %&te%\backup_worker.exe=%CurDir%\backup_worker.exe|EXIT

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

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

    [+] [-]
xnik, это нужно для регистрации акронисов
ENVI &&xe=HKLM\SOFTWARE\Acronis //указать в переменной %&xe% ключ реестра для регистрации
...
ENVI &&te=REGI $%&xe%\CommonComponents //присвоить переменной %&te% функцию регистрации
FORX %CurDir%\*.dll,&&de,0,TEAM FNAM -ext &&ne=%&de%|%&te%\%&ne%=%&de% //прошерстить папку с акронисами и зарегистрировать в реестре все dll-ки
TEAM %&te%\backup_worker.exe=%CurDir%\backup_worker.exe|EXIT //зарегистрировать в реестре backup_worker.exe|выход из скрипта

Этот кусочек PECMD-скрипта выполняет то же самое, что и такой кусок CMD-скрипта:

Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "archive3.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\archive3.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "archive3_adapter.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\archive3_adapter.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "astor_client.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\astor_client.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "boot_assist.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\boot_assist.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "curl.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\curl.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "disk_backup.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\disk_backup.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "expat.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\expat.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "file_backup.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\file_backup.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "icu38.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\icu38.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "kb_link.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\kb_link.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "libcrypto10.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\libcrypto10.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "libssl10.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\libssl10.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "logging.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\logging.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "mspack.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\mspack.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "oem_doc_source.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\oem_doc_source.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "onig.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\onig.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "pcs_io.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\pcs_io.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "re2.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\re2.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "resource.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\resource.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "rpc_client.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\rpc_client.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "thread_pool.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\thread_pool.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "tib_api.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\tib_api.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "tib_mounter.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\tib_mounter.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "ulxmlrpcpp.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\ulxmlrpcpp.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "winpthreads4.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\winpthreads4.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "zstd.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\zstd.dll" /f
Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "backup_worker.exe" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\backup_worker.exe" /f
-На всякий случай уточню: PECMD может оперировать локальными переменными. Использовать эти переменные можно, указав режим их использования... либо, что намного проще - по имени переменной. Когда переменная начинается с двойного символа && (например, &&te) - это именно локальная переменная. При этом считываеть её значение нужно с одним &, т.е., %&te%. Преимущество такой переменной - она обрабатывается только в пределах одной программы (подпрограммы), при вызове другой - сразу очищается/теряется. В общем, к такому использованию очень привыкаешь со временем, хотя сначала ничего не понятно. Главное - запомнить, при назначении &&, а при считывании &.

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

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

    [+] [-]
93011Всем здравствуйте
Пожалуйста, помогите
Как сделать умно такое
Если есть файл 78setup.wcs или если есть файл 78setup.txt то выполнить/вызвать процедуру/функцию 78setup_wcs_script_x86_x64_Run, иначе выполнить/вызвать процедуру/функцию 78setup_Test
Я пробовал такое - не работает
IFEX [ 78setup.wcs | 78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!78setup_Test
Спасибо.
IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!LOAD 78setup_Test

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

    SharkyEXE
  • 16220
  • Стаж: 7 лет 6 месяцев
  • Сообщений: 51
  • Репутация:1

    [+] [-]
Прошу прощения, будьте так любезны, научите, а чем отличается или не отличается CALL и LOAD
IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!LOAD 78setup_Test
Когда у меня в коде вот такое
_SUB 78setup_wcs_script_x86_x64_Run
ITEM -font:14 ,L112T200W170H25,78setup (wcs script),TEAM KILL \%SelSet%|LOAD 78setup.txt
_END
_SUB 78setup_Test
ITEM -font:14 ,L112T200W170H25,78setup (wcs script),TEAM KILL \%SelSet%|LOAD 78setup.txt
_END

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

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

    [+] [-]
А почитать справку? Я ведь всё перевёл - пользуйтесь!
CALL - Команда вызова функции или подпроцесса DLL (т.е., того, что _SUB).
LOAD - Команда для поочередного выполнения команд из конфигурационного файла (скрипта), т.е., вызов внешнего файла.
В данном случае должно быть дважды CALL (я думал, что 78setup_Test - это внешний скрипт)
IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!CALL 78setup_Test
зы: CALL можно упускать, т.е., допустимо и так:IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],78setup_wcs_script_x86_x64_Run!78setup_Test

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

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

    [+] [-]
93048conty9, а возможно сделать средствами PECMD современную утилиту для автоисправления проблем стартирования винды, которая может разрешить проблем с загрузки как с UEFI, так и по старинке? Я знаю что таких утилит много, но как то совсем неудобно с ними работать. Нужно все ручками делать, читать сложные тексты и т.н. А с PECMD хорошо получается все.
У виетнама увидел что то такое, но там язык совсем непонятный. Я читал ваши тексты про загрузчиков. Не так уж просто все это. Видимо вам будет виднее как сделать.
Я сейчас пользую техобслуживание из WInst от Ander_73, чтоб возстанавливать загрузку винды, но не знаю, может быть лучше сделать как отдельную утилиту. aa
PECMD - всего лишь инструмент, который позволяет реализовать какой-то свой алгоритм. Вот именно алгоритма такой "утилиты" у меня нет. Как и нет вИдения того, как это вообще можно реализовать.

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

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
conty9, понял, спасибо. aa

_________________
Подпись отключена за нарушение правил форума

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

    Xemom1
  • 175
  • Стаж: 9 лет
  • Сообщений: 862
  • Репутация:88

    [+] [-]
dimo70,
Я не пойму, а чем BcdGui не устраивает.?
Там только выбрать куда и какой режим, выставить язык и все? ar

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

    loban_ser
  • 17796
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 577
  • Репутация:24

    [+] [-]
Xemom1,
Пока пальцем не тыкнешь ab

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

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
Xemom1, BCD_BOOT_GUI пользую тоже. Иногда не помогает и не могу понять почему. Может надо что то добавить, не знаю. bn
А иначе утилитка любимая. Много раз выручала. Я даже в мою сборку на видном месте поставил. ab az

_________________
Подпись отключена за нарушение правил форума

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

    Xemom1
  • 175
  • Стаж: 9 лет
  • Сообщений: 862
  • Репутация:88

    [+] [-]
dimo70,
Там стандартные microsoft команды, используется bcdboot.exe.

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

    SharkyEXE
  • 16220
  • Стаж: 7 лет 6 месяцев
  • Сообщений: 51
  • Репутация:1

    [+] [-]
Всем здравствуйте
Пожалуйста, помогите сделать по умному
Вариант 1) Вот если так, то отлично работает
TEAM DISP W800 H600|LOGO %WinDir%\logo.jpg
TEAM IFEX %WinDir%\logo.jpg, LOGO|IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt
Вариант 2) Если сделать так, то не работает показ картинки - файла logo.jpg
DISP W800 H600
TEAM IFEX %WinDir%\logo.jpg, LOGO|IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt
Вариант 3 Если сделать так, то не работает показ картинки - файла logo.jpg
DISP W800 H600
IFEX %WinDir%\logo.jpg, LOGO|IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt
Пожалуйста, научите, как сделать по умному, чтобы заработало Вариант 1) и/или Вариант 2)
conty9
Здравствуйте
Я без претензий к кому-то, у меня от этого телега не поедет точно, вот есть файл PECMD.ini, там прописано
TEAM NUMK 0|EXEC *resolution.cmd 1024 768|LOGO %WinDir%\logo.jpg
Но физически файла resolution.cmd нету
Я Вас очень прошу, научите, как сменить разрешение на 800*600 способом, отличным от
DISP W800 H600
Просто когда я загружаюсь как обычная установка, строка
DISP W800 H600
работает отлично, разрешение ставится как 800*600
Но если я гружусь как UEFI, код
DISP W800 H600
не работает, разрешение ставится 1024*768
Спасибо.

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

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

    [+] [-]
SharkyEXE, команда LOGO без параметров ОТКЛЮЧАЕТ лого. Правильно должно быть так:
TEAM DISP W800 H600|IFEX %WinDir%\logo.jpg,LOGO %WinDir%\logo.jpg
IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt
Вариант 1 должен бы включить лого и сразу же его выключить. А вариант 2 - выключить, даже не включая. В варианте 3 пропущена команда группы TEAM, так что вообще неверный синтаксис.
По поводу resolution.cmd - в старых сборках для смены разрешения использовался скрипт resolution.cmd вместе с утилитой dccmd.exe. В ядрах Next я от этого отказался, смена разрешения производится средствами PECMD. Возможно, в некоторых ядрах обычной 2k10 остались "хвосты", я просто больше не интересуюсь этой сборкой, и не хочу заниматься адаптацией её ядер.
Почему не работает DISP W800 H600 под UEFI - не знаю, возможно, это разрешение вообще не поддерживается в этом режиме. Думаю, просто нужно после UEFI-загрузки поэкспериментировать с параметрами команды DISP.

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

    SharkyEXE
  • 16220
  • Стаж: 7 лет 6 месяцев
  • Сообщений: 51
  • Репутация:1

    [+] [-]
conty9
Здравствуйте.
По поводу 1го вопроса - спасибо за науку
А вот по поводу 2го вопроса - я Вас очень прошу, напишите, как мне "поэкспериментировать с параметрами команды DISP для UEFI", мол, мне просто надо разрешение 800*600 что в UEFI, что в обычном режиме (в обычном режиме DISP W800 H600 100% отлично работает, я не могу знать причину, тоже самое железо, но в UEFI DISP W800 H600 не работает, в плане при команде DISP W800 H600 в UEFI разрешение осталось 1024*768

Страница 12 из 27


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

Текущее время: 23-Ноя 15:52

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


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