lautstärke verändern; >=windows7



  • Hallo,

    ich suche ein tutorial über die winapi / lautstärke-einstellungen.
    ziel ist es, ein programm zu haben, was die lautstärke verändern kann (lauter/leiser/ein - nur global; also nicht prozessspezifisch).

    bisher hatte ich das durch eine key-send-funktion gelöst.
    das geht leider nicht mehr, weil das programm aus einem php-script heraus aufgerufen wird -> benutzer: system -> key-sends funktionieren nicht mehr.

    was ich bisher zur audio device api gefunden habe, ist mir aber zu verworren.

    danke im voraus

    PS:
    falls es doch mit SendInput gehen sollte und ich nur was falsch gemacht habe:

    #include <Windows.h>
    
    enum key_codes
    {
    	MY_VK_VOLUME_MUTE = VK_VOLUME_MUTE
    };
    
    void key_down(key_codes key)
    {
    	KEYBDINPUT keyboard_input = {0};
    	keyboard_input.wVk = WORD(key);
    	keyboard_input.wScan = 0;
    	keyboard_input.dwFlags = 0x0;
    	keyboard_input.time = 0;
    	keyboard_input.dwExtraInfo = 0;
    
    	INPUT Input;
    	Input.type = INPUT_KEYBOARD;
    	Input.ki = keyboard_input;
    
    	SendInput(1, &Input, sizeof(Input));
    }
    void key_up(key_codes key)
    {
    	KEYBDINPUT keyboard_input = {0};
    	keyboard_input.wVk = WORD(key);
    	keyboard_input.dwFlags = KEYEVENTF_KEYUP;
    	keyboard_input.time = 0;
    	keyboard_input.dwExtraInfo = 0;
    
    	INPUT Input;
    	Input.type = INPUT_KEYBOARD;
    	Input.ki = keyboard_input;
    
    	SendInput(1, &Input, sizeof(Input));
    }
    void press_key(key_codes key)
    {
    	key_down(key);
    	key_up(key);
    }
    
    int main()
    {
    	press_key(MY_VK_VOLUME_MUTE);
    }
    


  • Entweder über SendMessage mit WM_APPCOMAND oder (besser) über IAudioEndpointVolume, da du bei letzterem auch den Status von Mute checken kannst (Beispiele findest du dort auch 😉 )



  • hatte ich zwar schon gelesen, aber da ich jetzt wusste, dass dort irgendwo nen bsp. sein muss, hab ichs auch endlich mal gefunden:

    http://msdn.microsoft.com/en-us/library/bb331828.aspx
    war zwar etwas kompliziert, das ganze auseinander zu friemeln... aber das ist ja normal^^

    danke : >


Anmelden zum Antworten