開発時に、他の人がEXEをファイルロックしている為、
リネームできなかったりするんで、開発ツールで、ファイルロック解除する
APを作成しようとしていますが、どうしてもファイルロック解除の
方法が思いつきません。
環境
Window7 /Visual Studio 2008(VC++)
そんなことしたら、発言者氏には都合がいいかもしれないけど
ロックしているその他人には都合が悪いよな。
# 開発中の EXE がネットワーク共有フォルダにあるの?
# 運用見直したほうがいいと思う。
はい、ネットワークの共有フォルダにEXEがあります。
同じフロアで開発していて、EXE入れ替えるんで、
落としてください(デバック)と連絡して、EXEの入れ替え作業しているのですが、
デバックしていた場合、ファイルロックが外れていない場合があって、誰のファイルロ
ックがわからないので、結局、リモートで権限のあるPCに接続して、対象の開いてい
るファイルを殺している状況です。
この作業、開発しているEXEが多すぎて、手動で削除するのも手間がかかるんです。
で、自動でロック解除?しようと試みているところです。
直接の回答ではないですが、Unlockerというソフト
http://www.vector.co.jp/magazine/softnews/110929/n1109291.html
の[Readme.txt]に以下の一文があります。
If you are interested in redistributing Unlocker, either in original
or modified form, or wish to use Unlocker source code in a product,
please send e-mail to ccollomb@yahoo.com with details.
頼めばソースコードをもらえるように読めます。
頼んでみてはいかがでしょうか?
コマンドプロンプトから、opnefilesコマンドを使ってみても良いかもしれません。
私はこれで、バッチファイル組んでます。
opnefilesみてみました。
NetApiBufferFree
NetFileClose
NetFileEnum
NetServerGetInfo
この辺のAPI使うと出来そう。
「と」さんの方法を試してみましたが、
私の端末で行うと、権限がないと怒られました。
何かいい方法ありますか?
> 私の端末で行うと、権限がないと怒られました。
ネットワークを使用する限り、権限の制約はつきまとうのではないでしょうか。
サーバを介さないのなら、ユーザ権限のチェックをなくすことはできると
思いましたが?
あくまでもネットワークを使うなら、ネットワーク管理者と相談して時間制限つきの
特権ユーザを作ってもらう以外にないのではと思います。
opnefilesを実行してみれば分かるのですが管理者権限がないと使えません。
こればっかりは実行時に昇格しないと無理かと思います。
なので実際にopnefilesを使ってみて使える事を確認してから調べた方がよいかも。
コマンドプロンプトのショートカット作って管理者権限あり・無しで
opnefilesでためしてみて下さい。
ごめん、どちらかというとリモートサーバの権限が必要ですね。
その辺はあまり詳しくないので大人しくしています。