Programación General > C/C++
Por favor función system
(1/1)
rodrii87:
Hola a todos! ,
estoy con un programilla en el que tengo que aumentar y disminuir el volumen del sonido. Para ello necesito utiliar la funcion system (que no termino de entender cómo funciona) y no sé qué estoy haciendo mal. Yo he probado de la siguiente forma, a ver si me podeis echar una manilla:
Lo que necesito es llamar al cmd y se ejecute lo siguiente: nircmd.exe changesysvolume z
z es un número. Para ello utilizo 3 if (en el 1º aumento el volumen y en el 2º lo disminuyo por eso necesito que z tome valor negativo):
..............
media=(v1+v2+v3+v4+v5)/5;
nivel_max=58;
nivel_min=43;
x=(nivel_min)-(media);
y=(media)-(nivel_max);
if(media<nivel_min)
{
z=(x*50)/1;
system("cmd nircmd.exe changesysvolume z);
}
if(media>nivel_max)
{
z=(y*50)/1;
system("cmd nircmd.exe changesysvolume -z);
}
if(nivel_min<=media<=nivel_max)
{
printf(" no se modifica el volumen");
}
system("cmd /c dir");
.............
Muchas gracias de antemano!! espero vuestras respuestas o cualquier consejo.
Geo:
Deberías dar más detalles de tu problema, como por ejemplo, qué es nircmd :P. También, ¿qué error te da el compilador?
La llamada a system debería ser algo como:
--- Código: C --- system( "nircmd.exe changesysvolume 10000" );
También tienes el detalle de que el argumento de la función system debe ser una cadena de texto, no puedes pasar el valor de la variable z como lo estás intentando, antes debes convertirla al tipo adecuado.
Eternal Idol:
Exactamente; cuando llamas a system z esta dentro de la cadena, es decir, no es mas que un caracter. Podes usar sprintf para generar una cadena con el comando y el numero (z):
--- Código: C++ ---char volumeCommand[64];sprintf(volumeCommand, "cmd nircmd.exe changesysvolume %d", z);system(volumeCommand);
Navegación
Ir a la versión completa