• Lunes 29 de Abril de 2024, 10:27

Autor Tema:  Por favor función system  (Leído 920 veces)

rodrii87

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Por favor función system
« en: Sábado 12 de Septiembre de 2009, 21:02 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Por favor función system
« Respuesta #1 en: Lunes 14 de Septiembre de 2009, 09:04 »
0
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
  1.  
  2. system( "nircmd.exe changesysvolume 10000" );
  3.  
  4.  

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.
« última modificación: Lunes 14 de Septiembre de 2009, 19:19 por Geo »
La imaginación es el límite.
Hardware & Software | Mexchip

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Por favor función system
« Respuesta #2 en: Lunes 14 de Septiembre de 2009, 09:09 »
0
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++
  1. char volumeCommand[64];
  2. sprintf(volumeCommand, "cmd nircmd.exe changesysvolume %d", z);
  3. system(volumeCommand);
  4.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.