1

私はVB6アプリの保守を担当していますが、Windows7で奇妙な動作が発生しました。

アプリケーションがプログラムファイル(x86)にインストールされている場合(または書き込み権限がないディレクトリを想定している場合)、ほとんどの場合、ファイルをローカルに保存しようとすると、その奇妙な仮想ストアの場所に配置されます。 。これは許容範囲です。ただし、ローカルに保存しようとして、ここに保存することは許可されていないというエラーが表示され、別の場所に保存するかどうかを尋ねられる場合があります。まあ、少なくとも、それを新しいファイルとして保存しようとすると、既存のファイルとして保存しようとすると、実行時エラー75でクラッシュします。

どちらのファイルも「OpenfilenameAs#1」で開くだけです。ユーザーが書き込む権限のないフォルダ内の仮想ストアを強制的に使用する、または使用しない理由について、誰かに詳しい情報を教えてもらえますか?

または、アプリケーションを管理者として実行しようとしましたが、起動時にクラッシュします。プログラムが管理者ではなくロックダウンモードで動作する理由がわかりません。

4

1 に答える 1

1

さて、あなたはそれを自分でかなり理解しました:標高なしでは書くことができない場所もあれば、まったく書けない場所もあります。一部の場所では、Windowsが救助に来て、ファイルをVirtualStoreにリダイレクトします。これらの中には:

  • プログラムファイルとプログラムファイル(x86)
  • ウィンドウズ
  • プログラムデータ

ファイル操作がエラーなしで機能するとは決して想定しないことは、プログラミングの良い習慣だと思います。エラーを予測してユーザーに事前に警告することができ、ファイル操作をブロックに埋め込む必要があります。On Error Goto

プログラムが昇格されたときにクラッシュすることについて(これは本当に最後の手段の解決策です。これを避けてください):VirtualStoreの問題は、昇格時に書き込まれたファイルと昇格していないときに書かれたもの。プログラムを昇格して実行すると、以前とは異なるファイルが突然使用されるため、クラッシュなどの他の動作が発生する可能性があります。同じことがレジストリキーにも当てはまります

UAC仮想化の詳細(優れた記事!)

幸運を!

于 2012-05-12T06:38:53.157 に答える