VBでサウンドカードのボリュームコントロールを制御する(「再生」と「録音」の音量の調節を手動で行いたい)ActiveXを作成したいのですが、どのように行うのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

どうやらDirectXのほうにボリュームを調整する機能は用意されているみたいです。


DirectXは使ったことないのでこれ以上のことはわかりませんが、そちらを勉強してみては。
DirectSoundBuffer.SetVolumeとか。
    • good
    • 0

http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/ …
で検索をしてみては?

関連を「MCI」で検索したら、ミキサー関連の操作API関数がヒットするのですが、、、

マルチメディア苦手。。。
('_`)ウゥ

参考URL:http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/ …
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qカスタムコントロール作ってます(VB.NET)。VB.Net にVB.6のActiveX作成時にあったプロパティページ作成ができないようですが

タイトルどうりです。VBNETのカスタムコントロールでデザインモードにおけるフォームつまりプロパティページやビジュアルにプロパティボックスから設定できるようにしたいのですが、どうしたらできるでしょうか?VB6ではできたのですが、(Activexコントロール)。

よろしくお願いします。

Aベストアンサー

通常のプロパティと同じように、プロパティ ウィンドウに項目を表示して設定できるようにする必要があります。
具体的には、
1. カスタム コントロールのクラスに外部公開する Property プロシージャを作成して、内部で値を保存できるようにする。
2. そのプロパティの宣言部分で、プロパティ ウィンドウに表示するように指示する属性値を設定する。

こんな感じです。

参考URL:http://www.atmarkit.co.jp/fdotnet/winexp/winexp02/winexp02_01.html

QVB6.0で作成したActiveXコントロール

お世話になっております。

VB6.0で作成したActiveXコントロールをディストリビューションウィザード
でパッケージ(インターネット用CABファイル)にし、Win2000Server(IIS)に
設定後、クライアントPCからIEで表示しようとすると、「セキュリティ警告」
のダイアログが表示され、ダイアログで「はい」を選択しても画面が表示さ
れません。(デジタル署名は未作成)

Win2000Proで同様のテストした場合は画面の表示まで実行出来ました。
IEではサーバーを信頼済みサイトに設定しています。

ダイアログタイトルは、
「セキュリティ警告」
メッセージが、
XXXXXXX.CABをインストールして実行しますか?
発行者は次の問題のため判別できません
AUTHENTICODE署名を検出できません
です。


上記の症状が発生する原因等をご存知の方がいらっしゃいましたら、ご教授をよろしくお願いいたします。

Aベストアンサー

ところで確認したクライアントPCのOSは?

VBのランタイムが入っていないのでは?
作成したバージョン(SPも含む)のランタイムが
入っているか確認してみてください。

QActiveXコントロールの作成(VB6)

こんばんは。
今、VB6でActiveXコントロールを作成しようと思っています。
現在、標準EXEにて、プログラムが作ってあります。
動作としては、
1.スタートボタン(CmdStart)で開始
2.処理(外部の測定器によるデータ収集)
3.終了ボタン(CmdEnd)にてプログラム終了
です。

これをもとに、ActiveXコントロールを作成したいです。手元にある文献にしたがってほぼコピー&ペーストで作成しました。また、これの動作を調べるため、標準EXEのフォームを作成し、そのフォームにActiveXコントロールを貼り付けました。

ここで質問です。
Form_LoadはUserControl_Initializeに書き換えました。(これは文献に載っていました)

最後のプログラム終了がうまくいきません。
標準EXEでは
Private Sub CmdEnd_Click()
Unload Me
End Sub
と書いてプログラムを終了させていました。
ここを書き換えずにActiveXコントロールを実行させたらエラーが出ました。"Unload Me"を"End"に書き換えてみたら、サポートされていないと出ました。

CmdEndをクリックしてプログラムを終了させるにはどう書けばいいでしょうか?

よろしくお願いします。

こんばんは。
今、VB6でActiveXコントロールを作成しようと思っています。
現在、標準EXEにて、プログラムが作ってあります。
動作としては、
1.スタートボタン(CmdStart)で開始
2.処理(外部の測定器によるデータ収集)
3.終了ボタン(CmdEnd)にてプログラム終了
です。

これをもとに、ActiveXコントロールを作成したいです。手元にある文献にしたがってほぼコピー&ペーストで作成しました。また、これの動作を調べるため、標準EXEのフォームを作成し、そのフォームにActiveXコント...続きを読む

Aベストアンサー

ActiveXコントロール内で、プログラムを終了させよう、というプログラムデザインがそもそもの元凶だと思われます。
質問で書かれていた、1,2,3の処理中、2の機能を持ったActiveXコントロールを作成する。
1の処理開始、3のプログラム終了はActiveXコントロールを貼り付けられるプログラム本体で処理する方が良いと思います。

仮に2の処理終了と同時に、プログラムを終了させたいと言うことであれば、ActiveXコントロールに処理終了イベントを実装します。

'処理が終了したことを通知するイベント
Event ShoriShuryo
のような感じです。

処理が終わった際に、

'処理終了イベントを発生させてプログラム本体に通知する
RaiseEvent ShoriShuryo

としてやれば、本体プログラム中でShoriShuryoイベントが発生しますので、プログラム終了のためにUnload Meを実行します。

決してお勧めなわけではありませんが、以下のようにすると内部の終了ボタンがクリックされた事を、本体プログラム側に通知することができます。
'『終了』コマンドボタンがクリックされたことを通知するイベント
Event EndClick

Private Sub CmdEnd_Click()
  RaiseEvent EndClick
End Sub

ActiveXコントロール内で、プログラムを終了させよう、というプログラムデザインがそもそもの元凶だと思われます。
質問で書かれていた、1,2,3の処理中、2の機能を持ったActiveXコントロールを作成する。
1の処理開始、3のプログラム終了はActiveXコントロールを貼り付けられるプログラム本体で処理する方が良いと思います。

仮に2の処理終了と同時に、プログラムを終了させたいと言うことであれば、ActiveXコントロールに処理終了イベントを実装します。

'処理が終了したことを通知するイベント
Event S...続きを読む

QActiveX DLL と ActiveXコントロールの違い

VB6で開発をしています。
複数のEXEファイルを使用するシステムです。
各EXEファイルの共通のモジュールをライブラリ化しようと思っています。

これは [ActiveX DLL] 又は、[ActiveXコントロール] のどちらでも実現できると思うんですが、どちらで作成した方が良いのでしょうか?

それぞれのメリット、デミリットを教えて下さい。

Aベストアンサー

混乱させますw

私も最近まで知らなかったのですが、任意のタイミングでOCXもインスタンスの生成が可能みたいです。
WinSockを張らずにPGを書き上げ、WinSockコントロールを使用する方法がわたしの利用しているメーリングリストに出ておりました。
その結末は、「あまり公開はされてはいないけど、ほとんどのコントロールはEXEにしてからOCXとして取り込むことができる」ということです。


ActiveXDLLも参照設定をしなければ、DLLバージョンが違っても大丈夫です。
ただし宣言が
As HogeHoge←(DLLの定義)を
As Object
として、CreateObject("DLL定義")のように行うと、引数が一緒ならEXEはリコンパイルしないでもいいです。実例として、エクセルを参照設定して[as Excel]と宣言していたら、その参照設定に対応したExcelしか操作できませんが、[As Object]と[CreateObject("Excel.Application")]とすると、EXCEL95~XPまで扱えます。
不便なのは、タイプライブラリが未設定になるので、Excelの各プロパティ/メソッドを知らないといけないし、Excel固有の定数が宣言もされてないので、自分で定数値を調べなければいけません。でもバージョンの違いを気にしないでいけるのは、非常に便利です。


速さのことを言ったら、当然DLLが早いです。
OCXはプロパティにRight/Leftなどを持っています。変えて言うと実体を持っていると言うことです。非表示にしていても実体をもっています。DLLはインスタンスは生成されますが、OCXだって生成されるので、表示しないで使用するなら、OCXの意味があまりありません。


んで、私(個人)の考えとしては、、、
※オリジナルボタンなどの、画面上必要ならOCX
  理由:画面に必要だから
※画面に表示を行う必要がなくても、配布する気ならOCX
  理由:配布先のユーザが扱いやすい
※そうじゃなければDLL
  理由:OCXにする理由が見つからないから


余談です。
私はいつもCommonコントロールは使用しません。
  理由:簡単なAPIでも実現できるのに、機能が少ないCommonコントロールを追加して、EXEの容量を大きくしたくないから

混乱させますw

私も最近まで知らなかったのですが、任意のタイミングでOCXもインスタンスの生成が可能みたいです。
WinSockを張らずにPGを書き上げ、WinSockコントロールを使用する方法がわたしの利用しているメーリングリストに出ておりました。
その結末は、「あまり公開はされてはいないけど、ほとんどのコントロールはEXEにしてからOCXとして取り込むことができる」ということです。


ActiveXDLLも参照設定をしなければ、DLLバージョンが違っても大丈夫です。
ただし宣言が
As HogeHoge←(DLLの定...続きを読む

QVB.NET開発。ラジオボタンとコントロールの制御について教えてください

開発環境 : WindowsXP
      office2003
言語   : VB.NET

.NET初心者です。ご存知の方がおりましたらご教示御願いします。

今、ラジオボタンを10個と、
テキストボックスのコントロールを2個(AとB)置いた画面をつくっています。
ラジオボタンは1つしか選択できません。

分からないことは、
その内のラジオボタン5個はAのテキストボックスにのみ使用する、
残りのラジオボタン5個はBのテキストボックスにのみ使用する場合の
制御方法です。

一応、1つのラジオボタンに対して、1つのイベントを発生させるような形で制御はできているのですが、
もっと、効率的な書き方はないでしょうか。
(グループ化するとか?)


どうぞよろしくお願い致します。

Aベストアンサー

イベントハンドラは
Private Sub HandlerMethod(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ☆
上記の☆のところにイベントを捕らえるコントロール名とイベント名が入ります。

略) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
のようにカンマで連結すれば、複数のコントロールをひとつのイベントハンドラで処理することができます。実際にイベントを発生させたコントロールはsenderで判別できます。

手作業でこれを追加してもできますが、フォームデザイナからであれば次の手順で行って下さい。

1. イベントハンドラをまとめるコントロールを選択
(今回の場合はラジオボタン5つ)
2. プロパティウィンドウの稲妻マークをクリック(イベント一覧に変わります)
3. CheckedChangedの欄にイベントハンドラ名(名前は任意。例:RadioChanged)を記入し、Enterキー

これで、複数選択したコントロールをひとつのイベントハンドラで受け取るコードが自動的に生成されます。

※当方VB2005環境で確認しているので、VB.NETが同じかどうかまでは不明です。

イベントハンドラは
Private Sub HandlerMethod(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ☆
上記の☆のところにイベントを捕らえるコントロール名とイベント名が入ります。

略) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
のようにカンマで連結すれば、複数のコントロールをひとつのイベントハンドラで処理することができます。実際にイベントを発生させたコントロールはsenderで判別できます。

手作業でこれを追加してもできますが、フォームデザ...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報