Frage

Ich habe ein paar Fragen im Zusammenhang:

1) möglich ist, meine Programmänderung Datei des Typs Verein zu machen, aber nur dann, wenn läuft? Haben Sie etwas falsch mit diesem Verhalten sehen?

2) Die andere Option, die ich gesehen habe, ist, Benutzer entscheiden zu lassen, mit meiner Anwendung öffnen oder Standardzuordnung wiederherstellen ... so etwas wie: „erfaßt alle .lala Dateien“ oder „Wiederherstellung .lala Vereins“. Wie kann ich das machen? Was denken Sie, dass der beste Ansatz ist?

War es hilfreich?

Lösung

In Bezug auf Dateizuordnungen, habe ich schrieb eine Antwort vorhin, dass zumindest deckt das "Wie" .

Das sollten Sie auch auf die richtige Richtung zeigen, wie Backup zu handhaben und wiederherstellen. Durch den direkten Zugriff auf die Registry durch c #, wird es keine Notwendigkeit, Dateien verwenden REGEN, so dass Sie frei den vorherigen Wert zu sichern, aber Sie in Ihrer App gefällt, und es auch von dort wieder herzustellen.

Die entscheidende Frage ist hier: Soll Sie Dateizuordnungen zufällig ändern? Zumindest fragen, mit der der Benutzer-Front wäre natürlich notwendig sein (wie man auch angedeutet).

Darüber hinaus Vista-Benutzer mit UAC aktiviert ist, oder nicht-privilegierte Benutzer anderer Windows-Versionen möglicherweise nicht die erforderliche Berechtigung zum globalen Dateizuordnung zu ändern. Die (un) Installation des Programms kann der einzige Ort, an dem dies gelingen kann.

EDIT

Wie Franci Penov in seiner Antwort angegeben, es ist eine Möglichkeit, lokale Dateizuordnungen auf einer per-User-Basis, auch für nicht-Administratoren zu ändern (das ist, warum ich sprach von „globalen Vereinigungen“ im vorherigen Absatz). Er erwähnte auch erwähnt, warum es geht nicht allzu sinnvoll.

Andere Tipps

Sie können durch Zuordnung eine kleine ausführbare Datei mit dieser Dateierweiterung eine „on the fly“ Dateizuordnung Änderung implementieren, dass beim Start überprüft, ob die Hauptanwendung ausgeführt wird und die Dateinamen, um es passieren, oder wenn es läuft nicht, es werden rufen Sie die „normale“ zugehörige Anwendung.

Der Hauptvorteil dieses Ansatzes ist, dass Sie nur einmal mit der Registrierung Dreck müssen.

Die wichtigsten Nachteile dieses Ansatzes sind:

  • Sie benötigen einen Helfer Prozess
  • die Anwendung, die diese Dateierweiterungen „besitzt“ die Änderung erkennen können und den Benutzer beschweren, woraufhin „reparieren“ so bekommen Sie aus dem Bild heraus.

Alternativ können Sie die Dateizuordnung auf Ihrem Hauptprogrammstart ändern. Dies funktioniert auch für Nicht-Admin-Benutzer. während Dateizuordnungen in HKEY_CLASSES_ROOT gespeichert sind, gibt es einen kleinen Trick - HKCR sowohl HKEY_LOCAL_MACHINE\SOFTWARE\Classes und HKEY_CURRENT_USER\SOFTWARE\Classes tatsächlich eine Karte ist. So können Sie vorübergehend die Dateierweiterung für den aktuellen Benutzer in HKCU und „Schatten“ der ursprünglichen Vereinigung von HKLM registrieren.

Natürlich würde ich gegen diesen Ansatz rät aber, wie es nur einen Absturz in der Anwendung nimmt diese Verbindung dauerhaft und da nur sehr wenig Anwendungen zu machen wissen, wie mit Dateizuordnungen in HKCU beschäftigen, sind die Chancen, es wird eine sein unrecoverable Situation für die ursprüngliche Anwendung.

Es kann wohl getan werden, aber ich denke, es ist umständlich würde am Ende zu sein. Alle Dateitypzuordnungen werden in der Registry gespeichert, so dass Sie Registry-Einträge jedes Mal schreiben / zurückkehren würden, um Ihre App starten und stoppen. Auch je nachdem, wie oft Sie es tun die neuen Verbände nicht abgeholt sofort im Windows Explorer werden kann.

Die Verbände werden unter HKEY_CLASSES_ROOT in der Registrierung aufgeführt und können eine ganze Vielzahl von Möglichkeiten (Mime-Typ / ProgIds / etc) abgebildet werden.

Viele Apps, die ich gesehen habe gefragt, ob Sie bestimmte Dateitypen mit der Anwendung verknüpft werden soll während der Zeit installieren, und geben Ihnen die Möglichkeit, Opt-out und die aktuellen Einstellungen verlassen.

Ich glaube nicht, ich würde empfehlen, „on the fly“ Dateitypzuordnungen

1) Sie erhalten die Dateitypen zu definieren, die im Öffnen-Dialog Dateityp Droplist sind. Außerhalb davon ist es möglich auf Anfrage den Dateityp Standardeinstellung ändern geöffnet, und dann während der Anwendung schließen ersetzen, als Dateitypzuordnung ist nur eine Registrierungseinstellung.

Was falsch ist, würde ich nicht. Der erste Grund ist, dass es nicht das Standardverhalten von Anwendungen ist. Der zweite Grund ist, dass, wenn Ihre Anwendung oder PC unerwartet beendet, Sie das Risiko nicht Rückgabe des Vereins laufen zu seinem ursprünglichen Einstellung ist.

2) Windows standardmäßig ermöglicht den Benutzer, diese Optionen zu wählen, die rechte Maustaste und das „Öffnen mit“ Befehl verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top