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

    NeleGal-38
  • 122
  • Стаж: 9 лет 3 месяца
  • Сообщений: 506
  • Репутация:38

    [+] [-]
  • Откуда: Из леса вестимо
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. Программу делал для себя, выложил на всякий случай, может кому пригодится...
Ссылка на страницу проекта


Последний раз редактировалось: NeleGal-38 (2019-05-09 06:27), всего редактировалось 3 раз(а)

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

    vovan1982
  • 214
  • Стаж: 9 лет 2 месяца
  • Сообщений: 1098
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
NeleGal-38, привет. Интересная штуковина, но нужно доработать, чтобы создавались ярлыки в меню пуск.

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

    NeleGal-38
  • 122
  • Стаж: 9 лет 3 месяца
  • Сообщений: 506
  • Репутация:38

    [+] [-]
  • Откуда: Из леса вестимо
vovan1982, aa
Я вообще планировал чтоб программа была простая. В принципе так и получилось, у неё даже интерфейса нет )))
Так то можно сделать чтоб и в пуск добавлять ярлыки. Но позже сей-час занялся ещё одной программой...

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

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

    [+] [-]
Я тоже делал такую программу, она сграбливает ярлыки в базу txt и делает обратную операцию, типа чтобы восстановить. И дополнительно делал скрипт для автоматического восстановления с LiveCD. Но так и не пользовался автоматическим вариантом, потому что проще заранее сделать ярлыки. А вот ручным автоматом до сих пор пользуюсь, настраиваю комп, потом на основе существующих программ и базы создаю меню, которое переношу на панель задач. В "Пуск" хаос, а в менюшке все упорядоченно по разделам. Делал я прогу и для упорядочивания "Пуск", но в реальности отказался, так как невозможно чётко определить свои критерии сортировки этого хаоса.

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

    NeleGal-38
  • 122
  • Стаж: 9 лет 3 месяца
  • Сообщений: 506
  • Репутация:38

    [+] [-]
  • Откуда: Из леса вестимо
AZJIO, aa
Я сделал чтоб программа делала ярлыки через реестр, так по моему быстрее да и проще... Вот с пуском придётся повозиться, скорее всего прогу нужно будет переписывать

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

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1264
  • Репутация: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


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

Текущее время: 29-Мар 09:27

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


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