Mit den Möglichkeiten auf dem lokalen System die registrierten Dateitypen mit .NET zu ermitteln und den entsprechenden Mechanismen die dafür registrierten File-Icons zu ermitteln, habe ich ein kleines Tool gebastelt.
Dieses Tool soll dem Entwickler helfen, die vorhandenen Dateitypen auf dem System zu ermitteln und die entsprechenden Icons anzuzeigen. Diese können dann als Images angezeigt und abgespeichert werden. Das ist dann interessant, wenn man die Dateitypen-Symbole (File-Icons) für das eigene Programm benötigt. Voraussetzung ist natürlich die lizenztechnische Berechtigung.
Das Tool hat den Namen "File Extension-Explorer" und ist auf der Basis des dotnet-Framework 2.0 entwickelt worden. Es ist natürlich kostenmlos und in seiner jetzigen Form gebe ich den SourceCode frei (bitte aber noch um ein paar Tage Geduld bis zur Freigabe).
Persönlich werde ich versuchen das Tool weiterzuentwicklen da mir dazu auch schon viele weitere gute Ideen gekommen sind. Da ich das Tool über Click-Once verteile, braucht man nur auf die unten angegebene URL zu surfen und dort auf den Button „Install“ drücken. Dadurch wird das Tool installiert oder als erstes die Installation des .NET Frameworks 2.0. Danach kann man über Start --> Programme-->TOM_MUE--> File Extension Explorer das Tool starten. Das Neue und Gute daran ist, wenn es eine neue Version gibt, installiert sich diese von alleine. Sollte die Installation einer neuen Version fehlschlagen, kann man auf die alte Version zurückgreifen und die neue Fehlerhafte Version wird nicht mehr verwendet.
Ich hoffe das es dem Einen oder Anderem von Euch gute Dienste leisten kann.
Sorry 8o hatte im ersten Ansatz den Link zum Tool vergessen:
File Extension Explorer
HTH
TOM_MUE
PS: ein Tutorial zu dem Code des FileExtensionExplorer gibt es HIER
Ich kann das Teil leider nicht installieren. Beim Ausführen der .application Datei kommt ne Meldung dass das Programm nicht heruntergeladen werden konnte.
Kannst du das Programm vieleicht als zip Anhang veröffentlichen?
Gruß,
SimonKnight6600
Hallo @SimonKnight6600
ich habe es garade nochmal auf zwei verschiedenen rechnern probiert. Funktioniert einwandfrei. Sind denn vielleicht irgendwelche Firewall-Einstellungen bei Dir die das verhindern könnten?
Wie beschrieben ist für das Click-Once und das Tool selbst das .NET Framework 2.0 notwendig.
Also sollte schon funktionieren.
Gruß
TOM_MUE
@ SimonKnight6600 ... benutzt Du den IE?
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Hallo Eisbär,
danke für den Hinweiß. Aber der InternetExplorer ist natürlich auch eine der Vorausetzungen. Man vergisst das als IE- Dauerbenutzer leider sehr schnell.
Gruß
TOM_MUE
Naja, was heißt IE-Dauerbenutzer? Ich will halt einen Browser und keinen Frickelfox benutzen duckundwech ^^
Okay, aber mal im Ernst - der IE ist (leider) eine der Voraussetzungen für ClickOnce-Deployment. Da ClickOnce so wirklich Sinn eh nur mit Zertifikaten macht, bietet es sich IMHO sowieso eher im Intranet an, und dort kann man dann wiederum davon ausgehen, dass man eine homogene Browser-Infrastruktur vorfindet.
Im Web sollte man alternativ aber auch eine ZIP oder ähnliches anbieten, um Benutzern alternativer Browser den Zugriff zu ermöglichen.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Hallo Eisbär,
hm, nun das ClickOnce mit den Zertifikaten eine erhöte Vertrauensbasis im breiten Umfeld für ToolEntwickler bietet sehe ich auch. Aber das ClickOnce "nur" durch Zertifikate Sinn machen würde kann ich so nicht nachvollziehen. Selbst Frank Fischer (ok ok, ist mein leiblings-Speaker) meinte das es für Updates von kleinen (ich will da wirklich nur von kleinen Tools sprechen 😉 )Tools nix geileres gibt als ClickOnce. Und dabei kann man ocker auf die Zertifikate Verzichten (Hey Eisbär, wir hatten uns kurz auf dem Technical-Summit bei München gesehen. Da hatte er es auf einer der Sessions gesagt) Und da bin ich absolut auf seiner Seite. Wenn ich dem Anbieter des kleinen Helferlein (Tool) mit einem Zipfile was ein Setup enthält vertraue dann kann ich ihm auch locker mit ClickOnce vertrauen. Beides installiert nun mal etwas auf meinem System. Aber was macht der Zip-File-Verteiler (was für ne Wortkombination) wenn er ne neue Version hat? Allen bescheid geben die sich das Toll mal runtergeladen haben? Nee. Ich denke auch nicht das Du das so gemeint hast. Bei der Unterstützung anderer Browsernutzer muss ich sagen "Hey Mädels und Jungs, das eine mal könnt ihr den IE schon mal anschalten 😉".
Also wie ich bemerke wird das ClickOnce noch ne Menge Diskussionsstoff bieten. Vielleicht kann man das ja mal etwas an anderer Stelle ausdiskutieren. Ich will hier auf keinen Fall nen Grabenkampf runterbrechen muss aber sagen das ich wie Frank Fischer das ClickOnce Affen geil finde.
Gruß und Dank für die Anmerkungen
TOM_MUE
Original von Der Eisbär
@ SimonKnight6600 ... benutzt Du den IE?
Danke, ich musste den IE als Standardbrowser setzen und das Setup erneut ausführen. Danke! Ist ein cooles Teil 👍
Gruß.
SimonKnight6600
ich bekomme immer wenn ich die datei endung .ad anklicke eine NullReferenceException kann das jemand nachvollziehen?
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
ok ich glaube ich hasb den fehler wenn kein icon gesetzt ist wird die NullReferenceException geworfen ist also ein kleiner schönheits fehler en du vieleicht noch beheben solltest
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Hallo,
habe gerade den Bug behoben (hoffe ich jedenfalls he he). Beim nächsten Programmstart solltet ihr die neue Version angeboten bekommen. Danke für die Fehlermeldung @S.H.-Teichhof.
PS: bei mir kam keine Fehlermeldung bei der angesprochenen Dateiendung "*.ad". Da kann man mal sehen wie unuterschiedlich die Systeme sind.
@SimonKnight6600, ich hoffe das der Satz "ist ein cooles Tool" nicht aus Frust geschrieben wurde. Das man dann auch noch den IE als Standardbrowser setzen muss, war für mich auch neu. Aber so lernt man halt dazu.
Gruß
TOM_MUE
Allü,
tjoa, so hat halt jeder seinen Lieblingsspeaker ... bei mir isses Uwe Baumann 🙂. Der ja nun leider nicht mehr als Evangelist tätig ist, na ja, aber ich sehe ihn ja trotzdem ab und an.
Okay, ganz so drastisch "ClickOnce ohne Zertifikat == unbenutzbar" hatte ich das nicht gemeint.
Dass der IE der Standardbrowser sein => muss ≤, wundert mich ... hm, aber okay.
Viele Grüße,
der Eisbär
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
habe gerade den Bug behoben (hoffe ich jedenfalls he he).
na ja muss deine hoffung zerstören bekomme immer noch (trotz update) die System.NullReferenceException
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
So, habe mal begonnen ein Fehlerlogging einzubauen und dabei mitbekommen woran es gelegen haben muss. Ich habe die NullReferenceException beim Abfragen der DataType-Description in der Resgistry bekommen. Und zwar immer dann wenn zwar ein DataType-DefaultValue eingetragen war, dieser aber nicht als Schlüssel in der Registry registriert wurde und somit keine Beschreibung existierte.
Danke für den Bugreport 😉
HTH
TOM_MUE
super in der neuen version ister der Bug Gefixt.
wenn du noch eine anregung haben willst:
es wäre noch recht nett wenn du es so machen würdest das wenn ein element auf dem Treeview markiert ist und ein buchstabe gedrückt wird der nächste eintrag mit dem gedrückten anfangsbuchstaben markiert werden würde
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Original von TOM_MUE
@SimonKnight6600, ich hoffe das der Satz "ist ein cooles Tool" nicht aus Frust geschrieben wurde. Das man dann auch noch den IE als Standardbrowser setzen muss, war für mich auch neu. Aber so lernt man halt dazu.
Nein, der Satz war ernst gemeint 😄. Das Programm gefällt mir echt gut, denn ich wollte schon immer mal bei den Endungen ausmisten und mir anschauen welche Überreste noch aus dem System sind. 🙂
Den IE musste ich vor dem Setup als Standardbrowser setzen, da sonst die Install-Datei mit dem IE aufgerufen wurde.
Gruß,
SimonKnight6600
Ich hätte da noch eine Idee: Du könntest ein Tab "Bearbeiten" hinzufügen, über das man z.B. bearbeiten kann mit welchem Programm der Dateityp geöffnet wird.
Gruß,
SimonKnight6600
Hallo @SimonKnight6600 (wofür steht denn 6600?)
über eine Bearbeitung der Dateitypen habe ich auch schon nachgedacht. Momentan bin ich aber ernsthaft am überlegen ob ich wirklich das Projekt so weit fortführen werde da ich mit einem anderen priv. Projekt in die Designphase gehe und von da an zügig weiterackern muss. Danke aber für den guten Vorschlag, vielleicht werde ich aber das Projekt abgeben oder einfach so belassen wie es ist.
Gruß
TOM_MUE
Wenns kein "Betriebs"geheimnis ist, dein privates Projekt, würde mich interissieren woran du arbeitest. Aus reiner Interesse!
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
hallo @progger,
na ja, ein Geheimnis ist es zwar nicht aber vor dem ersten Prototypen will ich einfach noch nicht zu viel drüber reden. Ich habe damit so meine schlechten Erfahrungen gemacht.
Es handelt sich dabei um ein Entwickler-Tool. Ich denke in zwei Monaten kann ich dann die ersten Details über meinen Blog lüften.
HTH
TOM_MUE
Kein Problem 😉
Entwicklertools sind immer gut 🙂
Dann können wir uns ja schon alle drauf freuen 😁
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Hi @progger,
oh, das hoffe ich das ihr euch freuen werdet wenn ich das Projekt vorstelle. Ein Grund wird vielleicht auch sein das es für den priv. Gebrauch a) kostenlos sein wird auch nach der BETA 😉 und einem Jahr. Und vielleicht b) das es eine Schnittstelle geben soll (jetzt verrate ich ja doch etwas) die eine externe Erweiterung bieten wird. Also Events des Systems auf die man in anderen Programmen reagiren kann.
Na dann, warten wir mal meine irren Ideen ab 😉
TOM_MUE
Hallo alle,
ich habe nun auf meinem Server das Projekt zum File Extension Explorer zum Download bereitgestellt. Wer also mal nachsehen will wie ich diese Funktionalität umgesetzt habe, der kann auf folgenden Link klicken:
PW: mycsharp
** Download **
Der Code ist voll Dokumentiert und kommentiert. Wenn doch größere Missverständnisse auftreten, dann einfach fragen.
HTH
TOM_MUE
das passwort wäre vieleicht noch von vorteil
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Huch 8o
das kommt dabei raus, wenn man zwei dinge zur gleichen zeit tut. SORRY
PW: mycsharp
TOM_MUE
Hallo @all,
für alle denen mein kleines Tool gute Dienste leisten konnte und für die, die ein paar Erweiterungen vermissten und natürlich auch für den kleinen Rest ( 8) ) gibt es gute Neuigkeiten.
Ab sofort gibt es eine neue Version des File Extension Explorer. Aktuell ist die Version 1.0.0.1.
Sobald ihr das Programm nun über Start Programme öffnet, wird Euch automatisch die neue Version angeboten. Sollte es Probleme geben könnt ihr auf die alte Version wieder wechseln.
Für die Anderen hier der Link zum Installieren : File Extension Explorer
Was wurde geändert:
Natürlich kann trotz sorgfältiger Prüfung wieder der Fehlerteufel dabeigewesen sein und so bitte ich Euch wieder fleißig Programmfehler oder Rechtschreibfehler fleißig zu posten. Ich werde mich dann diesen annehemen.
Ich wünshe Euch viel Spaß mit dem File Extension Explorer
HTH
TOM_MUE
Hallo TOM_MUE!
Die neue Oberfläche gefällt mir sehr gut, was ich allerdings vermisse ist eine Funktion zum Bearbeiten des Dateityps. Ansonsten, hoffentlich ist dein nächstes Programm auf so nützlich wie dieses 👍
Gruß,
SimonKnight6600
Hallo an alle,
gestern Nacht habe ich mich noch mal vor einen meiner sehr alten Rechner (CELERON Prozessor 700Mhz, 256 MB SDRAM) gesetzt und dabei festgestellt das die Art und Weise wie ich den File Extension Explorer programmiert habe, voll auf einen leistungsstarken Rechner zugeschnitten ist.
Frage 1: Habt Ihr auch Probleme mit dem Speicherverbrauch und der CPU-Last bei der Benutzung des File Extension Explorers? Welche Mängel würdet Ihr gerne beseitigt haben?
Ich würde gerne für das nächste Release eine Code und Leistungsoptimierung durchführen. Dabei möchte ich gerne den großen Teil der Daten in einer DB ablegen um von da aus die Abfragen zu starten. Das würde voraussetzen das beim "First Run" ein Einlesen der Daten so wie jetzt stattfinden würde, aber bei den weiteren Starts die Daten sehr viel schneller aus der Datenbank gelesen werde können. Das natürlich so lange bis der Benutzer eine Aktualisierung der DB anstoßen würde, weil er meint das neue Dateitypen auf seinem System existieren.
Frage 2: MS bietet mit der Express- Edition eine kostenlose und frei verfügbare DB. Wäre eine Installation der Expressedition des SQL-Servers ein Ablehnungsgrund für Euch?
Frage 3: Würdet ihr gegenüber der DB Alternativen vorziehen und wenn ja welche?
Ich will noch sagen das ich diese Befragung nicht durchführe weil ich mir daraus einen kommerziellen Erfolg oder irgend einen Geldbringenden Gewinn erhoffe. Ich will nur nicht am Ziel vorbeischießen mit dem Tool und dabei die Meinung Dritter einholen. Das hat sich schon oft bewährt.
Also vielen Dank für Eure Hilfe
TOM_MUE
Hallo,
ich hätte nichts gegen den SQL Express, aber auch nur, weil dieser eh bei mir läuft. Hätte ich es nicht ... nun ja. Für ein kleines Tool (ist nicht abwertend gemeint, aber mehr ist Dein Programm nicht) eine Datenbank als Dienst (!) einrichten zu müssen, fände ich allerdings recht heftig.
Du könntest alternativ eine XML-Datei verwenden. Der Datenumfang dürfte sich eh in Grenzen halten und dann hast Du auch keine Probleme mit der Performance.
Viele Grüße,
Golo
PS: Welche Kriterien Deines Programms wirken sich denn so extrem schlecht auf die Laufzeit aus?
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Hallo Golo,
danke für Deine schnelle Antwort. Nun ich bin mir bewusst das ich bei meinem kleinen Tool (nehme Deine Aussage natürlich nicht abwertend) mit Kanonen auf Spatzen schieße wenn ich einen Datenbank benutze. Das ganze soll für mich als kleine Fingerübung mit der Expressedition des SQL-Server 2005 fungieren.
zu dem Vorschlag mit XML: Daran habe ich auch schon gedacht. Ist sicher keine schlechte Lösung nur weiß ich jetzt gar nicht, wie performannt das ablegen von Bildern in einem XML ist. Das sind dann schon ne menge Daten. So weit ich das im Hinterköppel habe, muss ich ja dann die Bildinformationen in binärform ablegen.
Den meisten Performance-Verlust habe ich natürlich beim Einlesen der Dateitypen. ich habe mich dazu einfach des BackgroundWorkers bemächtigt. Ich will dam Mal sehen ob ich das noch optimieren kann. Aber am meisten stört es mich persönlich, dass das Einlesen halt bei jedem Start des Programms stattfindet, auch wenn ich nix auf dem System geändert hat.
Gruß
TOM_MUE
Du kannst ja auch gemischt vorgehen ... sprich, die Informationen an sich in eine XML-Datei packen, damit der Start schnell geht, aber die Bilder erst dann auslesen, sobald sie benötigt werden. Hält die XML-Datei klein, und die Performance dürfte darunter auch nicht all zu sehr kranken, schließlích lädst Du ja immer nur einige wenige Bilder.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
hallo Golo,
das mit den Bildern ist so eine Sache. Du musst beachten das ich sie in das ListView einlese. Wenn ich also nur die Bilder der Dateitypen anzeigen will die ich gerade sehe müsste ich mich ziemlich tief in das Control einhängen was mir ne menge mehr Arbeit aufbürden würde. Der Performance-Vorsprung iast dann auch noch (nach meiner Meinung) zu bezweifeln. Für die Darstellung der großen Icons gehe ich natürlich jetzt schon so vor das ich sie mir erst dann hole wenn sie benötigt werden und gebe sie nach dem Speichern auch gleich wieder frei für den GC ( ich benutze aber nicht die Klasse GC! Arbeite Ausschließlich mit dem IDisposable).
Das was wirklich die Zeit raubt ist das Durcharbeiten Registry. Sie ist zwar auch eine Datenbank aber eine Dateibasierte (weißt Du ja sicher 😉).
Gruß
TOM_MUE
Hallo TOM_MUE,
Ich hätte noch einen Vorschlag (nicht direkt zum Programm):
Wie wärs mit einer FileExtension-Klasse ähnlich wie File/Directory und einer (was ich noch wichtiger find) FileExtensionInfo-Klasse wie File-/DirectoryInfo, mit der man alles zu den installierten Dateiendungen abfragen kann. Diese Klassen solltest du dann natürlich zur Verfügung stellen, damit man sie in eigenen Programmen hernehmen kann.
Das ganze ist selbstverständlich nur ein Vorschlag. Mir würds aber gefallen, auch wenn ichs im Moment gar nicht brauch 😉
Gruß,
progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Original von TOM_MUE
Hallo alle,ich habe nun auf meinem Server das Projekt zum File Extension Explorer zum Download bereitgestellt. Wer also mal nachsehen will wie ich diese Funktionalität umgesetzt habe, der kann auf folgenden Link klicken:
PW: mycsharp
>Der Code ist voll Dokumentiert und kommentiert. Wenn doch größere Missverständnisse auftreten, dann einfach fragen.
HTH
TOM_MUE
Ich glaube ich stelle mich ein bisschen blöd an, aber mein Visual Studio 2005 C# Express Edition meldet mir, dass dies kein Visual Studio Projekt ist. Wie kann ich das in meinem Visual Studio öffnen? Muss man das vorher konvertieren? 🤔
Danke für eure Antworten!
Microsoft Certified Professional (MCP)
Meine persönliche Seite: www.tomeks-world.de
Hallo @tomek2k1,
sorry das ich mich erst jetzt melde aber in den letzten Wochen des Jahres habe sich zu viele Aufgaben im Job ergeben, so das ich kaum einen Moment Zeit für meine Privaten Dinge hatte.
Also ich kann das so nicht ganz nachvollziehen. Habe mir gerade auf einem frisch aufgesetztem System (also keins wo das Projekt erstellt wurde) das Projekt selbst noch mal gedownloadet und es mit beiden Visual Studio Versionen geöffnet. Sowohl mit der Team Suite als auch mit der Expres - Edition kann ich das Projekt öffnen. Das einzige was angemeckert wird ist das "Test.ico". Aber das kann man einfach vernachlässigen.
Welche Version von Express hast Du denn? Ich denke schon die RTM Version die es seit November von MS zum freien Download gibt.
Gruß
TOM_MUE
Original von TOM_MUE
Frage 2: MS bietet mit der Express- Edition eine kostenlose und frei verfügbare DB. Wäre eine Installation der Expressedition des SQL-Servers ein Ablehnungsgrund für Euch?
Dieser Thread ist zwar eine halbe Ewigkeit her (naja fast), aber ist gerade für solche Anwendungszwecke nicht "SQL Compact Edition"optimal?
SQL Datenbank, aber keine (aufwendige) Installation.