- 締切済み
音量調節
音量を調節するプログラムを作りたいのですが、やり方がわかりません。 具体的には、ウインドウをクリックすると 音量を100%または10%に切りかえるというものです。 分かる方がいらっしゃいましたら教えてくださいm(_ _)m
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- machongola
- ベストアンサー率60% (434/720)
こんばんは。御礼頂き感謝いたします。 もしかしたらVISTAが理由なのかもしれません・・・。 当方の方でも2番目のソースを利用して実験してみましたが、動作確認出来ています。 ただし、win2000/visual studio 6.0と言う環境です。 以下のコードで実験しました。一応記載しておきます。マウスの左ボタンを押すたび、ボリュームが15又は0になります。 ウィンドウズのボリュームコントロールのアプリを立ち上げて確認できます(クリックされるたび音量スライダーが上下に動く)。 LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { static bool s_b = false; switch(uMsg) { case WM_CREATE : return TRUE; case WM_CLOSE : ::DestroyWindow(hWnd); return FALSE; case WM_DESTROY : ::PostQuitMessage(0); return FALSE; case WM_LBUTTONDOWN : { s_b ^= 0x1; //左ボタンを押すたびにボリュームが15又は0に切り替わる const int volume = s_b ? 15 : 0; //新規ボリューム値を設定する ::SetMasterVolume(volume); return FALSE; } default : break; } return ::DefWindowProc(hWnd, uMsg, wParam, lParam); } INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { //ボリュームコントロールの為の初期化をする ::InitMasterVolumeControl(); //以下windowsプログラムのお決まりパターン return msg.wParam; }
- machongola
- ベストアンサー率60% (434/720)
こんにちは。 情報や手本であるならば、幾らでも散見します。 少し試してみましたが、取り扱いは極めて面倒な物です。 http://www.terra.dti.ne.jp/~vivas/delphi/mixerapi.html http://hp.vector.co.jp/authors/VA016117/mixer1.html http://doglover.jp/index.php?%B2%BB%CE%CC%C4%B4%C0%E1%A4%F2%A4%B7%A4%BF%A4%A4
- 参考URL:
- http://www.google.co.jp/search?hl=ja&lr=&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=MIXER+api&spell=1
お礼
お返事ありがとうございます。 2番目のサイトが比較的分かりやすそうだったので、試してみました。 プログラム自体は正常に処理できてるみたいなんですが、 音量に全く変化がありませんでした。 どうしてでしょうか。。。 書き忘れましたが環境はVista HomePremiumでコンパイラは VC++ 2005 Expressです。
お礼
machongolaさん、ありがとうございます。 ↑のコードを試してみましたが、やはり無理なようです。 vistaが原因なんでしょうか…。 なので多少荒技ですが以下の方法で操作することにしました。 ためになるアドバイスをありがとうございました。 case WM_LBUTTONDOWN: vol *= -1; //volが1なら音量100%、-1なら10% if(vol == 1){ for(i=0; i<適当な値; i++){ keybd_event(0xAE, 0, 0, 0); keybd_event(0xAE, 0, KEYEVENTF_KEYUP, 0); } } else{ for(i=0; i<適当な値; i++){ keybd_event(0xAF, 0, 0, 0); keybd_event(0xAF, 0, KEYEVENTF_KEYUP, 0); } } break;