Да. Да.я правильно понял?) или средствами autoit?
Я не знаю. Поэтому у вас попросил.какие параметры нужно изменять.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Destop set icon", 437, 135, -1, -1)
$Label1 = GUICtrlCreateLabel("Выберете папку:", 8, 8, 420, 17)
$Input1 = GUICtrlCreateInput("", 8, 32, 361, 21)
$Button1 = GUICtrlCreateButton("&Обзор", 368, 32, 65, 25)
$Input2 = GUICtrlCreateInput("", 8, 80, 361, 21)
$Button2 = GUICtrlCreateButton("&Обзор", 368, 80, 67, 25)
$Button3 = GUICtrlCreateButton("&Ok", 168, 104, 75, 25)
$Label2 = GUICtrlCreateLabel("Выберите иконку:", 8, 56, 420, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetData($Input1,FileSelectFolder("Choose a folder.", ""))
Case $Button2
GUICtrlSetData($Input2,FileOpenDialog('','','Icon(*.ico)'))
Case $Button3
FileSetAttrib(GUICtrlRead($Input1)&'\Shell_Icon.ico', "-RSH")
FileDelete(GUICtrlRead($Input1)&'\Shell_Icon.ico')
FileCopy(GUICtrlRead($Input2), GUICtrlRead($Input1)&'\Shell_Icon.ico')
FileSetAttrib(GUICtrlRead($Input1)&'\Desktop.ini', "-RSH")
FileDelete(GUICtrlRead($Input1)&'\Desktop.ini')
IniWrite(GUICtrlRead($Input1)&'\Desktop.ini','.ShellClassInfo','IconFile','Shell_Icon.ico')
IniWrite(GUICtrlRead($Input1)&'\Desktop.ini','.ShellClassInfo','IconIndex','0')
FileSetAttrib(GUICtrlRead($Input1)&'\Shell_Icon.ico', "+RSH")
FileSetAttrib(GUICtrlRead($Input1)&'\Desktop.ini', "+RSH")
EndSwitch
WEnd
Проблема в непонимании друг друга.IMHOа в чём проблема?
Даили вам имеенно через аутоит надо?
#include <APIConstants.au3>
#include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $tSHFCS, $tIcon, $sPath, $sIconFile = @SystemDir & '\shell32.dll'
$sPath = @ScriptDir & '\qqq'
For $i = 10 To 20
$tSHFCS = DllStructCreate($tagSHFOLDERCUSTOMSETTINGS & 'wchar[' & (StringLen($sIconFile) + 1) & ']')
DllStructSetData($tSHFCS, 'Size', DllStructGetPtr($tSHFCS, 16) - DllStructGetPtr($tSHFCS))
DllStructSetData($tSHFCS, 'Mask', $FCSM_ICONFILE)
DllStructSetData($tSHFCS, 'IconFile', DllStructGetPtr($tSHFCS, 16))
DllStructSetData($tSHFCS, 'SizeIF', 260)
DllStructSetData($tSHFCS, 'IconIndex', $i)
DllStructSetData($tSHFCS, 16, $sIconFile)
_WinAPI_ShellGetSetFolderCustomSettings($sPath, $FCS_FORCEWRITE, $tSHFCS)
If @error Then
MsgBox(16, 'Error', '_WinAPI_ShellGetSetFolderCustomSettings')
Else
MsgBox(64, 'Info', 'OK' & @LF & 'IconIndex: ' & $i)
EndIf
Next
#include <APIConstants.au3>
#include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $tSHFCS, $tIcon, $sPath, $sIconFile = @SystemDir & '\shell32.dll'
;$sPath = @ScriptDir & 'C:\qqq'
$sPath = 'C:\qqq'
For $i = 51 To 51
$tSHFCS = DllStructCreate($tagSHFOLDERCUSTOMSETTINGS & 'wchar[' & (StringLen($sIconFile) + 1) & ']')
DllStructSetData($tSHFCS, 'Size', DllStructGetPtr($tSHFCS, 16) - DllStructGetPtr($tSHFCS))
DllStructSetData($tSHFCS, 'Mask', $FCSM_ICONFILE)
DllStructSetData($tSHFCS, 'IconFile', DllStructGetPtr($tSHFCS, 16))
DllStructSetData($tSHFCS, 'SizeIF', 260)
DllStructSetData($tSHFCS, 'IconIndex', $i)
DllStructSetData($tSHFCS, 16, $sIconFile)
_WinAPI_ShellGetSetFolderCustomSettings($sPath, $FCS_FORCEWRITE, $tSHFCS)
If @error Then
MsgBox(16, 'Error', '_WinAPI_ShellGetSetFolderCustomSettings')
Else
MsgBox(64, 'Info', 'OK' & @LF & 'IconIndex: ' & $i)
EndIf
Next
Тот-жеа что если с помощью аутоита создать просто файл Desktop.ini в папке с:\qqq
с таким содержимым
[.ShellClassInfo]
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=51
эффект не будет ли тот же?
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $tSHFCS, $tIcon, $aIcon, $sPath
; Select folder
$sPath ='C:\qqq'
$aIcon ='C:\128.ico'
; Set icon to selected folder
$tIcon = DllStructCreate('wchar[260]')
DllStructSetData($tIcon, 1, $aIcon)
$tSHFCS = DllStructCreate($tagSHFOLDERCUSTOMSETTINGS)
DllStructSetData($tSHFCS, 'Size', DllStructGetSize($tSHFCS))
DllStructSetData($tSHFCS, 'Mask', $FCSM_ICONFILE)
DllStructSetData($tSHFCS, 'IconFile', DllStructGetPtr($tIcon))
DllStructSetData($tSHFCS, 'SizeIF', 260)
DllStructSetData($tSHFCS, 'IconIndex', $aIcon)
_WinAPI_ShellGetSetFolderCustomSettings($sPath, $FCS_FORCEWRITE, $tSHFCS)
$sDir_Path = "C:\TestDir"
IniWrite($sDir_Path & "\Desktop.ini", ".ShellClassInfo", "IconFile", @ScriptDir & "\Icon.ico")
IniWrite($sDir_Path & "\Desktop.ini", ".ShellClassInfo", "IconIndex", 0)[/quote]
If FileExists(@ScriptDir & '\2.ico') Then
If FileExists(@ScriptDir & '\Desktop.ini') Then
FileDelete(@ScriptDir & '\Desktop.ini')
EndIf
IniWrite(@ScriptDir & '\Desktop.ini', '.ShellClassInfo', 'IconFile', @ScriptDir & '\2.ico')
IniWrite(@ScriptDir & '\Desktop.ini', '.ShellClassInfo', 'IconIndex', 0)
IniWrite(@ScriptDir & '\Desktop.ini', '.ShellClassInfo', 'InfoTip', 'Иконка папки заменена на 2.ico')
FileSetAttrib(@ScriptDir, '+R')
FileSetAttrib(@ScriptDir & '\Desktop.ini', '+H')
EndIf[/quote]
REGEDIT4
# Избранное (FAVOURITE)
[HKEY_CLASSES_ROOT\CLSID\{1A9BA3A0-143A-11CF-8350-444553540000}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,3"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1A9BA3A0-143A-11CF-8350-444553540000}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,3"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
"43"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,3"
# Интернет (INTERNET)
[HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11CF-8FD0-00AA00686F13}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_CLASSES_ROOT\CLSID\{3050F3D9-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_CLASSES_ROOT\CLSID\{65014010-9F62-11d1-A651-00600811D5CE}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_CLASSES_ROOT\CLSID\{AE24FDAE-03C6-11D1-8B76-0080C744F389}\ToolboxBitmap32]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{25336920-03F9-11CF-8FD0-00AA00686F13}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050F3D9-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{65014010-9F62-11d1-A651-00600811D5CE}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AE24FDAE-03C6-11D1-8B76-0080C744F389}\ToolboxBitmap32]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,8"
# документы интернет-эксплорера (IEDOC)
[HKEY_CLASSES_ROOT\htmlfile\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,7"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htmlfile\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,7"
# 1 неассоциированный файл (anyfile)
# 2 *.com или *.exe без иконки (COMFILE)
# 3 Папка (FOLDER)
# 4 открытая папка (FolderOpen)
# 15 Мой компьютер (MYCOM)
# 19, 36 Программные группы (APPGROUP)
# 20 Мои документы (MYDOC)
# 23 Помощь (HELP)
# 24 Выполнить (RUN)
# 27 Выключение компа (SHUTDOWN)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
"0"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,2"
"2"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,1"
"3"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,4"
"4"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,5"
"15"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,9"
"19"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,0"
"36"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,0"
"20"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,10"
"23"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,6"
"24"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,11"
# Мой компьютер (MYCOM)
[HKEY_USERS\.DEFAULT\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,9"
# Мои документы (MYDOC)
[HKEY_USERS\.DEFAULT\Software\Classes\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,10"
# Полная корзина (BINFULL)
[HKEY_USERS\.DEFAULT\Software\Classes\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,13"
"Full"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,13"
# Пустая корзина (BINEMPTY)
[HKEY_USERS\.DEFAULT\Software\Classes\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon]
"Empty"="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,12"
# Иконка диску С (osdrive)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C\DefaultIcon]
@="C:\\windows\\Resources\\Icons\\assotiations\\shell.dll,14"
Немного похожий вопрос.Как всем avi файлам сделать 1 иконку?
$Icon = FileOpenDialog('', '', 'ICO File (*.ico)')
If @error Then Exit
RegWrite('HKEY_CLASSES_ROOT\AVIFile\DefaultIcon', '', 'REG_SZ', $Icon)
ProcessClose('explorer.exe')