View previous topic :: View next topic |
Author |
Message |
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Mon Apr 24, 2006 03:55 Post subject: Свои иконки у папок |
|
|
2All
В папке «c:\Documents and Settings\Имя_Профиля\» есть директории(Recent и Избранное) у которых свои иконки. Например у избранного иконка в виде звездочки. В нутри папки находиться файл «Desktop.ini» следующего содержания:
Code: |
[.ShellClassInfo]
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-173
LocalizedResourceName=@shell32.dll,-12693
|
Заставить изменить иконку у другой папки путем копирования этого файла не получается. Нужно что-то сделать еще? Или у произвольных папок нельзя менять иконку. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Apr 24, 2006 10:25 Post subject: |
|
|
Надо еще установить у папки атрибут "Системный" или "Только для чтения". _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Mon Apr 24, 2006 11:24 Post subject: |
|
|
2Batya
Атрибут системный не подходит так как ТС скрывает скрытые и системные файлы вместе => папка будет скрыта.
А что значит атрибут только для чтения для папки. Если поставить такой атрибут для файла то в него нельзя будет писать, только читать. Но в такую папку можно писать/записывать, какой смысл тогда в этом параметре для папки. _________________ Когда ангелу обрезают крылья, он учится летать на метле... |
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Mon Apr 24, 2006 11:55 Post subject: |
|
|
А так оказывается прикольно иметь свои иконки у папок.
Немного разобрался в данном коде.
Code: |
[.ShellClassInfo]
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-173
LocalizedResourceName=@shell32.dll,-12693
|
IconFile= путь до того места где храниться иконка, может быть ехе, ico, icl.
IconIndex=- номер иконки. Но вот номер иконки не соответствует номеру значка, который показывается при настройке кнопки в панели инструментов.
А вод что такое LocalizedResourceName=@shell32.dll,-12693 я не знаю. Но лучше эту строчку удалить. _________________ Когда ангелу обрезают крылья, он учится летать на метле... |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Apr 24, 2006 12:06 Post subject: |
|
|
Quote: | А что значит атрибут только для чтения для папки |
Не парься. Установи ("Файлы - Изменить атрибуты - [V] Только для чтения") и будет тебе счастье! _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Apr 24, 2006 13:58 Post subject: |
|
|
LocKtaR-o-DarK дал идею:
Ставим курсор на файл с иконкой, нажимаем кнопку, и создается Desktop.ini.
Вот что получилось:
Code: | '============================
' Создание файла Desktop.ini
' Параметры вызова из TC:
' "%P" "%N"
'============================
Dim FSO, TargetDir, IconFile, FileName, oDir, Attr, oFile
Set FSO = CreateObject("Scripting.FileSystemObject")
TargetDir = WScript.Arguments(0)
IconFile = WScript.Arguments(1)
FileName = "Desktop.ini"
' Установим для папки атрибут "Только чтение"
Attr = 1
Set oDir = FSO.GetFolder(TargetDir)
oDir.Attributes = oDir.Attributes or Attr
'Создадим Desktop.ini
If not FSO.FileExists(TargetDir & FileName) Then
Set oFile = FSO.CreateTextFile(TargetDir & FileName)
oFile.WriteLine "[.ShellClassInfo]"
oFile.WriteLine "IconFile=" & IconFile
oFile.WriteLine "IconIndex=0"
oFile.Close
' Установим для файла атрибуты "Скрытый", "Системный", "Архивный"
Attr = 38
Set oFile = FSO.GetFile(TargetDir & FileName)
oFile.Attributes = oFile.Attributes or Attr
End If
Set FSO = Nothing
Set oDir = Nothing
Set oFile = Nothing
WScript.Quit |
ЗЫ. Для тех, кто еще не в курсе - это файл *.vbs. Вешать на кнопку или в меню "Запуск". |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Mon Apr 24, 2006 14:55 Post subject: |
|
|
2Batya
И что теперь, в каждой папке, к которой хочешь присобачить иконку, эту же иконку и хранить? Я предпочитаю их из других файлов выдирать по надобности (хотя может быть медленно).
2Zorroz
Quote: | А вод что такое LocalizedResourceName=@shell32.dll,-12693 я не знаю. |
А разве имя переменной не мнемонично? Ты смотришь на системную папку=>она (почти) всегда существует, но на разных виндах по-разному называется=>LocalizedResourceName - это и есть её локализованное название. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Apr 24, 2006 15:14 Post subject: |
|
|
funduk
Никто не мешает тебе потом поменять Desktop.ini. Здесь рассматривается случай, когда файл с иконкой уже лежит в папке. Типичный случай - папки внутри "Program Files" - иконку берем из exe-шника.
Предложи свой вариант, как должен работать скрипт, я сделаю. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Mon Apr 24, 2006 17:27 Post subject: |
|
|
Мне-то скрипт не нужен - у меня твикер есть. Я иконки у папок не каждый день меняю. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Apr 24, 2006 17:39 Post subject: |
|
|
funduk
Quote: | Мне-то скрипт не нужен |
Ну, раз не нужен, зачем же тогда придираться? Вот если ты можешь предложить хорошую идею, как бы должен работать скрипт, тогда я весь внимание. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Apr 24, 2006 18:13 Post subject: |
|
|
Немного изменил скрипт. Теперь его также можно запускать с параметрами %P%N %T%M. В этом случае для папки, на которой стоит курсор, будет создан Desktop.ini с указанием на файл иконок, который является текущим на противоположной панели:
Code: | '============================
' Создание файла Desktop.ini
' Параметры вызова из TC:
' "%P" "%N"
' или:
' %P%N %T%M
'============================
Dim FSO, TargetDir, IconFile, FileName, oDir, Attr, oFile, MB
Set FSO = CreateObject("Scripting.FileSystemObject")
TargetDir = WScript.Arguments(0)
IconFile = WScript.Arguments(1)
FileName = "Desktop.ini"
If FSO.FolderExists(TargetDir)Then
If Right(TargetDir, 1) <> "\" Then
TargetDir = TargetDir & "\"
End If
Else
MB = MsgBox("Не задано имя папки!", vbOKOnly + vbExclamation, "Создание Desktop.ini")
WScript.Quit
End If
' Установим для папки атрибут "Только чтение"
Attr = 1
Set oDir = FSO.GetFolder(TargetDir)
oDir.Attributes = oDir.Attributes or Attr
'Создадим Desktop.ini
If not FSO.FileExists(TargetDir & FileName) Then
Set oFile = FSO.CreateTextFile(TargetDir & FileName)
oFile.WriteLine "[.ShellClassInfo]"
oFile.WriteLine "IconFile=" & IconFile
oFile.WriteLine "IconIndex=0"
oFile.Close
' Установим для файла атрибуты "Скрытый", "Системный", "Архивный"
Attr = 38
Set oFile = FSO.GetFile(TargetDir & FileName)
oFile.Attributes = oFile.Attributes or Attr
End If
Set FSO = Nothing
Set oDir = Nothing
Set oFile = Nothing
WScript.Quit |
Last edited by Batya on Wed May 17, 2006 13:25; edited 1 time in total |
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Mon Apr 24, 2006 18:20 Post subject: |
|
|
2Batya
Отличный скрипт. _________________ Когда ангелу обрезают крылья, он учится летать на метле... |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Mon Apr 24, 2006 18:59 Post subject: |
|
|
Вот теперь молодца!
Совершенно не обязательно предлагать свои идеи - может быть, у тебя самого есть свободное время, чтобы довести свой скрипт до состояния user friendly |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Apr 25, 2006 10:05 Post subject: |
|
|
[offtop]
funduk
Я бы не сказал, что у меня "есть свободное время", просто пытаюсь помочь другим. А необоснованные претензии меня выводят из себя. Пожалуйста, следующий раз, если не можешь сказать чего-нибудь продуктивного (конкректное замечание или предложение), лучше не говори ничего.
[/offtop] _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Apr 26, 2006 11:54 Post subject: |
|
|
[offtop]
Quote: | Я предпочитаю их из других файлов выдирать по надобности (хотя может быть медленно). |
А разве это не выглядело как предложение? Ну хоть чуть-чуть похоже? Да и в результате ты реализовал именно это. А если ты это реализовал, значит не счёл мою "претензию" необоснованной.
Так что я тебя не совсем понимаю.
[/offtop] |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|