Wie steckst du spezielle Ordner mit Powershell an? Wie "ThisPC", iexplorer
Dies wird Pin starten exe ist in Ordnung, aber was ist mit Windows Explorer und myComputer? Wie steckst du diese Gegenstände, da sie kein Ziel haben?
Angesichts dieser
%Vor%Es scheint Probleme mit .lnk's für "Dieser PC", "Datei-Explorer", usw. zu geben.
%Vor%Ich habe diesen Ansatz auch ausprobiert, ohne meinen Computer zu starten
%Vor%Die meisten speziellen Ordner sind über spezielle Werte zugänglich, die hier dokumentiert sind: ShellSpecialFolderConstants-Enumeration
Wenn Sie also den Ordner Mein Computer (auch bekannt als "Dieser PC") aufrufen möchten, können Sie Folgendes tun:
%Vor%Und Sie erhalten ein Ordner Objekt.
Es gibt eine andere Möglichkeit, die den Ordner CLSID (eine GUID) verwendet. Es ermöglicht Ihnen, zu einem beliebigen Ordner im so genannten Shell-Namespace zu gelangen, auch zu denen, die in der obigen Aufzählung möglicherweise nicht definiert sind (z. B. Shell-Namespace-Erweiterungen von Drittanbietern). Die Syntax ist dies:
%Vor%Tatsächlich kombiniert diese witzige Syntax die 'shell:' URI Moniker mit der Shell-Namespace-Analysesyntax :: {CLSID} .
Um beispielsweise den Ordner Arbeitsplatz zu erhalten, würden Sie die Konstante CLSID_MyComputer
wie folgt verwenden:
Dies funktioniert auch:
%Vor%Und es sollte Ihnen das gleiche Objekt wie im vorherigen Aufruf zurückbringen. Sie sind alle gleichwertig.
Sobald Sie ein Ordner-Objekt haben, gibt es einen letzten Trick, um die zugehörigen Verben zu erhalten, weil die Verben () -Methode nur auf der Ordnerobjekt . Um das FolderItem aus dem Ordner zu holen (da ein Ordner auch ein "Element" im Namespace ist, also auch eine FolderItem-Fassade hat), können Sie das Self Eigenschaft, wie folgt:
%Vor%Ok, das war, um Verben für ein FolderItem zu bekommen. Um ein Element anzuheften, um es zu starten, funktioniert der Aufruf des "Verbinde mit Start" Verbs jedoch nicht immer (z. B. für Arbeitsplatz), oder das Verb ist nicht einmal verfügbar (z. B. für einen Standardordner). Im Allgemeinen funktioniert es aus irgendeinem Grund nicht wirklich gut für Ordner.
Eine Lösung für Ordner besteht also darin, zuerst eine Verknüpfungsdatei (.lnk) irgendwo in diesem Ordner (einschließlich Arbeitsplatz oder anderen speziellen Speicherorten) zu erstellen und diese Verknüpfungsdatei zum Starten festzulegen. Hinweis: Das standardmäßige (nicht sprachlokalisierte) Verb für Pin to Start ist " PinToStartScreen ". Es ist besser, das zu verwenden, als verschiedene Verben zu scannen (alle Verben haben einen kanonischen Namen). Also würde der Code wie folgt aussehen, um den Arbeitsplatz anzuhalten:
%Vor% Fakt ist, dass Windows genau das tut, wenn wir auf dem Arbeitsplatz "An Start" klicken, es erzeugt eine Verknüpfung in C:\Users\<my user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
Tags und Links c# windows powershell