dimo70
- Стаж: 7 лет
- Сообщений: 3787
- Репутация:27[+] [-]
- Откуда: BG
|
Привет всем, Возможно ли сделать код, который копирует екзешник и перезапускает систему в сейф мод. После входа в сейф мод код должен запустить екзешника автоматом? Вот именно етот запуск не знаю как можно сделать.
_________________ Подпись отключена за нарушение правил форума
|
dimo70
- Стаж: 7 лет
- Сообщений: 3787
- Репутация:27[+] [-]
- Откуда: BG
|
JuraAD, спасибо, сразу проверяю. второй ребут не проблемма. Только не понял где запускается екзешник после ребута в сейфмод. Вроде в код такое нет.
_________________ Подпись отключена за нарушение правил форума
|
JuraAD
- Стаж: 3 года 5 месяцев
- Сообщений: 86
- Репутация:27[+] [-]
|
AlternateShell это то, что запускается в safemode (обычно cmd.exe) bcdedit /set {current} safeboot minimal это установить дефолтный режим (их там несколько просто safe, с сетью и т.п.) возможно нужно еще таймер задержки меню убрать - типа немедленно (не помню параметр) bcdedit /set {current} safebootalternateshell yes нужно, не нужно не знаю, флаг загрузки AlternateShell (yes/no/убрать - проверь) shutdown /r /t 0 быстрая перезагрузка сохрани файл BCD - чёб не париться с восстановлением... и загрузочную флэху под рукой держи. поисчи в и-нет доки, думаю много таких вопросов есть...
|
dimo70
- Стаж: 7 лет
- Сообщений: 3787
- Репутация:27[+] [-]
- Откуда: BG
|
JuraAD, ок спасибо. Вроде понял.
_________________ Подпись отключена за нарушение правил форума
|
dimo70
- Стаж: 7 лет
- Сообщений: 3787
- Репутация:27[+] [-]
- Откуда: BG
|
Gvint64, да именно одноразовый нужен. Только ето в регистре, а как сделать как батник? Например имеем 1.exe которое одноразово надо запустить в сейфмод минимал из C:\1.exe
_________________ Подпись отключена за нарушение правил форума
|
Gvint64
- Стаж: 4 года 7 месяцев
- Сообщений: 626
- Репутация:72[+] [-]
|
Как-то так. Исправил - должен в сейфе работать.Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "*1" /t REG_SZ /d "C:\1.exe" /f Где-то прочитал что Safemode конфликтует с Быстрым запуском - лучше на время отключать. Docs Run and RunOnce
Последний раз редактировалось: Gvint64 (2021-11-24 13:59), всего редактировалось 4 раз(а)
|
dimo70
- Стаж: 7 лет
- Сообщений: 3787
- Репутация:27[+] [-]
- Откуда: BG
|
Gvint64, спасибо. Быстрый запуск в новое железо почти повсюду запущено.
_________________ Подпись отключена за нарушение правил форума
|
Ander_73
- Стаж: 7 лет 10 месяцев
- Сообщений: 3868
- Репутация:127[+] [-]
|
BalAngel, на всякий случай, а конфиг (file_name.exe.config) такого вида рядом с ехе-файлом не поможет?<?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedRuntime version="v4.0"/> <supportedRuntime version="v2.0.50727"/> </startup> </configuration>
|
cartmenezz
- Стаж: 9 лет 3 месяца
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
Всем привет Задача: * Полуавтоматическое создание ярлыка в меню Пуск\Стандартные * При запуске ярлыка происходит копирование в буфер текста * Текст задается при создании ярлыка * У ярлыка: - сочетание клавиш для быстрого вызова - свернутый в окно запуск В данный момент использую утилиту Shortcutсинтаксис ShortcutShortcut [Version 1.11] Creates, modifies or queries Windows shell links (shortcuts) The syntax of this command is: Shortcut.exe /F:filename /A:C|E|Q [/T:target] [/P:parameters] [/W:workingdir] [/R:runstyle] [/I:icon,index] [/H:hotkey] [/D:description] /F:filename : Specifies the .LNK shortcut file. /A:action : Defines the action to take (C=Create, E=Edit or Q=Query). /T:target : Defines the target path and file name the shortcut points to. /P:parameters : Defines the command-line parameters to pass to the target. /W:working dir : Defines the working directory the target starts with. /R:run style : Defines the window state (1=Normal, 3=Max, 7=Min). /I:icon,index : Defines the icon and optional index (file.exe or file.exe,0). /H:hotkey : Defines the hotkey, a numeric value of the keyboard shortcut. /D:description : Defines the description (or comment) for the shortcut. Notes: - Any argument that contains spaces must be enclosed in "double quotes". - If Query is specified (/A:Q), all arguments except /F: are ignored. - To find the numeric hotkey value, use Explorer to set a hotkey and then /A:Q - To prevent an environment variable from being expanded until the shortcut is launched, use the ^ carat escape character like this: ^%WINDIR^% Examples: /f:"%ALLUSERSPROFILE%\Start Menu\Programs\My App.lnk" /a:q /f:"%USERPROFILE%\Desktop\Notepad.lnk" /a:c /t:^%WINDIR^%\Notepad.exe /h:846 /f:"%USERPROFILE%\Desktop\Notepad.lnk" /a:e /p:C:\Setup.log /r:3 An argument of /? or -? displays this syntax and returns 1. A successful completion will return 0. Упрощенно имею такой батник:@echo off cls cd /d "%~dp0" set "link_dir=%AppData%\Microsoft\Windows\Start Menu\Programs\Accessories" set var=& set /p "var=Enter: "|| GoTo :1 Shortcut.exe /F:"%link_dir%\test.lnk" /A:C /T:"%ComSpec%" /P:"/c @echo off& echo|set /p=%var%| Clip" /R:7 /H:1585) echo. pause exit /b И в принципе все работает, но есть ограничения: - Текст не может начинаться с пробела - Нельзя использовать кавычки и символы: | & < > Самое обидное, что не считая кавычек и начальных пробелов - остальное МОЖНО ОБОЙТИ: Сейчас поле "Объект" созданного ярлыка имеет такое содержимое:C:\Windows\System32\cmd.exe /c @echo off& echo|set /p=ANY_TEXT| Clip Достаточно было бы добиться результата:C:\Windows\System32\cmd.exe /c @echo off& echo|set /p"=ANY_TEXT"| Clip и можно было бы использовать в тексте символы: | & < > Проблема в том, что средствами батника не удается прописать строку в таком виде, Shortcut.exe не дает использовать кавычки внутри параметра (так как кавычками обрамляются сами параметры). Что я уже только не пробовал, бьюсь второй день... PS: наткнулся на вариант создания ярлыка без внешних программ:mshta vbscript:Execute("Set x=CreateObject(""WScript.Shell"").CreateShortcut(""%link_dir%\test.lnk""):x.TargetPath=""%Comspec%"":x.Arguments=""/c @echo off& echo|set /p=%var%| Clip"":x.WindowStyle=""7"":x.HotKey=""CTRL+ALT+1"":x.Save():Close()") Тоже работает, но та же проблема +++ По идее, можно после SET /P сначала записать значение переменной в файл: >"%link_dir%\test.test" echo "%var%" А потом в ярлыке читать из этого файла: Shortcut.exe /F:"%link_dir%\test.lnk" /A:C /T:"%ComSpec%" /P:"/c @echo off&<test.txt Clip" /R:7 /H:1585) Хоть мне бы очень и очень хотелось избежать создания доп файлов, помимо самого ярлыка, но я уже и на это готов пойти. Вот только теперь не могу додумать, как убрать обрамляющие двойные кавычки у записанного текста. А записать без них не получится, так как снова будут проблемы, если в содержимое %var% попадут спецсимволы
|
JuraAD
- Стаж: 3 года 5 месяцев
- Сообщений: 86
- Репутация:27[+] [-]
|
Спецсимволы приходится экранировать: " - " <>& - ^ % - % - иногда приходится удваивать, в зависимости как вызовы происходят и что вызывается... Поэкспериментируй, не знаю каким Shortcut.exe пользуешься... Могу на js написать, vbs не люблю, но смысл тот-же... -) Пример (отсыпаюсь, времени нет)@echo off&setlocal enableextensions enabledelayedexpansion set /p "x0=Enter: " set "x0=%x0:"=""%" set "x0=%x0:<=^<%" set "x0=%x0:>=^>%" set "x0=%x0:&=^&%" set "x0=%x0:^%=^%^%%" echo %x0% endlocal&exit /b 0 mshta - для другого предназначен (приложение с использованием html), используй cscript для js я так пишу - cmd файл@if (0==1) @end /* @echo off&setlocal enableextensions enabledelayedexpansion cscript.exe %0 //E:JScript //Nologo endlocal exit /b 0 */ WScript.Echo("\tok"); и т.д
|
cartmenezz
- Стаж: 9 лет 3 месяца
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
JuraAD, экранировать само собой тоже пробовал, но это не подходит, мне ведь не на экран надо вывести. Допустим я ввел:В ярлык запишется:C:\Windows\System32\cmd.exe /c @echo off& echo|set /p=1^&2| Clip При выполнении этой команды скопируется только: 1 ++++90256 используй cscript для js я так пишу - cmd файл вариант с cscript тоже находил, но с ним что-то незаладилось - сам я этими навыками не владею, а найденный пример у меня нормально не заработал, уже не помню деталей, и ещё вроде бы там не было всех нужных мне параметров ярлыка, добавить не получилось.. хотя даже если бы получилось, там бы я упёрся в ту же проблему - как сделать запись в ярлык с кавычками (...set /p "=%var%%"| Clip) ?
|
cartmenezz
- Стаж: 9 лет 3 месяца
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
Кажется что-то получилось - удалось записать значение переменной в кавычках в файл, а потом перезаписать файл убрав кавычки:@echo off cls cd /d "%~dp0" set "link_dir=%AppData%\Microsoft\Windows\Start Menu\Programs\Accessories" :1 set var=& set /p "var=Enter: "|| GoTo :1 >"%link_dir%\test_1.txt" echo "%var%" for /f "useback delims=" %%G in ("%link_dir%\test_1.txt") do >"%link_dir%\test_1.txt" (echo|set /p=%%G) Shortcut.exe /F:"%link_dir%\test_1.lnk" /A:C /T:"%ComSpec%" /P:"/c @echo off& <test_1.txt Clip" /R:7 /H:1585) echo. pause exit /b по хорошему, наверное, стоит сначала писать в предварительный файл, потом перезаписывать в основной, а потом удалять предварительный... но я пока с этим не заморачивался PS: все еще очень не хотелось бы оставлять дополнительных файлов, помимо ярлыка, так что если у кого-нибудь есть идеи, пожалуйста поделитесь)
|
Страница 65 из 94
Текущее время: 24-Дек 02:23
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|