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

[0] Índice de Mensajes

Ir a la versión completa