specific folder
C:\
의 탐색기 보기를 다음 으로 변경할 수 있나요?큰 아이콘VBA를 사용하시나요? 나는 이 프로그램을 사용하여 RegistryChangesView
Windows 레지스트리의 변경 사항을 캡처했으며 다음 데이터를 얻었습니다.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU\0\0]
"MRUListEx"=hex(3):00,00,00,00,01,00,00,00,02,00,00,00,FF,FF,FF,FF
나중에 신청했는데 전혀 효과가 없습니다(폴더 보기는 여전히 목록입니다).
Windows API로 할 수 있다고 생각합니다(잘 모르겠습니다).
사전에 어떤 도움이라도 환영합니다.
답변1
키 BagMRU
는 정규화된 경로를 번호가 매겨진 속성 모음과 연결하고 인접한 Bags
키의 하위 키에 저장된 보기 설정을 사용하여 저장된 보기를 인덱싱합니다.
그러나 키의 번호 지정/이름 지정은 고정되지 않고 폴더를 처음 보는 시점에 따라 달라집니다. 사용자가 폴더를 본 적이 없는 경우탐침, 가방이 없을 것입니다. 간단히 말해서, 이것은 이것을 시도하는 방법이 아닙니다.
폴더에 대해 저장된 보기를 조작하려면 폴더가 열려 있어야 합니다.탐침다음을 통해 사용할 수 있는 다양한 com 개체를 사용하여 보기에 액세스하고 수정합니다.shell.application
. ~ 안에파워셸, 다음을 사용하여 인스턴스를 생성합니다.
$Shell = New-Object -ComObject shell.application
사용Windows
열린 상태를 검색하는 방법탐침창문. 안탐침창에는 다음과 같은 속성이 있습니다.
Application : System.__ComObject
Parent : System.__ComObject
Container :
Document : System.__ComObject
TopLevelContainer : True
Type :
Left : 0
Top : 0
Width : 1462
Height : 625
LocationName : Windows (C:)
LocationURL : file:///C:/
Busy : False
Name : File Explorer
HWND : 78776658
FullName : C:\WINDOWS\explorer.exe
Path : C:\WINDOWS\
Visible : True
StatusBar : False
StatusText :
ToolBar : 1
MenuBar : False
FullScreen : False
ReadyState : 4
Offline : False
Silent : False
RegisterAsBrowser : False
RegisterAsDropTarget : True
TheaterMode : False
AddressBar : True
Resizable : True
속성 Document
자체는 com 개체입니다. 이 개체를 통해 폴더 보기의 측면을 확인할 get
수 있습니다.set
Application : System.__ComObject
Parent :
Folder : System.__ComObject
FocusedItem : System.__ComObject
Script :
ViewOptions : 139
CurrentViewMode : 8
GroupBy : System.Null
FolderFlags : 1090519041
SortColumns : prop:System.ItemNameDisplay;
IconSize : 32
CurrentVIewMode
IconSize
수정할 값입니다 . Mode
다음 표의 열에 있는 값을 사용하세요 .
Name LVM Mode Vid IconSize
---- --- ---- --- --------
Details 1 4 {137E7700-3573-11CF-AE69-08002B2E1262} 16
Tiles 2 6 {65F125E5-7BE1-4810-BA9D-D271C8432CE3} 48
SmIcons 3 1 {089000C0-3573-11CF-AE69-08002B2E1262} 16..31
Icons(M-XL) 3 1 {0057D0E0-3573-11CF-AE69-08002B2E1262} 33..256
List 4 3 {0E1FA5E0-3573-11CF-AE69-08002B2E1262} 16
Content 5 8 {30C2C434-0889-4C8D-985D-A9F71830B0A9} 32
다음은 몇 가지 샘플 코드입니다.
$Shell = New-Object -ComObject shell.application
Function WaitFor-NewWindow ( $CurrentCount )
{
Do { Sleep -m 50 } Until ( $Shell.Windows().Count -gt $CurrentCount )
}
Function Get-TargetWindow ( $Path )
{
$OpenWindows = @( $Shell.Windows() )
If ( $TargetWindow = $OpenWindows | ? { $_.Document.Folder.Self.Path -like $Path } )
{
$TargetWindow
}
Else
{
$Shell.Open( $Target )
WaitFor-NewWindow $OpenWindows.Count
@( $Shell.Windows() ) | ? HWND -notIn $OpenWindows.HWND
}
}
$Target = 'C:\'
$TargetWindow = Get-TargetWindow $Target
$TargetWindow.Document.CurrentViewMode = 1
$TargetWindow.Document.IconSize = 96
$TargetWindow.Quit()