5

node.jsを使用して、次のような小さなアプリケーションを作成したいと思います。

console.log("Creating extra beer holder...");
EjectCD();

そのような機能はすでに存在しますか、それともこれを行うために何らかのC ++バインディングを作成する必要がありますか?

4

3 に答える 3

4

これを行うには、node.jsが環境コンソールで実行されるという事実を利用します。とはいえ、サーバー上のドライブのみを開き、サーバーのOSに依存します。以下は、CDドライブが「cdrom」としてマウントされているLinux環境で動作するはずです(テストするCDドライブがありません)。

console.log("Creating extra beer holder...");
exec("eject cdrom -r");

このページには、Linuxのejectコマンドの詳細が記載されています:http://linux.about.com/od/commands/l/blcmdl1_eject.htm

イジェクト用のネイティブWindowsコマンドラインコマンドはありませんが、これを実現するためにサーバーに配置できる簡単な実行可能ファイルがいくつかあります。たとえば、http://www.nirsoft.net/utils/nircmd.zipなどです。コマンド:

"C:\nircmd.exe cdrom open d:" 
于 2012-09-07T23:31:27.757 に答える
1

Linuxでは、nodejsを使用してejectコマンドラインを呼び出すことができます...

var exec = require('child_process').exec;
exec("eject [options]", function (error, stdout, stderr) { ... })

Windowsでは、メディアコントロールインターフェイスを活用する必要があります。残念ながら、NodeJSにはまだ何も存在していないようです。そのため、別の言語のパッケージを使用して、何かを移植したり、デイジーチェーン接続したりする必要があるかもしれません。Luaにはそれを行うために書かれたモジュールがあります...

WindowsAPI呼び出しでCD/DVDドアを開きますか?

于 2012-09-07T23:30:07.733 に答える
1

これで、CDドライブを取り出すために使用できるNPMモジュールができました。これがモジュールです。

var diskdrive = require('diskdrive');
diskdrive.eject();

現在、Windowsはサポートされていませんが、LinuxとMacの両方がサポートされています。ライブラリは、CDドライブを取り出すために必要なそれぞれのコマンドラインツールを呼び出すだけで機能し、同時にさまざまなOSのサポートを追加し、コールバックの地獄を排除します。

于 2014-06-02T07:09:33.770 に答える