По роду деятельности мне иногда нужно создавать некий bat-файл с иконкой. Здесь ничего необычного нет – это обычный ехе-шник который запускает скрипт, где я уже пишу всю логику. Получается, такой себе, ярлык для запуска чего-либо.
До сих пор я использовал BatToExe. Но моему антивирусу она не понравилась, а аналогов как-то и не нашлось.
И вот подумал я почему бы не написать самому. Делов то. Нужна программка на сях для запуска батника и к ней прикрутить иконку. Звучит просто. Скачал eclipse-cpp и… обосрался. Полтора дня искал какой-нибудь туториал о том, как иконку там накрутить. Безрезультатно. Но случайно наткнулся на скрипт, который всё делает без этой шлабуды от фонда затмения.
Всё что мне для этого нужно:
1. Скачать и установить компилятор
Качаем установщик MinGW и запускаем его. Если нужно меняем место установки и нажимаем Continue.
Отмечаем для установки mingw-32-base и mingw-gcc-g++.
После этого: Installation -> Apply Changes. В открывшемся окне жмем Apply и ждем пока загрузятся и установятся компоненты.
Когда установка закончена, качаем msys. Думаю, при установке сложностей не возникнет.
Далее обновляем PATH. У меня получилось так: C:\MinGW\bin\;C:\msys\1.0\bin\
2. Написать пару скриптов и код
-
- Создаём папку скажем E:/bat. И там же следующие файлы:
- icon.rc
12#define AppIcon 101AppIcon ICON "exe.ico" - Файл с нужной иконкой exe.ico
- C++ код в файле runBat.cpp:
1234567#include <iostream>using namespace std;int main() {system(".\\test.bat");return 0;} - Тестовый bat-ник test.bat. Например:
123@echo offecho bat has been startedpause - Ну и скрипт для компиляции compile.bat:
1234567@echo offcd E:\batwindres icon.rc ico.oc++ runBat.cpp -cc++ ico.o runBat.o -o runBat.exepause
Когда всё готово запускаем compile.bat и ищем runBat.exe в нашей папке E:\bat.
На мой взгляд очень просто. К тому же скрипт позволяет кастомизировать и автоматизировать создание ехе-шников для многих bat-файлов. Как вариант можно “запихнуть” содержимое bat-файла в срр и при запуске ехе-шника тот бы делал bat-файл в темпе и пускал его. Можно bat-файлы самому размещать в нужном месте, если оно относительно или меняться не будет.
Дальше при желании можно сделать простую UI-ку и получить вполне себе новую тулзу BatToExe (без вирусов).
