Wie kann ich ftype und assoc so anpassen, dass sie mit dem Windows Explorer übereinstimmen?

Wie kann ich ftype und assoc so anpassen, dass sie mit dem Windows Explorer übereinstimmen?

Ich habe die Zuordnung geändert, die beim Starten einer .pyDatei über den Windows Explorer verwendet werden soll:

  1. Extras -> Ordner -> Dateitypen.
  2. Navigieren Sie dann zu .py.
  3. Ändern Sie die Zuordnung zu Wordpad.

Wenn ich jetzt den Namen einer PY-Datei in die Befehlszeile eingebe, öffnet Wordpad sie.

Aber assocund ftypein der Kommandozeile gibt es trotzdem noch folgendes zurück:

C:\> assoc .py
.py = Python.File

C:\> ftype Python.File
Python.File = "C:\Program\Python27\python.exe" "%1" %*

Wie kommt es, dass der Verein aktiv ist, man sich dessen aber assocnicht ftypebewusst ist?

Ich habe die Eingabeaufforderung neu gestartet.


Weitere Informationen aus meinem Register:

HKEY_CLASSES_ROOT\.py
= Python.File

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\Application
= wordpad.exe

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids\Python.File
= 

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.py\(Standard)
= Python.File

Weitere Registrierung:

HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command\(Standard)
= "C:\Program\Python27\python.exe" "%1" %*`

Ich nehme an, dass dies in angezeigt wird ftype Python.File. Aber es scheint nicht verwendet zu werden.


(Ich mache das zu Testzwecken, damit ich schließlich problemlos meine Standardversion von Python auswählen kann.)

Antwort1

Je nachdem, wie Sie eine Datei aufrufen, hängt es davon ab, welches Verb verwendet wird. Das von Ihnen verwendete Verb bestimmt, was Windows damit macht. Die Standardverben sind Öffnen, Bearbeiten, Drucken, Abspielen und Vorschau. Es ist jedoch möglich,Erstelle deine eigenen VerbenDas am häufigsten hinzugefügte Verb ist dasMit Familie öffnen(einschließlich OpenWithProgIDs), die dieses kleine Kontext-Untermenü unter „Öffnen mit“ hinzufügen, um Ihnen mögliche Alternativen anzubieten. Wenn Sie beispielsweise Paint.NET installieren und dann mit der rechten Maustaste auf eine JPG-Datei klicken, sehen Sie, dass der Eintrag „Öffnen mit“ zu einem Untermenü erweitert wird, das Paint.NET, Paint und den Bildbetrachter auflistet, den Microsoft für Ihre Windows-Version genannt hat.

Darüber hinaus ist das, was Unsigned Code Labs gesagt hat, sehr wichtig. Wenn Sie Klassen debuggen, müssen Sie sich HKLM\Software\Classes\und ansehen HKCU\Software\Classes. HKCRist sehr nützlich, um das System abzufragen, aber nicht so gut, um herauszufinden, warum es sich falsch verhält.

Ich habe ein paar Tests auf meinem Windows 7-System mit durchgeführt procmon.exeund die Befehle assocund ftypescheinen zu versuchen, direkt in zu schreiben HKCR, was das System anscheinend als Schreiben in interpretiert HKLM. Mein aktuelles Konto ist Mitglied der Administratorgruppe, aber UAC ist aktiviert. Als ich es versuchte, wurde mir der Zugriff verweigert assoc .mytest=MyTest.File.

Seltsamerweise wird diese Verknüpfung weder in noch in angezeigt , wenn ich eine Verknüpfung erstelle, indem ich mit der rechten Maustaste auf eine Datei mit dem Namen klicke test.mytestund sie mit Notepad verknüpfe . Die Verknüpfung ist definitiv in und vorhanden . Ich habe jedoch nicht versucht, neu zu starten.assocftypeHKCUHKCR

Antwort2

ich weiß nicht, wie Sie die Übereinstimmung zwischen der Registrierung und dem, was in ftype und assoc erscheint, herstellen können. Für mich und, wie ich sehe, auch für Sie, sind die Befehle ftype und assoc nutzlos. Was ich tue, um das Standardprogramm für eine bestimmte Erweiterung auf programmatische Weise zu ändern (im Gegensatz zur standardmäßigen und einfacheren Methode mit dem Explorer), ist, diesen Registrierungsschlüssel zu ändern

HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.TheExtensionYouWantToModify\UserChoice\ProgID

Wenn ich zum Beispiel meine MP3s mit MPlayer öffnen möchte, gebe ich ein

HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3\UserChoice\ProgID 

der Wert von „mplayerc.mp3“

Was ist dabei kompliziert: Zuerst müssen Sie gültige ProgIDs kennen (verwenden Sie ftype) und zweitens benötigen Sie Schreibzugriff auf diesen Hive. Windows setzt automatisch eine Deny-ACL für den UserChoice-Schlüssel, Sie müssen also einen Weg finden, diese Deny-Regel zu entfernen, um Schreibzugriff zu erhalten. Ich verwende das Programm subinacl, das Sie hier herunterladen können.http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=enum die Berechtigungen zu ändern. Sie können auch das Drittanbieterprogramm SetACL verwenden. Ich empfehle das erste, da die Syntax viel einfacher ist.

Antwort3

Microsoft hat die Funktionsweise ab Windows 8 geändert. Es ist nicht mehr möglich, die Registrierung zu bearbeiten, um dies zu ändern. UmZitat Microsoft:

In Versionen vor Windows 8 konnten Apps den Standardhandler für einen Dateityp/ein Protokoll festlegen, indem sie die Registrierung manipulierten. Das bedeutet, dass Sie problemlos ein Skript oder eine Gruppenrichtlinie verwenden konnten, um die Registrierung zu manipulieren. In Windows 8 werden die Registrierungsänderungen jedoch durch einen Hash (eindeutig pro Benutzer und App) überprüft, der Manipulationen durch Apps erkennt. Wenn kein gültiger Hash vorhanden ist, ignorieren wir den Standard in der Registrierung.

Microsoft erwartet, dass Sie dies nun mithilfe einer XML-Datei ändern, die über die Gruppenrichtlinie implementiert wird. AnweisungenHier.

Glücklicherweise hat Christoph Kolbicz den Hashing-Algorithmus zurückentwickelt und ein Tool namensBenutzernameum die Dateitypzuordnung festzulegen. Leider ist es Closed Source.

Antwort4

Die Verwechslung besteht darin, was verwendet wird, umoffeneine Datei und was wird verwendet, umlaufeneine Datei. Der Registrierungsschlüssel

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\Application
\.py\Application

teilt Windows mit, wie die Datei geöffnet werden soll. Durch Doppelklicken auf die Datei wird die Datei mit dieser Anwendung geöffnet.

Da es sich bei der Datei nicht um eine ausführbare Datei handelt, geht die Befehlszeile davon aus, dass Sie die Datei mit der Standardanwendung öffnen möchten, als hätten Sie darauf doppelgeklickt.

Wenn Sie die Zuordnung wieder auf C:\Program\Python27\python.exe ändern oder den Registrierungsschlüssel so bearbeiten, dass er auf Python verweist, sollte alles wieder in den ursprünglichen Zustand zurückkehren. Windows geht dabei davon aus, dass Sie die Datei mit dem Standardprogramm (python.exe) öffnen möchten, das dann das Programm ausführt.

verwandte Informationen