2016-07-09 7 views
0

以前はServer 2008 R2でUACを必要としていなかったVB6プロジェクトがありました。私の最近のビルドでは、プログラムアイコンに小さなUAC(User Access Control)アイコンが表示されています。アプリケーションを開こうとすると、Windowsは管理者権限を要求します。以前は持っていなかったVB6プロジェクトでUACが必要になりました

私が行った変更は、アプリケーションが設定ファイルを探す場所だけでした。以前は、これらのファイルは固定位置に固定されていました(C:\app\)。アプリケーションで設定を行う.NETスタイルが好きなので、コードをローカルで最初にApp.Pathを使用して見てから、ファイルがローカルに存在しない場合は以前の静的な場所を見てください。

答えて

1

App.PathがUACプロンプトの原因であることが判明しました。私はコードの1行をコメントアウトし、シールドアイコンが消えました。 UACのヒューリスティックは、私がProgram Filesフォルダに書いていると仮定しているようです。

FileSytemObjectOpenTextFileメソッドを使用すると、コードがファイルを読み取るだけで、ForReaadingが指定されました。

MY ALTERNATIVE

CurDirファイルのみが起動時に読み込まれているので、私のために働くようです。 1つの注意点は、デバッグ中にCurDirがIDEのexeパスに設定されていることです。アプリがコンパイルされるとうまく動作します。

ただし、.vbpファイル(ダブルクリックなど)をフォルダ内に直接開いて開くと、CurDirが正しく表示されます。最初にIDEを開いてIDE内からプロジェクトを開くときは、IDEのexeパスのみです。

https://stackoverflow.com/a/154595/2084315

+0

ここでヒューリスティックはありません。 'App.Path'はあなたのアプリケーションがどこに置かれているか(インストールされているかどうか)に基づいており、プログラムファイルのようなUACを擁護している場所にインストールしたことが明らかです。もちろん、いつでも 'App.Path'がどこにあるのかを知るためにメッセージボックスを使うことができます。 –

+0

@HarryJohnston私はマニフェストを試みました - それはUACなしで開かれましたが、UACは直ちにアクセス権の昇格が必要であるというエラーを返しました。 – ps2goat

+0

@KenWhite - アプリは 'D:\ AppName \ AppName.exe'にあります。それはインストールされていません。 – ps2goat

関連する問題