node.jsを使用して、次のような小さなアプリケーションを作成したいと思います。
console.log("Creating extra beer holder...");
EjectCD();
そのような機能はすでに存在しますか、それともこれを行うために何らかのC ++バインディングを作成する必要がありますか?
node.jsを使用して、次のような小さなアプリケーションを作成したいと思います。
console.log("Creating extra beer holder...");
EjectCD();
そのような機能はすでに存在しますか、それともこれを行うために何らかのC ++バインディングを作成する必要がありますか?
これを行うには、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:"
Linuxでは、nodejsを使用してeject
コマンドラインを呼び出すことができます...
var exec = require('child_process').exec;
exec("eject [options]", function (error, stdout, stderr) { ... })
Windowsでは、メディアコントロールインターフェイスを活用する必要があります。残念ながら、NodeJSにはまだ何も存在していないようです。そのため、別の言語のパッケージを使用して、何かを移植したり、デイジーチェーン接続したりする必要があるかもしれません。Luaにはそれを行うために書かれたモジュールがあります...
これで、CDドライブを取り出すために使用できるNPMモジュールができました。これがモジュールです。
var diskdrive = require('diskdrive');
diskdrive.eject();
現在、Windowsはサポートされていませんが、LinuxとMacの両方がサポートされています。ライブラリは、CDドライブを取り出すために必要なそれぞれのコマンドラインツールを呼び出すだけで機能し、同時にさまざまなOSのサポートを追加し、コールバックの地獄を排除します。