問題タブ [virtualstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ファイルのアクセス許可を変更して、Vista が VirtualStore ディレクトリ内のファイルに書き込めないようにするにはどうすればよいですか?
私のプログラムが最初にインストールされると、ユーザーの AppData ディレクトリにファイルが配置され、プログラムは定期的にそのファイルに書き込みます。問題は、Vista ではユーザーの AppData ディレクトリにあるファイルに書き込みが行われず、「VirtualStore/ProgramData」ディレクトリにあるそのファイルのコピーに書き込まれることです。ユーザーの AppData ディレクトリにある元のファイルは決して変更されません。プログラムを実行すると、VirtualStore ディレクトリ内のファイルにしかアクセスできないようです。
C# アプリ内からそのファイルのアクセス許可を変更して、プログラムが VirtualStore ディレクトリではなく AppData ディレクトリの元のファイルに書き込むようにする方法はありますか?
ありがとう、
ジェフ
c# - VirtualStore が Vista x64 で動作しない
Program Files ディレクトリの下の独自のフォルダーに書き込みたい小さなトレイ アプリケーションがあります。これが最終的な設計ではないことはわかっているので修正しますが、まずこれがどのように機能するかを理解したいと思います。
これを 32 ビット Vista マシンで実行すると、ファイルが VirtualStore に書き込まれ、正常に動作します。
しかし、これを Vista 64 ビット マシンにインストールすると、すぐに UnauthorizedAccessException が発生し、Program Files (および Program Files (x86)) 内のディレクトリに書き込もうとしました。
VirtualStore リダイレクトは、Vista 64 ビットでは機能しないようです。何か案は?
これは Visual Studio 2008 で作成された C# アプリで、FileStream obj を使用してストリームをディスクに永続化します。
c# - C# - Vista - CommonApplicationData の使用時に仮想化される解凍
UAC がオンであると仮定します。オフにしても問題ありません。
バックアップ/復元機能を備え、SQL Server 2005 Express を使用する ac# アプリがあります。
backupPath を取得するコードは、バックアップと復元の両方に使用され、すべての目的の名前は backup.dat になります。
バックアップパスを生成する
バックアップ時に、db は **C:\ProgramData\CompName\AppName** に backup.dat を生成し、その場所からユーザーが選択したターゲット ディレクトリに簡単に圧縮できます。
復元時には、アーカイブされたディレクトリまたはファイルを問題なく取得できますが、解凍すると **C:\Users\UserName\AppData\Local\VirtualStore\ProgramData\CompName\AppName** に移動します
vista sqlサーバーのプログラミングについて理解していることから、その仮想ストアパスにアクセスできない/アクセスできないため、解凍したファイルが仮想ストアに移動する理由を知る必要があります。
編集:解凍の提供に失敗しました-これは問題ではないと思いますが、ここにあります。
助けてくれてありがとう -TK
vb6 - ODBCを使用してProgramFilesフォルダーにあるデータベースから読み取る
プログラムファイルディレクトリのサブフォルダにデータベースファイルを保存するアプリケーションがあります。これらのファイルは、VistaおよびWindows 7のVirtualStoreにリダイレクトされます。MicrosoftDataReports(VB6)を使用してデータベースからのデータを表します。ここまでは順調ですね。
ただし、CrystalReportsXIを使用してデータベースのデータを表す必要があります。私たちのアイデアは、このデータをプログラムからCRに渡すのではなく、ODBCを介してシステムDSNを使用してデータベースからCRにデータを取得させることです。このようにして、ユーザーが独自のレポートをより柔軟に設計できるようにしたいと考えています。ただし、ユーザーがプログラムをインストールしたとき、またはプログラムがCrystal Reportを呼び出したときに、これらのシステムDSNが正しく構成されていることを確認したいと思います。
たとえば、OSのバージョン、OSでUACが有効になっているかどうか、Program Filesフォルダーの書き込み制限が解除されているかどうかをチェックするルーチンを作成する代わりに、システム変数を使用してこれを行うスマートな方法はありますか?次に、C:\ Program Files \ OurApp \ DataフォルダーまたはC:\ Users \ User \ AppData \ VirtualStore \ Program Files \ OurApp \ Dataフォルダーのいずれかを指すようにシステムDSNを調整しますか?
まったく異なるアプローチの提案も歓迎します!
winapi - copyfileはVirtualStoreフォルダーにコピーしていますか?
Vistaで、管理者権限で実行されているアプリケーションを1つ作成しました。
1つのファイルをProgramData\Application\
フォルダにコピーしようとしています。
しかし、そこにコピーする代わりに、その場所でのコピーc:\Users\XXX\AppData\Local\VirtualStore\ProgramData\Application\
このファイルをVirtulストアにコピーしたくありません。
何か提案がありますが、どうすればこの問題を克服できますか?
CopyFile
APIを使用しています。
c++ - C++ プログラムの VirtualStore を無効にする方法は?
C:\ ドライブのルート (例: ) などの保護された場所にファイルを作成しようとすると、プログラムでエラーがスローされるようにしたいと考えていますFILE* FileHandle = fopen("\\file.txt", a)
。代わりに、ファイルは %APPDATA% の下の仮想ストアに作成されます。
その仮想ストアを無効にするにはどうすればよいですか?
ありがとう
編集: 明確にするために、セキュリティを回避して保護された場所にファイルを作成する方法を尋ねているわけではありません。ファイルの作成を失敗させて、ユーザーに彼がばかだったことを伝えることができるようにします。
c# - .NetからHKEY_LOCAL_MACHINEへの書き込みは、VistaまたはWindows 7で仮想化されませんか?
VistaやWindows7でのレジストリ操作のVirtualStore仮想化を理解するのに問題があります。標準ユーザーとして実行しているときにHKEY_LOCAL_MACHINEルートに何かを書き込もうとすると、Windowsに操作を仮想化して、HKEY_CURRENT_USER / Classes /VirtualStore/に書き込むように促されると思いました。代わりにMACHINE 。私はいくつかの古いアプリケーションがまさにそのように動作するのを見てきました。
ただし、C#および.Net4でその動作を複製しようとすると、HKLMへの書き込み操作が失敗し、代わりにUnauthorizedAccessExceptionが発生します。仮想化を強制する方法はありますか?
質問にいくつかのコンテキストを与えるために:私は元々別のレガシーアプリによって作成されたレジストリキーを読み取って操作しようとしています。VistaまたはWindows7では、これらはVirtualStoreに配置されます。WinXP以上で同じレジストリアクセスロジックを使用したいのですが、レジストリ操作は従来のアプリの操作とまったく同じように仮想化されると思いました(そのため、同じキーで動作します)。これは期待どおりに機能しません。ユーザーがVistaまたは7を実行していて、UACが有効になっている場合、私が知っている唯一の回避策は、VirtualStoreパスにアクセスすることです。ただし、特にMicrosoftが仮想化の動作を変更することを決定した場合は醜いようです。将来のWindowsバージョン。
windows - UAC 仮想化を無効にした後のファイルの回復
ようやく、ソフトウェアのドキュメントをプログラム自体のディレクトリから「マイ ドキュメント」に移動するところまで来ました。また、マニフェストに「requestedPrivileges」行を追加して、仮想化に関するさらなる問題を防ぎます。
ただし、それだけを行った場合、Vista/7 で古いバージョンを実行していた人は、更新後に非表示の VirtualStore ディレクトリ内のどこかで作業を失う可能性があります。では、21 世紀に移行するための好ましい方法は何でしょうか?
率直に言って、ファイルをコピーすることには少し気をつけています。特に、シャドウ ディレクトリにプログラムでアクセスする方法が見つからないように思われるからです。
windows - Windows および仮想ストアの非表示の登録ファイル
Windows 7 64 ビット版の登録スキームに新たな問題が発見されました。現在、アプリケーションのリソース内に非表示の登録ファイルを保存していますが、これは最適な場所ではないことが明らかになりました。本日、Windows 7 64 ビット版で、アプリケーションがプログラム ファイル (x 86)/.. 内にファイルを作成しようとすると、実際には virtualStore 内のユーザーの appData になることがわかりました。別のユーザーが別のアカウントからソフトウェアを使用しようとすると、これは深刻な問題になります (仮想ストアはユーザーのアカウントに固有であり、ユーザーはソフトウェアを再登録するよう求められるため)。
この種の登録ファイルは通常どこに置かれているのでしょうか。
windows-7 - Windows7のVB6アプリは時々仮想ストアにのみ保存されます
私はVB6アプリの保守を担当していますが、Windows7で奇妙な動作が発生しました。
アプリケーションがプログラムファイル(x86)にインストールされている場合(または書き込み権限がないディレクトリを想定している場合)、ほとんどの場合、ファイルをローカルに保存しようとすると、その奇妙な仮想ストアの場所に配置されます。 。これは許容範囲です。ただし、ローカルに保存しようとして、ここに保存することは許可されていないというエラーが表示され、別の場所に保存するかどうかを尋ねられる場合があります。まあ、少なくとも、それを新しいファイルとして保存しようとすると、既存のファイルとして保存しようとすると、実行時エラー75でクラッシュします。
どちらのファイルも「OpenfilenameAs#1」で開くだけです。ユーザーが書き込む権限のないフォルダ内の仮想ストアを強制的に使用する、または使用しない理由について、誰かに詳しい情報を教えてもらえますか?
または、アプリケーションを管理者として実行しようとしましたが、起動時にクラッシュします。プログラムが管理者ではなくロックダウンモードで動作する理由がわかりません。