Tester mit versch. Windows Versionen gesucht

Status
Für weitere Antworten geschlossen.

Grantig

Captain
Registriert
Okt. 2008
Beiträge
3.552
Hi Leute,

ich komm gleich zur Sache, es geht um folgendes:

Es ist ja bekannt, dass der Windows Explorer Metainformationen aus Dateien auslesen und anzeigen kann (z.B. Dauer, Bitrate usw. bei mp3's).
Diese Funktion lässt sich auch in eigene Programme einbinden, es gibt nur das Problem, dass die Funktion nicht ausreichend dokumentiert ist, d.h. ich weiß nicht ob das bei allen Windows Versionen funktioniert und sich auch gleich verhält.

Deswegen habe ich ne kleine Test Anwendung geschrieben.
Ich bräuchte jetzt ein paar Leute, die das Teil mal auf ihrem Rechner laufen lassen und mir die Ergebnisse posten.

Es ist ganz einfach:
Archiv im Anhang runterladen, entpacken, ausführen, beliebige Datei auswählen, auf auslesen klicken.
Das Ergebnis kann dann als .CSV Datei gespeichert werden, die ihr dann hochladen könnt.

Als Infos bräuchte ich dann:
- OS Version + 32bitz oder 64bit?
- sind Fehler aufgetreten? (sowohl mit Methode1 als auch mit Methode2)
- natürlich die .CSV Datei

Wichtig! Ich bräuchte unbedingt jemanden mit ner Englischen Windows Version, da ich die Beschreibungen auf Englisch bräuchte.


Ich hoffe es machen sich ein paar Leute die Mühe.
Schonmal danke im Vorraus!

lg,
Grantig
 

Anhänge

Hi,

ich bekomm immer ne unhandled Exception, egal, was für eine Datei oder Methode ich auswähle.

Edit: ich hab WinXP SP3 32 Bit deutsch

Gruß Timo
 

Anhänge

  • unbehandelte Ausnahme.PNG
    unbehandelte Ausnahme.PNG
    30,3 KB · Aufrufe: 237
Kommt direkt beim Starten. XP x64 SP2. Deutet auf fehlende Runtimes hin, aber welche, das musst du verraten...

gfd.jpg
 
Zuletzt bearbeitet:
Bei mir hat alles ohne Probleme geklappt. Windows 7 64 Bit.
Schicke dir die CSV Datei als PN.
 
Auch bei mir hat alles ohne Probleme geklappt: Windows 7 Prof. 64bit (engl.)
CSV - Datein via PN
 
Vielen Dank für die Hilfe an Alle.

@yoT!mO
hmmm, sieht aus als ob XP die Methode generell nicht unterstützt. Hab ich mir fast gedacht.

@phelix
.NET 3.5


Edit:
Ein Vista User fehlt noch ;)
 
Zuletzt bearbeitet:
bei mir hats auch geklappt Windows Vista x64 Ultimate deutsch
(ich hab alle Windows wo gibt, wennst mal wieder was brauchst)
 

Anhänge

wenn das so unzuverlässig ist und noch dazu schlecht dokumentiert, sollte man vielleicht ganz andere Verfahren nutzen, um z.B. ID3tags oder andere Informationen auszulesen, die vielleicht universeller und zuverlässiger sind.
 
Windows 7 Ultimate Englisch 64Bit
Windows Server 2008 R2 Enterprise Englisch 64Bit

Klappt beides


Zwei Hinweise noch von meiner Seite:

- Ich habe z.B. auf zwei Entwicklungssystemen getestet, was nicht unbedingt optimale Bedingungen für so einen Test ist, da mit der Installation von Visual Studio recht viele Assemblies installiert sind, die auf einem Rechner ohne VS fehlen könnten.

- Du solltest deine Zipdatei um mindestens eine Beispieldatei erweitern und dir vielleicht die Ergebnisse zukommen lassen. Somit testen alle mit der selben Datei und du kannst auch hier Fehler bei der Ausgabe finden, die nicht direkt eine Exception werfen.
 
@CreeTar
danke für die Hilfe :)

@CoolHandLuke
Was heißt unzuverlässig, es wird halt einfach nicht von Windows XP unterstützt.

Das Gute wäre eben, dass man sich durch diese Methode das Einbinden von zusätzlichen Bibliotheken sparen kann.
Und ich hab ja diesen Thread genau darum erstellt, damit ich feststellen kann, ob diese Methode zuverlässig genug ist, um sie in einem Projekt zu verwenden.
Die fehlende Unterstützung von Windows XP ist leider ein K.O. Kriterium.

Edit:
@mitschie
Erstmal danke für den Test und die Hinweise.

Zu den Hinweisen:

1) Genau das ist auch mein Problem, auf Entwicklungssystemen läuft natürlich alles rund, da VS eben massenweise Assemblies installiert.
Deswegen ja dieser Thread hier.

2) Eine Beispieldatei brauchts imo nicht, da die Methode grundsätzlich bei allen Dateien das gleiche Verhalten zeigen sollte.
Leider wird das ganze wie gesagt von XP garnicht unterstützt, und bei Windows 7 sind einige auslesbare Felder hinzugekommen (im Vergleich zu Vista), was leider die gesamten Indices verschiebt.
 
Zuletzt bearbeitet:
Es wär ja kein Problem ein paar VMs einzurichten, die fehlenden Windows Lizenzen stellen aber ein Problem dar ;) (ich hab nur xp32bit und win764bit)
 
Also ich muss demnächst einige VMs aufsetzen. Ich denke mal so zum Ende der Woche. Darunter ist Windows XP, Windows 7 sowie Windows Server 2008 und R2 (alle 64 Bit und Englisch). Da könnte ich sicherlich vor der Installation von VS dein Tool testen. Ich bin ja glücklicher Weise bei einem Mircrosoft Gold Partner angestellt und wir bekommen diese Lizenzen für interne Zwecke ja kostenlos gestellt.
 
Jo, das wär echt nett von dir wenn du das machen könntest.
Vor allem XP interessiert mich. Vllt. läufts ja doch mit SP3 und neuesten .NET Updates.
 
der Fehler von phelix wird durch fehlende .NET-Runtime verursacht.

Ich habe gerade auf einer virtuellen Maschine das Programm einfach gestartet, da kam o.g. Fehler.

Nach Installation des .NET-Runtime 3.5 konnte es korrekt gestartet werden.
Allerdings tritt beim Prüfen einer Datei die angehängte Exception auf. Kompletter Stacktrace:

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.InvalidCastException: Das COM-Objekt des Typs "Shell32.ShellClass" kann nicht in den Schnittstellentyp "Shell32.IShellDispatch5" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{866738B9-6CF2-4DE8-8767-F794EBE74F4E}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).
bei Shell32.ShellClass.NameSpace(Object vDir)
bei GetFileDetails.MainForm.GetDetails(String filePath, Boolean useActivator)
bei GetFileDetails.MainForm.btn_GetDetails_Click(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
GetFileDetails
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///C:/Dokumente%20und%20Einstellungen/XPMUser/Desktop/GetFileDetails.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
Interop.Shell32
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///C:/Dokumente%20und%20Einstellungen/XPMUser/Desktop/Interop.Shell32.DLL.
----------------------------------------
mscorlib.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
 

Anhänge

  • err.jpg
    err.jpg
    114,1 KB · Aufrufe: 126
Zuletzt bearbeitet:
Kagee schrieb:
der Fehler von phelix wird durch fehlende .NET-Runtime verursacht.
Jo, hatte ich ja weiter oben schon festgestellt.

@Kagee
Du hast es unter XP getestet, oder?
Denn wie gesagt siehts wohl so aus, als wird das unter XP nicht unterstützt:
Fehlermeldung schrieb:
Schnittstelle nicht unterstützt


@Rossibaer
im Bezug auf den von dir verlinkten Thread:
Ich konnte das Problem, das in diesem Thread beschrieben wird nicht reproduzieren, sprich: ich kann die Metadaten aus Dateien auf einer CD/DVD problemlos auslesen.

Aber ich muss dir Zustimmen, GetDetailsOf() taugt dank fehlender XP Unterstützung und unterschiedlichem Verhalten auf Vista und Win7 nicht wirklich viel.

Die Methode hat eben auf den ersten Blick ziemlich einfach und genial ausgesehen, da sie einem einiges an Arbeit abnimmt.
 
@Grantig: Unter welchem OS wurde die Interop.Shell.dll erzeugt? Wenn du sie unter Vista oder v7 erzeugst, dann hast du auch schon die Ursache für das Schnittstellen-Problem. Gerade bei der Interop ist der kleinste gemeinsame Nenner das WinXP. Also erstell doch mal die Interop unter XP. Kopiere diese dann in das Ausgabeverzeichnis, füge diese Dateiversion in die Verweise ein (über Registerkarte "Durchsuchen" statt über die Registerkarte "COM") und kompiliere noch mal neu. Schau dann ob es immer noch nicht unter XP geht. So wie ich das lese, hast du die Interop auf v7 oder Vista gemacht ( bewusst oder das VS hinter deinem Rücken ;) )

EDIT: Hab dir eine Interop.Shell32.dll unter WinXP SP3 erstellt (Ist zwar .Net 2.0 sollte aber nicht das Problem sein, da der Kern bei 3.5 und 2.0 gleich sind). Verlinke die mal statt den bisherigen Verweis auf Shell32 und kompiliere neu, poste die neue Datei damits hier mal gegen gecheckt wird.
 

Anhänge

Zuletzt bearbeitet:
@Rossibaer
Danke für die Hilfe, auf die Idee bin ich noch garnicht gekommen.

Im Anhang die Version mit der auf XP kompilierten Interop.Shell32.dll

Edit:
Hab die neue Version unter XP SP3 probiert......
Es funktioniert!

Vielen Dank Rossibaer!

Also scheint GetDetailsOf() ja doch ganz nützlich zu sein.
 

Anhänge

Zuletzt bearbeitet:
Kurz und knapp:
Es läuft unter WinXP 32Bit SP3 + .Net Framework 2.0

Die CSV schicke ich aber nicht mit, da sehr viele Informationen über mich bzw. meinen PC enthalten sind. Alle Felder die gefüllt wurden, habe ich entsprechend mit geschweiften Klammern und Kommentar versehen. Auf den ersten Blick siehts gut aus, zumindest nichts falsches bis auf die Abtastgröße "0 Bit". Kann sein das das so bei der Datei der Fall ist oder nicht ermittelt werden konnte. Alle Felder die leer sind, sind auch in deiner Ausgabe (Programm) leer. Habe aber gerade keine Lust alle Felder zu prüfen ob die auch in den Metainfos der Datei enthalten sind. Soll ein anderer mal das ausprobieren. Aber an sich läuft das Programm ohne Fehler (Konfiguration siehe oben)

PS: Glückwunsch so schnell kommt man an Login Id, PC-Name, Musikgeschmack und evtl. Raubkopien??? :D
Code:
// Methode 1:
000 Name: {Name der Datei}
001 Größe: {Größe der Datei in KB}
002 Typ: {Medientyp}
003 Geändert am: 07.02.2010 18:38
004 Erstellt am: 07.02.2010 18:38
005 Letzter Zugriff am: 22.03.2010 21:25
006 Attribute: {Dateiattribute, wie Archiv, ReadOnly...}
007 Status: {Status}
008 Besitzer: {Besitzer, PC-Name\UserName}
009 Autor: {Author/Interpret}
010 Titel: {Titel}
011 Thema: 
012 Kategorie: {Kategorie/Genre}
013 Seiten: 
014 Kommentare: 
015 Copyright: 
016 Interpret: {Author/Interpret}
017 Albumtitel: 
018 Jahr: {Jahr}
019 Titelnummer: {Titelnummer}
020 Genre: {Kategorie/Genre}
021 Dauer: {Dauer}
022 Bitrate: {Bitrate}
023 Geschützt: {Geschützt?}
024 Kameramodell: 
025 Bild aufgenommen am: 
026 Abmessungen: 
029 Folgenname: 
030 Sendungsbeschreibung: 
032 Abtastgröße: 0 Bit
033 Abtastrate: {Abtastrate}
034 Kanäle: {Kanäle}
035 Firma: 
036 Beschreibung: 
037 Dateiversion: 
038 Produktname: 
039 Produktversion: 
040 Keywords:

Code:
// Methode 2
000 Name: {Name der Datei}
001 Größe: {Größe der Datei in KB}
002 Typ: {Medientyp}
003 Geändert am: 07.02.2010 18:38
004 Erstellt am: 07.02.2010 18:38
005 Letzter Zugriff am: 22.03.2010 21:25
006 Attribute: {Dateiattribute, wie Archiv, ReadOnly...}
007 Status: {Status}
008 Besitzer: {Besitzer, PC-Name\UserName}
009 Autor: {Author/Interpret}
010 Titel: {Titel}
011 Thema: 
012 Kategorie: {Kategorie/Genre}
013 Seiten: 
014 Kommentare: 
015 Copyright: 
016 Interpret: {Author/Interpret}
017 Albumtitel: 
018 Jahr:  {Jahr}
019 Titelnummer:  {Titelnummer}
020 Genre: {Kategorie/Genre}
021 Dauer: {Dauer}
022 Bitrate: {Bitrate}
023 Geschützt: {Geschützt?}
024 Kameramodell: 
025 Bild aufgenommen am: 
026 Abmessungen: 
029 Folgenname: 
030 Sendungsbeschreibung: 
032 Abtastgröße: 0 Bit
033 Abtastrate: {Abtastrate}
034 Kanäle: {Kanäle}
035 Firma: 
036 Beschreibung: 
037 Dateiversion: 
038 Produktname: 
039 Produktversion: 
040 Keywords:
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben