Anfänger braucht Hilfe beim Aufruf mit system()
-
Hier hab ich gezeigt, wie man system() auf Windows nachbauen kann:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-227972-and-start-is-10.htmlIch denke das löst dein Problem.
-
flamer schrieb:
Hier hab ich gezeigt, wie man system() auf Windows nachbauen kann:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-227972-and-start-is-10.htmlIch denke das löst dein Problem.
Ist OK, ich probiers mal aus, aber am stecken bleiben liegt es nicht, da der Befehl "start..." sofort wieder beendet wird und das Programm offen bleibt.
Mein Problem ist "Beep", denn es bleibt leise.
Und wenn ich den String mit name.c_str() deiner Funktion system_ übergebe mekert er, dass es const char* ist und nicht char*...
Was kann man da machen?
mfg
-
Mein Problem ist "Beep", denn es bleibt leise.
Das finde ich komisch.
Versuch einmal, das Zeichen '\a' auszugeben, sollte piepen.
Wenn nicht ist nämlich der Lautsprecher kapput/im Bios verpfuscht/whatever.
-
http://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx
Da steht auch noch was über den Rückgabewert von Beep(), der
kann Fehler anzeigen. Am besten auch noch GetLastError() aufrufen,
beide Werte bitte posten. Dann kriegen wir das hin, wenn der Lautsprecher
noch geht.
-
flamer schrieb:
Mein Problem ist "Beep", denn es bleibt leise.
Das finde ich komisch.
Versuch einmal, das Zeichen '\a' auszugeben, sollte piepen.
Wenn nicht ist nämlich der Lautsprecher kapput/im Bios verpfuscht/whatever.Habe ich am Anfang so gemacht, aber in meinem Quellcode ist die Funktion FreeConsole() drin, um die Konsole zu verstecken, und wenn ich ein printf machen will muss ich sie erst wieder mit AllocConsole() wieder her holen.
Und nur wegen
FreeConsole(); ... AllocConsole(); printf("\a"); FreeConsole(); ...
Und das vielleicht ein paar mal, dass muss doch leichter gehen.
Wie ist das jetzt mit dem String den ich mit c.str() zu einer const char* mache, kann ich den jetzt wieder zu einer char* machen?
-
Die Sache mit dem const sollte nur eine Warnung geben.
Aber wenn dich die stört, kannst du meinen Code so ändern:int __system__(const TCHAR *cmdline)
Das sollte reichen.
-
Habe ich am Anfang so gemacht, aber in meinem Quellcode ist die Funktion FreeConsole() drin, um die Konsole zu verstecken, und wenn ich ein printf machen will muss ich sie erst wieder mit AllocConsole() wieder her holen.
Verstehe ich.
Ich frage deshalb so blöd, weil ich schon einmal einen kapput
gemacht habe, und ewig nicht draufgekommen bin.
Deshalb: '\a' nur um zu testen, ob's überhaupt noch geht.
-
Ja geht, war nur ne Warnung, hattest Recht.
Jetzt hab ich mal nur ein Programm gemacht, was nur Beep macht und auch das war leise.
Hab mit "net stop beep" probiert den Dienst neu zu starten, aber es kam nur die Fehlermeldung "nicht kontrollierbar". Kannst sehen durch "net helpmsg 2189"
Und mit "net start beep" kommt, das is schon gestartet.
//EDIT:
Hab jetzt im Geräte Manager geschaut unter Nicht-PNP-Geräte und habe Beep gefunden.
Status: Wird beendet!!!Hat sich warscheinlich beim Versuch sich zu beenden aufgehängt, werde neu starten und haffen das es wieder geht!
-
Ja hattest recht.
Mit \a hats gemacht und nach einen Neustart hat auch wieder Beep() funktioniert.
Vielen Dank flamer für deine hilfreiche Posts.
Kann geclosed werden.
-
ansi c yeah!
not