dateien ausführen lassen
-
hmm, viel hat mir das nicht geholfen.
Ich hab davon nicht geholfen, ich suchte etwas wie Shellexecute(...)
aber damit kann ich nur Webseiten öffnen.
trotzdem danke[
eventuell auf deutsch mit anwendungsbeispiel]
-
Bitte entschuldigt den Doppelpost, aber sonst wird der Thread nicht aktualisiert und meine Frage hat sich etwas geändert. (besser als ganz neu).
Warum macht er da nichts was ich möchte sieht man oben (etwas ausführen)#include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]) { ShellExecute(NULL, "open", "D:\Tools Treiber Progs\Spiele\My Games\randomize von *** ******.exe", NULL, NULL, SW_SHOWNORMAL); cin.get(); return EXIT_SUCCESS; }
-
Hallo
Probiers mal mit doppelten, rekursiven Slashes.
Mfg.
way
-
Was gibt ShellExecute denn zurück? (Fehlercode und so)
-
@ Badestrand: es passierte einfach nichts kein Compiler Fehler
@way DANKE SO GEHT ES:
ShellExecute(NULL, "open", "D:\\Tools Treiber Progs\\Spiele\\My Games\\randomize von <censored>.exe", NULL, NULL, SW_SHOWNORMAL);
-
Tim06TR schrieb:
@ Badestrand: es passierte einfach nichts kein Compiler Fehler
Das ist klar, aber ShellExecute gibt bei einem Fehler (z.B. Pfad wurde nicht gefunden) zur Laufzeit einen entsprechenden Fehlercode zurück, den man auswerten kann.
-
ähm mit Musik funktioniert das irgendwie nicht oder mache ich etwas anderes falsch ?

-
Hallo
Liegt daran das Windows das standardmäßig "detected". Du musst bedenken, dass das im Prinzip nur ein Format mit irgendwelchen Daten ist, mehr nicht. Das Format wird von Windows erkannt und bei Dobbälklick wird dieses File direkt an einen Autoplayer geschickt, der dieses File intepretiret, decodiert und dann wiedergibt. Falls du also ein Lied abspielen möchtest, gibt es Standardfunktionen aus der stdio.h wie zum Beispiel diese hier um WAV-Dateien abzuspielen:
PlaySound(name, NULL, SND_FILENAME | SND_ASYNC);Bevor die berüchtigte Frage kommt, dass kannst du so machen:
#include <windows.h> #include <iostream> #include <stdio.h> //#pragma comment(lib,"winmm.lib"); Für VS, kennt man ja mittlerweile bool PlayWAV(const char *Filename) { if(Filename == NULL)std::cout<<"Nae, nix gefunden!"<<std::endl; return false; PlaySound(name, NULL, SND_FILENAME | SND_ASYNC); }; int main() { PlaySound("tätätätääää.wav"); std::cin.get(); }Mfg.
way
-
Diese Frage kommt bestimmt voll blöd rüber aber bei der verwendung von:
PlaySound(instpa.c_str(), NULL, SND_FILENAME | SND_ASYNC); \\instpa = pfad der dateikommt folgender compiler ERROR
[Linker error] undefined reference to `PlaySoundA@12'und danach
ld returned 1 exit status
-
Hallo
Er versucht auf die Standardfunktion zu referieren bzw. zuzugreifen. Hast du die stdio includiert? Bist du sicher das sie vorhanden ist? Mit welcher IDE arbeitest du, mit Visual Studio oder einer Anderen (wie zum Beispiel Dev-C++, Borland...)?
Mfg.
way
-
die stdio.h (.h!) ist drin
und ich arbeite mit dem veralteten Dev C++ (Ich nutzt das weil es sehr unkompliziert und kostenlos ist)durchs googeln hab ich nichts anständiges gefunden.
nur steig auf ein anderes Programm um Dev cpp ist veraltet.Gibt es eine alternative zu PlaySound ? ist mir all ****** egal hauptsache irgendetwas spielt dann ein gewähltes tönchen oder lied ab.
mit der alternative:
mciSendString("open file.mp3", NULL, 0, NULL); mciSendString("play file.mp3 wait", NULL, 0, NULL); mciSendString("close file.mp3", NULL, 0, NULL); (anwendungsbeispiel)kommt:
(aufgepasst)[Linker error] undefined reference to `mciSendStringA@16'ach was für ein wunder A@16.
ist das alles ein mist
-
Google
PlaySound MSDN eingeben
Erster Link anklicken
-> http://msdn.microsoft.com/en-us/library/ms712879.aspxGanz unten steht:
Library: Use Winmm.libAnders gesagt, du musst die
Winmm.libzu deinem Projekt linken, damit duPlaySoundverwenden kannst.<stdio.h>ist übrigens kein C++ Header, sondern ein C Header. In C++ heisst der<cstdio>.Gratis IDEs gibt es auch aktuellere:
- Code::Blocks
- Microsoft Visual Studio 2008 Express EditionDie Microsoft IDE ist vielleicht nicht ganz so einfach zu verstehen, bietet dafür einen extremen Umfang an Funktionen.
Code::Blocks sollte sehr leicht zu verwenden sein.ShellExecuteauf ein Soundfile öffnet einfach den Defaultplayer für dieses Soundfile, sofern alle Eingaben korrekt waren.@way,
Was soll das mitstdiozu tun haben??Grüssli
-
Hallo
Was soll das mit stdio zu tun haben??
Kommt das nicht aus stdio?
Mfg.
way
-
way schrieb:
Was soll das mit stdio zu tun haben??
Kommt das nicht aus stdio?
Tut mir Leid, aber da musste ich jetzt lachen

Die Funktion unterscheidet sich ja schon nur in der Schreibweise von Standardfunktionen.In
<cstdio>findest du die folgenden Funktionen:
http://www.cplusplus.com/reference/clibrary/cstdio/PlaySoundist ganz eindeutig eine WinAPI Funktion. Kannst du auch im Link nachlesen, den ich oben hingeschrieben habe (bzw. Copy&Paste aus der Browseradresszeile).Grüssli
-
Dravere schrieb:
...
Mal davon abgesehen, löst das Einbinden eines Headers i.d.R. keine undefinierten Referenzen auf.
-
das hab ich mir auch schon angesehen, aber irgendwie will es trotzdem nicht.
#include <cstdlib> #include <iostream> #include <windows.h> #include <string> #pragma comment( lib, "winmm.lib" ) #include <mmsystem.h> #include <stdio.h> #include <fstream> #include <conio.h> #include <cstdio> #include <sstream> #include <stdlib.h>das sind alles sachen die ich mit drin hab und wenn da was fehlen sollte informiert mich :(.
(natürlich hat dies Programm noch viele andere Funktionen, daher die vielen libs.
-
wenn du dev cpp mit mingw benutzt heisst die lib libwinmm.a
-
ähm ja ich nutze Dev cpp mit mingw.
aber bei#pragma comment( lib, "libwinmm.a" )geht es auch nicht oder mache ich hier wieder einen fehler ?
-
#pragma commentist kein Standard C++. Keine Ahnung ober das der MinGW Kompiler auch unterstützt. Am besten linkt man solche Dinge im Makefile, bzw. in der IDE in den Kompileroptionen zum Projekt. Aber ich hätte keine Ahnung, wo man dies unter DevCpp findet, da ich den nicht verwende.Grüssli
-
füg die lib mal in den projekteinstellungen dazu, mingw scheint pragma comment nicht zu unterstützen
edit: hab die neueste version, der mag das nicht