
VBSでCDトレイのオープン/クローズのコーディング方法わかりません。
Excel for VBA では出来ましたが、VBSで作りたいのです。
http://www.mhl.janis.or.jp/~winarrow/vbscript/ht …
を見ると、VBSではDeclareが使えないようですね。
やり方がわかる方がいましたら、よろしくお願いします。
-----------
[Excel for VBA]
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpSectorsPerCluster As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Sub CD_Open()
Ret = mciSendString("set cdaudio door open", vbNullString, 0, 0)
End Sub
Sub CD_Close()
Ret = mciSendString("set cdaudio door closed", vbNullString, 0, 0)
End Sub
-----------
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VBSで、Win32APIを動かす方法もあったけれども、会社などでは、ツールを搭載することになるので簡単には行きませんから、このようにすれば出来るのではないかと思います。
''VBScript
Dim oWMP
Dim colCDROMs
Dim i
Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWmp.cdromCollection
For i = 0 to colCDROMs.Count - 1
colCDROMs.Item(i).Eject
Next
MsgBox "キーを押してください。" & vbCrLf & _
"CD トレイが閉じます。", 0 + 64, "CDトレイの開閉"
For i = 0 to colCDROMs.count -1
colCDROMs.Item(i).Eject
Next
set oWmp = Nothing
set colCDROMs = Nothing
WScript.Quit
No.1
- 回答日時:
3つほど書きますが、自分では検証していないのでご参考までに。
1. WMI
確かに、WSH(VBScript,JScript)から Win32 APIを直接呼び出す事はデフォルトではできません。
それを代替する機能(と言うか新しいメソッド)として、WMI があります。
この場合は、CDドライブ関連なので、多分 Win32_CDROMDrive を使うと思います。
検索したところ、トレイOPEN/CLOSEの例もありましたが成功サンプルは見つけられませんでした。
(ちゃんと見れていないだけかも)
Q&Aのやり取りです。(英語)
↓
Help needed on Eject and Close CD script
http://www.ureader.com/message/854874.aspx
2. 他のコンポーネントで代替
上記のQ&Aでは、メディアプレイヤーのコンポーネント(WMPlayer.OCX.7)をCreateObjectして、イジェクトする回答も寄せられていました。
3. Win32 API 直接呼び出し
デフォルトではなくフリーウェアで、WSH から Win32 API を直接呼び出すコンポーネントがあります。
DynWrap Helper コンポーネント
http://members.at.infoseek.co.jp/IUnknown/WSH/dw …
昔はDynaCallと言うものがありましたが、その拡張と言うか後発版のようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでMSComm が追加できず?
-
Delphiでカスタムコンポーネン...
-
VB.NETでフォーム上にExcelのよ...
-
VBSでCDトレイのオープン/ク...
-
コントロールの表示・非表示
-
Visual Basic 2010を使ってRS-2...
-
C#で参照したCOMコンポーネント...
-
[delphi] 変数を利用してコンポ...
-
ファイル保存先のダイアログが...
-
JScrollPane上のJTableの再描画
-
エクセルVBAで、条件に一致する...
-
「タイプ初期化子が例外をスロ...
-
変数名の付け方
-
UMLのクラス図はmain()も含むん...
-
エクセルVBA 画像を貼り付ける...
-
コマンドプロンプト実行後に画...
-
配列の重複する値とその個数を...
-
配列のメソッド
-
Labelコントロールの背景をグラ...
-
パワーポイントのVBAでテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
VB.NETでMSComm が追加できず?
-
Visual Basic 2010を使ってRS-2...
-
requestFocusについて
-
コントロールの表示・非表示
-
delphi stringgrid
-
コンポーネント
-
ファイル保存先のダイアログが...
-
[delphi] 変数を利用してコンポ...
-
VB6のツールボックスへのコンポ...
-
C#で設定時刻到来時にイベント...
-
ゲーム画面(JFrame)のサイズ変...
-
ツールボックスのような折りたたみ
-
JScrollPane上のJTableの再描画
-
Delphiでの画像の表示について...
-
ダイアログでタイトルバーを非表示
-
C++Builder でPanel上にフォー...
-
VS2010デザイナーの読込エラー...
-
Delphiでビデオキャプチャー画...
-
Buttonの色
おすすめ情報