CD上からプログラムを実行しているのですが途中で取り出されてしまうとブルーバックになってしまいます。単純にCDドライブのイジェクトをロックするといいと思ったんですけど、どなたか分かる方はいらっしゃるでしょうか?
よろしくお願いします。
環境はWin98SE、VB6です。
ドライブのロックは難しそうなので…
MSDNで調べていたら、EXEファイルのヘッダ(起動時にWindowsのローダによって読み込まれる)
に次のようなものがありました。
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
PEファイルがリムーバブルメディア(着脱可能ディスク)上にある場合はスワップファイルへコピーして実行することを示します。
参考にしたHPはhttp://www5e.biglobe.ne.jp/~randy/wps/backnumber/wps0005.txt
です。
コンパイルした後のEXEファイルをバイナリエディタなどで編集すればいいのですが、
Windows(MSDOS?)にEDITBINというソフトがあるようです。Win2000ではインストールされているようです。
詳しくは
http://www.compaq.co.jp/products/dvf/docs/vf-html/pg/pg26_09.htm
を見てください。
コマンドプロンプトを起動し、EXEファイルのあるフォルダに移動し
EDITBIN /SWAPRUN:CD (EXEのファイル名)
とすればできるようです。やってないのでできるかどうかわかりません。
遅くなってすみません
Kenjiさんレスありがとうございます
EDITBINを使用して試してみたんですけど、やはりやはりブルーバックになってしまいうまくいきませんでした。
一応、HDDにはスワップファイルはできてはいるんですが・・・
とりあえずもう少しこの方法に関しては調べてみます。
もし他に何かわかりましたら、又ご教授下さい。
お願いします。
いまさらもう見ていないかもしれませんが、
サンプルをみつけたので
http://www.mvps.org/vbnet/index.html?code/disk/deviolock.htm
あ、しかも環境あってない(^^;
win98だとサンクしないとだめですね。
はじめまして。
もうかなり経過してしまっておりますが・・・
ずいぶん昔にコード書いたのですが・・・見つからなくて・・・
そのものズバリのコードがありましたので、参考までに・・・
http://plaza5.mbn.or.jp/~heropa/vb31.htm
ここをご参照下さい。
以上。
ツイート | ![]() |