Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22

Как включить в проект, состоящий только из одного модуля, иконку?

19.09.2024, 22:02. Показов 1699. Ответов 27

Студворк — интернет-сервис помощи студентам
Как включить в проект, состоящий только из одного модуля, иконку?
Попробовал добавить форму и в её свойствах включил иконку, но после удаления формы из проекта, пропала иконка.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.09.2024, 22:02
Ответы с готовыми решениями:

Как открыть проект в Android Studio, состоящий из одного модуля app
Здравствуйте. Часто сталкиваюсь с примерами кода, в которых выложен только модуль app "без всего", например такой. Как из него...

Как сделать и включить в проект иконку приложения
Здравствуйте! В win 7 многие приложения имеют иконки, которые не теряют качество при масштабировании (векторные скорее всего). Как...

Как включить иконку в программу?
Необходимо включить иконку в программу, т.е. чтобы она не использовалась из директории файла, а хранилась внутри программы. Написал код: ...

27
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
20.09.2024, 03:18
Лучший ответ Сообщение было отмечено Argus19 как решение

Решение

Если форма в проекте не используется вообще, то стандартными средствами VB6 для исполняемого EXE файла поставить иконку не получится, будет только стандартная, поэтому Вам придётся самому менять иконку напрямую через редактор ресурсов. Обычно люди используют для этого программу Resource Hacker.

Если создание окна в программе, на каком-то из этапов всё же планируется, то иконку Вам придётся добавлять программным кодом. Я уже ни раз приводил пример этого кода.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
 
Private Declare Function ExtractIconEx Lib "shell32" Alias "ExtractIconExW" (ByVal lpszFile As Long, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
 
Private Const ICON_SMALL = 0
Private Const ICON_BIG = 1
Private Const WM_SETICON = &H80
 
Dim hIconSmall As Long
Dim hIconLarge As Long
 
Private Sub Form_Load()
    Dim IconPath As String
    
    IconPath = App.Path & "\" & App.EXEName & ".exe"
    
    'Me.Icon = LoadPicture(IconPath) ' Не создаёт TMP, но загружает плохо
    
    ExtractIconEx StrPtr(IconPath), 0, hIconLarge, hIconSmall, 1 ' Загрузить и большую и маленькую иконку
    SendMessage hwnd, WM_SETICON, ICON_SMALL, ByVal hIconSmall ' Установить маленькую иконку
    SendMessage hwnd, WM_SETICON, ICON_BIG, ByVal hIconLarge ' Установить большую иконку
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    DestroyIcon hIconSmall
    DestroyIcon hIconLarge
End Sub
Добавлено через 1 минуту
И кстати хочу отметить, что иконку в программе лучше всего создавать самому программным кодом, так как при этом программа не будет создавать временный TMP-файл. Во всех же остальных случаях любая программа на VB6 которая имеет иконку в форме, отличную, от стандартной, создаёт TMP-файл.
2
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
20.09.2024, 06:17  [ТС]
Спасибо.
Цитата Сообщение от HackerVlad Посмотреть сообщение
Если создание окна в программе, на каком-то из этапов всё же планируется,
Нет. Программа будет запускаться раз в неделю (планировщик задач Windows), проверять содержимое файла Excel в невидимом режиме, если криминала не будет обнаружено, то закрывать файл и прекращать работу. Если же будет обнаружение, то строки пометятся жёлтым цветом Excеl книга станет видимой и программа закончит работу без закрытия файла.
Судя по всему, лучше обойтись без иконки.
0
Модератор
10055 / 3900 / 884
Регистрация: 22.02.2013
Сообщений: 5,851
Записей в блоге: 79
21.09.2024, 22:19
Argus19, с помощью RC.exe компилируешь файл:
Code
1
WINICO ICON [I]путь_к_файлу.ico[/I]
Полученный RES файл добавляешь к проекту через Resource Editor.
3
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
22.09.2024, 06:40  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Полученный RES файл добавляешь к проекту через Resource Editor.
Где будет находиться полученный файл?
У меня в проекте уже есть файл ресурсов со звуком.
Как поступить в таком случае?
0
Эксперт по электронике
6806 / 3233 / 335
Регистрация: 28.10.2011
Сообщений: 12,619
Записей в блоге: 7
22.09.2024, 10:23
Данные должны быть в одном res файле.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
22.09.2024, 17:42  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Данные должны быть в одном res файле.
И исходник и файл звука и иконка?
Командная строка отказывается запустить RC.exe даже при указании полного пути к нему. Если его запустить из папки, то как к нему добавить путь к иконке?
0
Эксперт по электронике
6806 / 3233 / 335
Регистрация: 28.10.2011
Сообщений: 12,619
Записей в блоге: 7
22.09.2024, 17:59
Цитата Сообщение от Argus19 Посмотреть сообщение
И исходник и файл звука и иконка?
Исходник это код, а не ресурс.
1
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
22.09.2024, 18:51  [ТС]
locm,
Цитата Сообщение от Argus19 Посмотреть сообщение
Командная строка отказывается запустить RC.exe даже при указании полного пути к нему. Если его запустить из папки, то как к нему добавить путь к иконке?
Я не понял, почему файл ресурсов с загруженной в него иконкой не годится? И как правильно запустить RC.exe?
Все мои попытки неудачны.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
22.09.2024, 21:13
Я тоже помню пытался прикладывать файл ресурсов к проекту с иконкой и у меня тоже не получлось. Может как-то и можно, но я не стал долго мучиться. Проще менять иконку через программу Resource Hacker. Файлы RES можно так же компоновать с помощью программы Resource Hacker.
0
Модератор
10055 / 3900 / 884
Регистрация: 22.02.2013
Сообщений: 5,851
Записей в блоге: 79
22.09.2024, 21:21
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Цитата Сообщение от Argus19 Посмотреть сообщение
У меня в проекте уже есть файл ресурсов со звуком.
Вот пример:
Code
1
2
3
4
5
6
7
8
9
1 24 manifest.xml
1 23 "..\\Help\\FunctionsReference.html"
WINICO ICON winico.ico
101 ICON 101.ico
102 ICON 102.ico
103 ICON 103.ico
104 ICON 104.ico
105 ICON 105.ico
106 ICON 106.ico
Запускается так:
Code
1
"C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\RC.EXE" /v /r /fo veloz.RES veloz.RC
2
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
22.09.2024, 22:19  [ТС]
У меня файл rc.exe находится:
c:\Program Files\Microsoft Visual Studio\VB98\Wizards\RC.EXE
Как я понимаю:
veloz.RES veloz.RC
это 2 результирующих файла, которые будут получены в результате работы программы? И где путь к файлу иконки?
На странице:
https://learn.microsoft.com/ru... -utilities
в описании программы RC.EXE ни чего нужного не нашёл.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
22.09.2024, 23:10
Лучше бы файл ресурсов приложили для примера с иконкой. Чтобы проверить будет ли при компиляции EXE меняться эта иконка.

Добавлено через 45 секунд
А вот в файле ресурсов изменить эту иконку на другую уже раз плюнуть с помощью программы Resource Hacker.

Добавлено через 1 минуту
Через командную строку, через утилиты а-ля MS-DOS, в любом случае неудобно создавать файлы ресурсов. Если есть красивая удобная графическая программа.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
23.09.2024, 05:46  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
Лучше бы файл ресурсов приложили для примера с иконкой. Чтобы проверить будет ли при компиляции EXE меняться эта иконка.
При компиляции остаётся стандартная иконка VB.
А файл вот:
Вложения
Тип файла: zip Project1.zip (98.2 Кб, 6 просмотров)
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
23.09.2024, 13:23
Argus19, я это говорил не вам, а умным людям которые раздают советы эти, что мол надо файл ресурса с иконкой прикладывать

Добавлено через 29 секунд
я лично сколько раз ни пытался прикладывать файл ресурсов с иконкой ничего у меня не получалось

Добавлено через 8 минут
IconGroup должно быть 1 для ресурса

Добавлено через 3 минуты
Но как только я это делаю сам VB6 выдаёт ошибку мол неправильный формат ресурса

Добавлено через 6 минут
Обращаюсь ко всем умным людям, если вы такие крутые приложите проект, где это будет работать вместе с файлом ресурсов.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
23.09.2024, 16:08  [ТС]
HackerVlad, я жду ответа от The trick, он всегда даёт точные рекомендации. До сих пор ошибок не было. Когда получится, приложу проект.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
23.09.2024, 16:15
Argus19, по мне так это невозможно
0
Модератор
10055 / 3900 / 884
Регистрация: 22.02.2013
Сообщений: 5,851
Записей в блоге: 79
23.09.2024, 21:57
Лучший ответ Сообщение было отмечено HackerVlad как решение

Решение

Вот проект. Что там может не получится я хз.
Вложения
Тип файла: rar NoFormIcon.rar (77.6 Кб, 14 просмотров)
Тип файла: zip NoFormIcon.zip (76.5 Кб, 3 просмотров)
1
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,526
Записей в блоге: 22
24.09.2024, 06:22  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Вот проект
Вы умудрились таким способом вставить иконку с 32bpp. При попытке добавить такую иконку, например, в форму IDE капризничает и не принимает её.
В .bat файле написано:
"C:\Program Files (x86)\Microsoft Visual Studio\VB98\Wizards\RC.EXE" /v /r /fo icon.RES icon.RC
Если RC.EXE запускается из указанной папки, то где создаются файлы, и как туда попадает изображение иконки?
The trick, разъясните, пожалуйста, последовательность действий и что и как получается. Что-то я недопонимаю.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.09.2024, 12:25
The trick, настоятельно прошу перезалить этот архив в формат ZIP, больше чем уверен что у многих людей не открывается этот архив RAR. Мало того, у меня выдаёт ошибку в архиве.

Добавлено через 1 минуту
И настоятельно прошу всегда всё заливать в ZIP на будущие. Потому что RAR много кто не может открыть. А ZIP везде открывается сам по себе.

Добавлено через 1 минуту
А ведь я так хотел посмотреть на это чудо. Для меня это вообще из разряда невозможного. С трудом вериться чтобы икноку можно было поменять...

Добавлено через 6 минут
Я уже давно прочитал эту статью https://click-or-die.ru/2018/1... henie/#new и давно уже как несколько лет упаковываю всё только в ZIP. Хотя раньше лет 5-10 назад я тоже думал что RAR это супер.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.09.2024, 12:25
Помогаю со студенческими работами здесь

Как из одного модуля добраться к языковым переменным другого модуля? (Joomla 2.5)
Хочу сделать регистрацию в модальном окне. Для этого делаю модуль вставки html и вставляю форму регистрации под футер. Но мне нужно как-то...

Получить массив, состоящий только из одного элемента, применив несколько указанных правил
Здравствуйте, думаю для многих задача простая, вот я не понимаю где тут ошибка, для каких-то тестов не работает, точнее там где надо...

Получить массив, состоящий только из одного элемента, применив несколько указанных правил
Помогите решить задачу ограничение по времени на тест 1 секунда ограничение по памяти на тест 256 мегабайт ввод стандартный...

Как добавить иконку в проект в оригинальном качестве
Всем привет! Я тока начинаю, поэтому прошу прощения за глупые вопросы.. Подскажите пжлста, как добавить норм иконку в проект? Скачал...

Как изменить иконку всех файлов одного расширения в реестре
Добрый день. Установил на днях Freemind. Иконки файлов карт выглядят как *.exe Как можно поменять иконку всех *.mm без установки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru