Ich habe ein Beispiel mit mciSendString und wollte dieses ausbauen damit die Länge der geöffneten Datei zurückgegeben wird. Dazu wird die Zahl als String zurückgegeben. Nun kommt einfach der bei der Initialisierung angegebene String, die Funktion erwartet ihn als Parameter aber schreibt anscheinend nichts hinein!? Hier der Code (Ausschnitte):
Code:
public bool Stop() //Das funktioniert { bool ret = false; if (mciSendString(string.Format("stop {0}", this._Alias), string.Empty, 0, IntPtr.Zero) == 0) { ret = mciSendString(string.Format("close {0}", this._Alias), string.Empty, 0, IntPtr.Zero) == 0; } return ret; } public string GetLength() //Hier meine Funktion welche nicht //funktioniert. Auf Überprüfung des // Rückgabewertes habe ich vorerst verzichtet. { string length = ""; mciSendString(string.Format("status {0} ", this._Alias+ " length"), length, 255, IntPtr.Zero); return length.ToString(); } [DllImport("winmm.dll")] private static extern int mciSendString(string lpCommand, string lpReturn, int nReturnLength, IntPtr callBack); [DllImport("kernel32")] private static extern int GetShortPathName(string lpLongPath, StringBuilder lpShortPath, int Buffer); } }
Comment