AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Syntax SendMCICommand

Ein Thema von Dunkelbunt27 · begonnen am 22. Jul 2012 · letzter Beitrag vom 18. Aug 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#1

AW: Syntax SendMCICommand

  Alt 22. Jul 2012, 23:02
Delphi-Quellcode:
Pfad := '"'+ExtractFilePath(Application.ExeName) + '\Sounds\Sound1.wav"'
SendMCICommand('play ' + Pfad);
\\ ?

Delphi-Quellcode:
// Path = mit \ am Ende
Pfad := '"' + ExtractFilePath(Application.ExeName) + 'Sounds\Sound1.wav"';
SendMCICommand('play ' + Pfad);

// Dir = ohne \ am Ende (gut, mit einer kleinen Ausnahme)
Pfad := '"' + ExtractFileDir(Application.ExeName) + '\Sounds\Sound1.wav"';
SendMCICommand('play ' + Pfad);

// aber da die " eigentlich nicht zum "Pfad" gehören
Pfad := ExtractFilePath(Application.ExeName) + 'Sounds\Sound1.wav';
SendMCICommand('play "' + Pfad + '"');
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Syntax SendMCICommand

  Alt 23. Jul 2012, 06:24
@himitsu

sorry und danke ... ich war müde...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#3

AW: Syntax SendMCICommand

  Alt 23. Jul 2012, 09:59
Super, danke für eure Hilfe!
Der Code sieht jetzt so aus:
Delphi-Quellcode:
//globale Variable in Hauptform, weil ich nicht wusste wie ich das anders lösen sollte
ExePfad := ExtractFilePath(Application.ExeName);

//in Extra Unit
procedure SoundAbspielen(sound: byte);
begin
    SendMCICommand('open waveaudio shareable');
    case Sound of
  // 1: SendMCICommand('play "Sounds\Sound1.wav"'); //Funktioniert, ist aber nicht optimal
     1: SendMCICommand('play "'+ExePfad+ 'Sounds\Sound1.wav"'); //Wirft einen Fehler auf
    end;
    SendMCICommand('close waveaudio');
end;
Beim Debugging steht da, dass folgender Pfad raus kommt:
SendMCICommand('play "C:\Users\...\Sounds\Sound1.wav"');

SendMCICommand gibt den Error aus dem Anhang aus.
("Gerät ist nicht geöffnet oder wird vom MCI nicht erkannt.")

Weiß jemand Rat?
Angehängte Grafiken
Dateityp: png error.png (17,6 KB, 18x aufgerufen)
FG Dunkelbunt
"Wer zuletzt lacht hat den höchsten Ping"

Geändert von Dunkelbunt27 (23. Jul 2012 um 11:44 Uhr) Grund: Bessere Übersichtlichkeit
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#4

AW: Syntax SendMCICommand

  Alt 24. Jul 2012, 16:21
(Ich kann den letzten Post jetzt leider nicht mehr editieren und im Nachhinein ist der Thread-Name ungünstig gewählt...)

Ich bin leider immer noch ratlos...
In der Unit kann man ja ExtractFilePath(Application.ExeName) nicht verwenden, deshalb habe ich ja ExePfad als globale Variable, was ziemlich unschön ist... Könnte darin irgendwie der Fehler liegen?

Ich habe mal die relevanten Code-Teile in ein Delphi Projekt gesteckt... die Exe zum Testen ist im Debug Ordner.
Ich hoffe damit kann mir jemand helfen...
Angehängte Dateien
Dateityp: zip Test Sounds.zip (637,6 KB, 16x aufgerufen)
FG Dunkelbunt
"Wer zuletzt lacht hat den höchsten Ping"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#5

AW: Syntax SendMCICommand

  Alt 24. Jul 2012, 16:41
In der Unit kann man ja ExtractFilePath(Application.ExeName) nicht verwenden,
Wieso nicht?

PS: Application.ExeName = ParamStr(0)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#6

AW: Syntax SendMCICommand

  Alt 24. Jul 2012, 16:51
PS: Application.ExeName = ParamStr(0)
Okay danke, das kannte ich noch nicht.
Auf jeden Fall ist das schon mal optimaler, aber der blöde Fehler kommt trotzdem...
FG Dunkelbunt
"Wer zuletzt lacht hat den höchsten Ping"

Geändert von Dunkelbunt27 (24. Jul 2012 um 18:04 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Syntax SendMCICommand

  Alt 24. Jul 2012, 17:52
Warum nicht einfach playsound anstelle von SendMCICommand? wenn du damit nicht klar kommst.
Deklariert in winmm.dll

PlaySound('Pfad zur Wav Datei', 0, SND_FILENAME Or SND_ASYNC);

Andererseits kannst ja mal hier schauen.

Einfach die Classe deinen bedürfnissen anpassen.
Ist zwar für Midi gemacht geht aber auch mit Wave.


gruss

Geändert von EWeiss (24. Jul 2012 um 18:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 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