NeleGal-38
  - Longevity: 10 years
- Posts: 506
- REPUTATION:38[+] [-]
- Location: Из леса вестимо
|
CreateShortcut (x86/x64) (Ru, En) [12/04/2019]
Версия программы: 1.0 Онлайн обновление: Нет Официальный сайт: NeleGal-EditionСтраница программы: CreateShortcutКанал: Youtube Язык программирования: Delphi Язык интерфейса: Нет Лечение: не требуется Операционная система: Windows XP, 7, 8x, 10, WinPE Описание программы:
Программа для создания ярлыков при загрузке в WinPE. Создание ярлыков происходит при запуске программы. Программа не содержит интерфейса.
Установка, настройка:1 - Откройте Boot.wim файл программой 7zip, скопируйте файл CreateShortcut.exe в папку Boot.wim\Windows\System32\CreateShortcut.exe 2 - Дополните запись в файл Boot.wim\Windows\System32\PEcmd.ini строку. EXEC %windir%\system32\CreateShortcut.exe 3 - Создайте файл ProgPE.ini в корне диска загрузочного накопителя с которого будут запускаться программы. В этом файле создайте следующую запись: Пример [x86] SDNE\WinstAll.exe SDNE\Program\PassReset32.exe SDNE\Program\CrystalDiskInfo\DiskInfo32.exe. [x64] SDNE\WinstAll.exe SDNE\Program\PassReset64.exe SDNE\Program\CrystalDiskInfo\DiskInfo64.exe. Рассмотрим запись подробнее. Секции [x86] и [x64] для запуска приложений в WinPEx86 или WinPEx64 соответственно. Ниже строки - это пути к программам которые будут запускаться, их нужно прописывать без буквы диска.Принцип работы программыПри загрузке WinPE скрытно запускается программа CreateShortcut, она ищет в корне всех дисках файл ProgPE.ini. Далее определяет какая версия WinPE загружена х86 или х64, и считывает соответствующую секцию в файле ProgPE.ini. Если программа прописанная в строке под нужной секцией обнаружена, то программа создаёт для неё ярлык на рабочем столе. После создания всех ярлыков программа закрывается. P.S. Программу делал для себя, выложил на всякий случай, может кому пригодится... Ссылка на страницу проекта
Last edited by NeleGal-38 on 2019-05-09 06:27; edited 3 times in total
|
NeleGal-38
  - Longevity: 10 years
- Posts: 506
- REPUTATION:38[+] [-]
- Location: Из леса вестимо
|
vovan1982,  Я вообще планировал чтоб программа была простая. В принципе так и получилось, у неё даже интерфейса нет ))) Так то можно сделать чтоб и в пуск добавлять ярлыки. Но позже сей-час занялся ещё одной программой...
|
AZJIO
  - Longevity: 7 years 1 month
- Posts: 1321
- REPUTATION:127[+] [-]
|
Я тоже делал такую программу, она сграбливает ярлыки в базу txt и делает обратную операцию, типа чтобы восстановить. И дополнительно делал скрипт для автоматического восстановления с LiveCD. Но так и не пользовался автоматическим вариантом, потому что проще заранее сделать ярлыки. А вот ручным автоматом до сих пор пользуюсь, настраиваю комп, потом на основе существующих программ и базы создаю меню, которое переношу на панель задач. В "Пуск" хаос, а в менюшке все упорядоченно по разделам. Делал я прогу и для упорядочивания "Пуск", но в реальности отказался, так как невозможно чётко определить свои критерии сортировки этого хаоса.
|
NeleGal-38
  - Longevity: 10 years
- Posts: 506
- REPUTATION:38[+] [-]
- Location: Из леса вестимо
|
AZJIO,  Я сделал чтоб программа делала ярлыки через реестр, так по моему быстрее да и проще... Вот с пуском придётся повозиться, скорее всего прогу нужно будет переписывать
|
AZJIO
  - Longevity: 7 years 1 month
- Posts: 1321
- REPUTATION:127[+] [-]
|
NeleGal-38 Кстати, помню что скрипт работал медленно на автозагрузке по сравнению с вариантом который был через реестр, но я не разгадал причины, не думаю что прочитать файл базы ярлыков в несколько килобайт как то тормозил систему. В обычной ОС он отрабатывает мгновенно (база). код то простейший#Include <File.au3> ; в каталоге AutoIt3.exe должна быть папка Include с файлом File.au3 AutoItSetOption("TrayIconHide", 1) ;скрыть в системной панели индикатор AutoIt Global $aRecords ; читаем бэкап-файл в массив If Not _FileReadToArray(@ScriptDir&'\base_lnk.txt',$aRecords) Then MsgBox(4096,"Ошибка", "Ошибка чтения массива", @error) Exit EndIf ; В массиве $aRecords будут содержаться все строки файла... ; В массив $aLnk читается каждая строчка состоящая из данных ярлыка $aSet = StringSplit($aRecords[1], "|") $restore_lnk2 = $aSet[1] ; установить путь извечения из бэкапа в первой строке For $i=3 To $aRecords[0] ; решение проблемы пустых строк, пропускать цикл для пустой строки If $aRecords[$i]<>'' Then $aLnk = StringSplit($aRecords[$i], "|") ; проверка, если ярлык содержит "\", то это путь и нужно создать каталог If StringInStr($aLnk[1], '\') > 0 Then $aDirlnk=StringRegExp($aLnk[1], "(^.*)\\(.*)$", 3) If Not FileExists($restore_lnk2&'\'&$aDirlnk[0]) Then DirCreate($restore_lnk2&'\'&$aDirlnk[0]) EndIf ; создание ярлыка FileCreateShortcut($aLnk[2],$restore_lnk2&'\'&$aLnk[1]&'.lnk',$aLnk[3],$aLnk[4],$aLnk[5],$aLnk[6],'',$aLnk[7]) EndIf Next
|
Current time is: 26-Mar 03:33
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
|
|