人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C#の質問
・C#から実行可能なAPIなどでCDドライブのトレイを開閉することはできますか?
・C#から実行可能なAPIなどでシステムの音量を変更することはできますか?

事前に他の言語でDLLを作り、それを呼び出す方法はできるだけ使わないように
したいと考えております。
アドバイス宜しくお願いします。

●質問者: harunoharuno
●カテゴリ:コンピュータ インターネット
✍キーワード:API C# CD DLL アドバイス
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● freemann
●150ポイント

以下のサイトが参考になるようです。

CDドライブの開閉

http://bbs.wankuma.com/index.cgi?mode=al2&namber=38846&KLOG=67

音量調整

http://bbs.wankuma.com/index.cgi?mode=al2&namber=11021&KLOG=24

◎質問者からの返答

回答ありがとうございます。大変参考になりました。


2 ● y-kawaz
●150ポイント ベストアンサー

ドライブの開閉やシステムのボリューム変更は.NETのAPIではできないと思います。

が事前に自分でDLLを作る必要はなく、OSのAPIを呼び出せばそれで目的は達成できると思います。


とりあえずドライブの開閉は以下のような感じで出来ました。

using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

class Program
{
 [DllImport("winmm", CharSet = CharSet.Auto)]
 private static extern int mciSendString(
 string command, StringBuilder buffer,
 int bufferSize, IntPtr hwndCallback);

 static void Main()
 {
 
 mciSendString("status my_sound volume", buff, buffのサイズ, IntPtr.Zero);
 foreach (string drive in Environment.GetLogicalDrives())
 {
 DriveInfo di = new DriveInfo(drive);
 if (di.DriveType == DriveType.CDRom)
 {
 mciSendString("open " + drive + " type cdaudio alias orator", null, 0, IntPtr.Zero);
 int canEject = mciSendString("capability orator can eject", null, 0, IntPtr.Zero);
 Console.WriteLine("{0}はイジェクト{1}です。", drive, (canEject == 0) ? "可能" : "不可");
 Console.WriteLine("{0}ドライブを開きます。", drive);
 mciSendString("set orator door open", null, 0, IntPtr.Zero);
 Console.WriteLine("{0}ドライブを閉じます。", drive);
 mciSendString("set orator door closed", null, 0, IntPtr.Zero);
 mciSendString("close orator", null, 0, IntPtr.Zero);
 }
 }
 }
}

システムの音量調整は面倒なので割愛します(^^;

自作DLLを別途作る必要は一応ないと思います。

http://q.hatena.ne.jp/answer

◎質問者からの返答

回答ありがとうございます。

OSのAPIは知っていれば自由に使えるものなのですね。

他にどんなものが存在するのか興味が出てきました。


3 ● sirotugu40
●30ポイント

http://www.atmarkit.co.jp/fdotnet/dotnettips/166pinvoke/pinvoke....

APIを直接呼べばよい

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ