ist es möglich, die Explorer-Ansicht zu ändern specific folder
C:\
aufgroße Iconsmit VBA? Ich habe dieses Programm verwendet, RegistryChangesView
um Änderungen an der Windows-Registrierung zu erfassen, und habe diese Daten erhalten:
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
Ich habe es später angewendet, aber es hat überhaupt keine Wirkung (Ordneransicht ist immer noch Liste).
Ich denke, es kann über die Windows-API erfolgen (ich kenne mich damit nicht aus).
Im Voraus ist jede Hilfe willkommen.
Antwort1
Der BagMRU
Schlüssel indiziert gespeicherte Ansichten und verknüpft einen vollqualifizierten Pfad mit einem nummerierten Eigenschaftenbehälter, wobei die Ansichtseinstellungen in einem Unterschlüssel des benachbarten Bags
Schlüssels gespeichert werden.
Die Nummerierung/Benennung der Schlüssel ist jedoch nicht festgelegt, sondern hängt davon ab, wann ein Ordner zum ersten Mal angezeigt wird. Wenn ein Benutzer den Ordner nicht inForscher, es wird keine Tasche geben. Kurz gesagt, das ist nicht der richtige Weg, dies zu versuchen.
Um die gespeicherte Ansicht eines Ordners zu bearbeiten, muss der Ordner geöffnet sein inForscherum auf die Ansicht zuzugreifen und sie zu ändern, indem man die verschiedenen COM-Objekte verwendet, die übershell.application
. InPower Shell, erstellen Sie eine Instanz mit:
$Shell = New-Object -ComObject shell.application
Verwenden Sie dieWindows
Methode zum Abrufen von offenenForscherFenster. EinForscherFenster hat die folgenden Eigenschaften:
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
Die Document
Eigenschaft selbst ist ein COM-Objekt. Über dieses Objekt können wir bestimmte Aspekte der Ordneransicht festlegen 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
und IconSize
sind die zu ändernden Werte. Verwenden Sie Werte aus der Mode
Spalte dieser Tabelle:
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
Hier ist ein Beispielcode:
$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()