Как программно изменить иконку .bat файла?

Я хотел бы знать, как на самом деле установить для значка .bat файла произвольный значок. Как бы я сделал это программно, независимо от языка, который я могу использовать.

Ответов (10)

Решение

Предполагая, что вы имеете в виду командные файлы MS-DOS: поскольку это просто текстовый файл со специальным расширением, .bat файл не хранит собственный значок.

Однако вы можете создать ярлык в .lnk формате, в котором хранится значок.

Вы можете просто создать ярлык, а затем щелкнуть по нему правой кнопкой мыши -> свойства -> изменить значок и просто найти нужный значок. Надеюсь на эту помощь.

Чтобы программно установить значок ярлыка, см. Эту статью, используя SetIconLocation :

Как я могу изменить значок существующего ярлыка ?:

https://devblogs.microsoft.com/scripting/how-can-i-change-the-icon-for-an-existing-shortcut/

Const DESKTOP = &H10&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(DESKTOP)
Set objFolderItem = objFolder.ParseName("Test Shortcut.lnk")
Set objShortcut = objFolderItem.GetLink
objShortcut.SetIconLocation "C:\Windows\System32\SHELL32.dll", 13
objShortcut.Save

Попробуйте конвертер BatToExe. Он преобразует ваш командный файл в исполняемый файл и позволит вам установить для него значок.

попробуйте с shortcutjs.bat создать ярлык:

call shortcutjs.bat -linkfile mybat3.lnk -target "%cd%\Ascii2All.bat" -iconlocation "%SystemRoot%\System32\SHELL32.dll,77"

вы можете использовать переключатель -iconlocation, чтобы указать на значок.

Я предполагаю, что вы говорите о Windows, верно? Я не верю, что вы можете напрямую изменить значок командного файла. Значки встроены в файлы .EXE и .DLL или указаны в файлах .LNK.

Вы можете попробовать изменить ассоциацию файлов, но этот подход может отличаться в зависимости от версии Windows, которую вы используете. Это связано с реестром в XP, но я не уверен насчет Vista.

Значок, отображаемый оболочкой (проводником) для командных файлов, определяется ключом реестра.

HKCR\batfile\DefaultIcon

который на моем компьютере

%SystemRoot%\System32\imageres.dll,-68

Вы можете установить его на любой понравившийся значок.

Однако это изменит значки всех командных файлов (если они не имеют расширения .cmd ).

Один из способов добиться этого:

  1. Создайте исполняемый файл Jar
  2. Создайте командный файл, чтобы запустить указанную выше банку и запустить настольное приложение Java.
  3. Используйте конвертер Batch2Exe и конвертируйте в командный файл в Exe.
  4. Во время вышеуказанного преобразования вы можете изменить значок на любой по своему усмотрению (должен иметь действительный файл .ico)
  5. Поместите ярлык для указанного выше exe на рабочий стол.

Теперь ваша java-программа может быть открыта необычным способом, как и любые другие приложения MSWindows.! :)

Вы можете использовать Bat to Exe конвертер отсюда:

https://web.archive.org/web/20190304134631/http://www.f2ko.de/en/b2e.php

Это преобразует ваш командный файл в исполняемый файл, после чего вы можете установить значок для преобразованного файла.

Если вам нужен значок для командного файла, сначала создайте ссылку для командного файла следующим образом

Щелкните правой кнопкой мыши в папке окна, где вы хотите установить ссылку, выберите «Создать» -> «Ярлык», затем укажите, где находится файл .bat.

Это создаст нужный вам файл .lnk. Затем вы можете указать значок для ссылки на странице ее свойств.

Здесь доступны несколько красивых иконок:

% SystemRoot% \ System32 \ SHELL32.dll

Примечание. Для меня в Windows 10:% ​​SystemRoot% == C: \ Windows \

Другие значки находятся здесь: C: \ Windows \ System32 \ imageres.dll

Также вы можете захотеть, чтобы первая строка в командном файле была «cd ..», если вы храните свои командные файлы в подкаталоге bat на один уровень ниже того места, где должны выполняться ваши ярлыки.

Я рекомендую использовать конвертер BAT в EXE для ваших желаний