*[PPx]PPxカスタマイズメモ - コマンドラインからハードウェアの安全な取り外し

最近USB接続のスタンド型HDDドライブ機器を
使用するようになったのでキー一発で取り外し
できたら良いなとPPxにキー定義。

最初はよくある"rundll32.exe shell32.dll,Control_RunDLL hotplug.dll"
を使用したのだが、ウインドウが立ち上がるまで
数秒待たされる。


ちょっと我慢できないなぁーと他を探すことに。
見つかったのがunplug.exe
http://www.vector.co.jp/soft/winnt/hardware/se197531.html


動作が軽いので非常に助かる。
便利に使っていたのだが時々取り外しに失敗する。
なぜだろう?といろいろと調べてみたらどうやら
カレントディレクトリをunplug.exeのディレクトリに
しないとエラーとなることがわかった。


ただしこの現象が出るのはDELLデスクトップだけ。
Thinkpad X61ではカレントディレクトリがどこで
あろうともエラーなく機器の取り外しができる。


どちらもWindows XP Pro 32Bit SP3なのだが。
デスクトップとX61ではインストールしている
アプリがかなり違う。
このため何らかの環境違いによるものかもしれない。


仕方がないのでunplug起動時にカレントディレクトリを
移動してから起動するようにした。


Z ,%OB c:&cd "\Program Files\UPLG0098"&unplug.exe
※%OBで常にPPb使用。DOSのコマンド区切りは&

<追記>2009/02/22
PPbだと&によるコマンド列挙が効果ない模様。
%ObでPPbで使用しないだとunplug終了後すぐに閉じてしまうため
メッセージの確認できず。OTL


仕方なく自分でDOS窓起動&制御。
%Ob cmd.exe /k c:&cd "\Program Files\UPLG0098"&unplug.exe


<追記2>2009/02/23
それでもエラーになることがある。OTL
何が原因やら。
cmd.exeを自分で起動するように変更。


Z ,%Ob cmd.exe /k c:&cd "\Program Files\UPLG0098"&unplug.exe


ついでにSHIFT+Zに高速シャットダウン
\Z ,%Ob shutdown.exe -s -f -t 0