Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Вопрос Добавлено: 04.11.03 20:01  

Автор вопроса:  cresta

Здравствуйте все.

Кто может подсказать, как прилепить к файлу,

являющемуся приложением программы, иконку этой программы?

Ну вроде того, как это делает Winamp, изменяя иконку

аудиофайла на свою

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #1
Добавлено: 04.11.03 22:26

Это сообщение проверка на то, могу ли я вообще отвечать!

Ответить

Номер ответа: 2
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #2
Добавлено: 04.11.03 22:29

Вот пример, который позволяет менять все настройки файла, в том числе и иконку:

------------------
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const HKEY_CLASSES_ROOT = &H80000000

Public Sub AssociateMyApp(ByVal sAppName As String, ByVal sEXE As String, ByVal sExt As String, Optional ByVal sIcon As String)
Dim lRegKey As Long
Call RegCreateKey(HKEY_CLASSES_ROOT, sExt, lRegKey)
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sAppName, Len(sAppName))
Call RegCloseKey(lRegKey)
Call RegCreateKey(HKEY_CLASSES_ROOT, sAppName & "\Shell\Open\Command", lRegKey)
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sEXE, Len(sEXE))
Call RegCloseKey(lRegKey)
If Len(sIcon) Then
Call RegCreateKey(HKEY_CLASSES_ROOT, sAppName & "\DefaultIcon", lRegKey)
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sIcon, Len(sIcon))
Call RegCloseKey(lRegKey)
End If
End Sub

Private Sub Command1_Click()
AssociateMyApp "My New File App", "C:\File.exe %1", ".txt", "C:\File.exe,-1"
End Sub
примечание: смайл может быть не в косяк, я сижу без отображения картинок.

Ответить

Номер ответа: 3
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #3 Добавлено: 05.11.03 01:52

За примерчик спасибо ++

А смайл действительно не в тему

Ответить

Номер ответа: 4
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #4 Добавлено: 05.11.03 05:31

Что-то не очень понятно:

Аудиофайлы были приложением NeroMIX и соответственно

иконки на них висели от Nero, после запуска MyApp

часть иконок сменились на MyIcon, а часть осталась

от Nero, вперемешку в одной папке???!!!

А после запустил Nero, посмотрел в его Preferences-

ассоциации с mp3 сняты.Выключил Nero и все оставшиеся иконки

сразу поменялись на MyIcon. Что за прикол такой, не понятно

И что за параметр такой -1 в "C:\File.exe,-1" это типа номера

иконки или что? И можно ли указывать иконку непосредственно,

например "C:\Folder\Icon1.ico"

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 06.11.03 02:04

Блин, все типы медиа переделал , а AVI что-то упирается,

Иконка приклеилась а вызывается по-прежнему другая программа

(wmplayer).Может у avi какие-то свои приколы???

Ответить

Номер ответа: 6
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #6
Добавлено: 06.11.03 02:25

Прикол по-моему не у ави, а у WMPlayer'а - он очень цепучий к файлам. Выход такой: или отключи вручную в параметрах WM, или (если хочешь программно) отсканируй RegShot'ом реестр, найди, что изменяет WM (при изменении настроек) и в будущем переключай эту опцию из своей проги.

Удачи...

Ответить

Номер ответа: 7
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #7 Добавлено: 06.11.03 04:43

ОК, только напоследок дурной вопрос, а кто есть

RegShot?? Просьба громко не смеяться, я этот VB три месяца

только как установил,ничего толком не знаю

Ответить

Номер ответа: 8
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #8
Добавлено: 07.11.03 20:16
RegShot это вообще левая (не имеющая отношения к VB) прога, которая как бы фотографирует (отсюда и название) реестр. Если сделать два снимка (до и после изменений), а потом сравнить - ты естественно найдешь, что прога намутила в реестре. Чаще всего проги сохраняют настроцки в реестр, т.е. ты всегда можешь и сам их (программно) подправить. Иногда, правда, и ini-файл засовывают (WinAmp), но и он далеко не прячется - валяется где-нибудь возле экзешника, но на крайняк можно определить с помощью FileMon (тоже левачок). Кстати альтернатива RegShot - RegMon. Только он постоянно сканирует реестр на обращение (функция RegNotifyChangeKeyValue), а в случае настроек проги проще использовать всё-таки RegShot

Ответить

Номер ответа: 9
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #9 Добавлено: 07.11.03 23:20

Все понял, спсиба очень даже!!!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам