🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

ファイルI/O

ファイルI/Oは、コンピューターにおけるファイルの入出力です。これは生成/削除やファイルを読み込んだり、出力をファイルに書き込むようなディレクトリやファイルの運用を含みます。

Q&A

2回答

1907閲覧

Windowsで他のプロセスが特定のファイルを読みこむのを阻害したい

kalbon

総合スコア12

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

ファイルI/O

ファイルI/Oは、コンピューターにおけるファイルの入出力です。これは生成/削除やファイルを読み込んだり、出力をファイルに書き込むようなディレクトリやファイルの運用を含みます。

0グッド

1クリップ

投稿2019/09/26 08:47

前提・実現したいこと

Windowsで、他のプロセスが特定のファイルを読みこむのを阻害することはできますか?当該他プロセスが、読み込もうとしたファイルがないと認識させたいと考えております。

発生している問題・エラーメッセージ

弊社ではサポートが終了したwindowsソフトを業務で使用しています。そのソフトが起動しないことがあります。
そこで設定ファイルが存在しないようにふるまえる方法を模索しています。

試したこと

Admin権限なしで設定ファイルを消そうとしましたが、アクセス権がないため消せませんでした。WindowsのGlobal Hookを利用してfile I/Oが発生し設定ファイルを読みにいくのを監視しファイル読み込みを阻害できれば、と考えております。

補足情報(FW/ツールのバージョンなど)

Windows7(x64)です。

経緯

本来であればサポート終了前に新ソフトに移行するのが正論だとは思いますが、私が赴任した時点で既に手遅れ。サポート切れのため開発元に有償サポートをお願いしましたが断られました。幸い、そのwindowsソフトが特定の設定ファイルを読み込むとエラーになることがわかりました。
その設定ファイルはProgram FilesフォルダにあるためAdmin権限があれば削除できるのですが、削除すると起動時に勝手にデフォルトで作成してしまいます。なお海外本部にIT部門があるため、起動のたびにAdmin権限を借りるのは不可能です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2019/09/26 09:55

読み込むとエラーになるので、読み込まないようにすることでエラーが出ないようにしたいと言うことですか? 「Global Hookを利用して」とはやってみたのではなく、やりたいと言うことでしょうか? 設定ファイルを削除でなく空にしても作成されますか? 読めないようにしても、エラーになってしまう可能性はないのでしょうか?
Zuishin

2019/09/26 10:50

なんで Admin 権限の無いソフトが Admin 権限の必要なファイルを作成できるんですか?
kalbon

2019/09/26 11:23

t_obaraさん 空も試しましたが今度は内容がおかしいと認識してエラーをだします。 Zuishinさん おそらくそのソフトにとっては自フォルダだからではないでしょうか。
Zuishin

2019/09/26 11:26 編集

関係ありません。そのソフトを起動した人の権限が問題になります。サービスが起動したならサービスの権限で、ユーザーが起動したならユーザーの権限で動きます。
Zuishin

2019/09/26 11:33

サポートが切れているのが問題で、後継ソフトがあるのなら、今からでもそちらに乗り換えるのが本筋です。不便なく動いたのでは逆に新しいものを契約してくれとは言いにくくなるでしょう。 ほかにも色々不可解な点が多いですが、やはり起動しないことを上に見せて新しいソフトの使用契約をもらうのが第一義だと思います。それがどうしてもできない場合には、IT 部門に丸投げできるはずです。管理者権限を持った IT 部門の仕事なので。
guest

回答2

0

うまくいくかは判りませんが、そのEXEをバイナリエディタ等で開いて、アクセス先のファイル名で文字列検索してみてください(ShiftJISなのかUTF16なのかわからんですが)。

で、もし見つかればそのファイル名を一文字変えて保存して動かしてみて期待通り動けばラッキーです。

投稿2019/09/26 08:59

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kalbon

2019/09/26 09:25

ご回答誠にありがとうございます。.exeと同ディレクトリにあるファイルを検索しましたが、残念ながら見つかりませんでした。
takabosoft

2019/09/26 10:45

UTF16でもやってみましたか?
takabosoft

2019/09/26 10:47

一応、排他制御をして先にファイルを掴んでしまう(他のプロセスがOpen&Readできなくしてしまう)という手もあるにはあります。そっちのが楽かもですね。
kalbon

2019/09/26 11:26

なるほど。やってみます。排他で掴まれている場合とファイルがない場合の区別がつかない場合は成功しそうですね。
guest

0

その設定ファイルはProgram FilesフォルダにあるためAdmin権限があれば削除できるのですが、削除すると起動時に勝手にデフォルトで作成してしまいます。

想像での案ですが、削除するだけでなく、削除後にファイルを作って、自分で読み書きできない権限設定にしてしまえばどうでしょうか?

投稿2019/09/26 11:55

otn

総合スコア85893

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問