![]() |
MCISendString und Leerzeichen im Dateinamen?
Hallo Leute,
ich will in meinem Programm nur einen wav-Sound abspielen: C:\WINDOWS\Media\Windows XP-kritischer Fehler.wav Leider klappt's bei mir nicht :? Das heißt, das Programm lässt sich zwar kompilieren, aber es kommt kein Sound... Ich habe auch schon viel im Internet gesucht und dabei herausgefunden, dass mein Problem offensichtlich mit der Tatsache, dass der Dateiname Leerzeichen enthält, zu tun hat. Leider haben viele Versuche mit " bei mir nicht geklappt :gruebel: Kennt jemand einen Kniff, der mir weiterhilft? Wär' super! :cheer: Hier mal der Code:
Delphi-Quellcode:
Im Label wird dann 296 ausgegeben (falls das jemandem weiterhilft :cyclops: )
procedure TForm1.Button1Click(Sender: TObject);
const FileName = '"C:\WINDOWS\Media\Windows XP-kritischer Fehler.wav"'; begin label1.Caption := inttostr( MCISendString(PChar('open ' + FileName), nil, 0, Handle)); end; In manchen Codeausschnitten hab' ich ansatt "Handle" auch eine "0" gefunden, was macht das denn für einen Unterschied, bzw. wofür sind beide gut? Außerdem habe ich manchmal noch ein "+ ' type sequencer alias sound'" hinter "Filename" gefunden, wovon ich auch nicht weiß, was es bewirken soll :stupid: Liebe Grüße, Elko |
Re: MCISendString und Leerzeichen im Dateinamen?
Hallo Elko,
MCI versteht keine langen Dateinamen - da hilft nur sowas hier:
Delphi-Quellcode:
Getippt und nicht getestet.
function GetShortPathName(fn: TFileName): TFileName;
var buf: array [0..MAX_PATH] of Char; begin SetString(Result, PChar(@buf), Windows.GetShortPathName(PChar(fn), @buf, MAX_PATH) ) end; procedure TForm1.Button1Click(Sender: TObject); const FileName = '"C:\WINDOWS\Media\Windows XP-kritischer Fehler.wav"'; begin label1.Caption := inttostr( MCISendString(PChar('open ' + GetShortPathName(FileName)), nil, 0, Handle)); end; Grüße vom marabu |
Re: MCISendString und Leerzeichen im Dateinamen?
Moin Elko,
schau Dir doch mal die Dokumentation zu den vor Dir verwendeten Funktionen an (z.B. ![]() 296 ist ein Fehlercode, den Du Dir mit ![]() |
Re: MCISendString und Leerzeichen im Dateinamen?
Ahhhhhhh, jetzt funktionierts, Danke! Allerdings muss ich die doppelten Anführungszeichen dann weglassen :dancer:
Die Dokumentationen muss ich mir mal in einer ruhigen Minute anschauen :) (scheint viel zu sein^^) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz