- PR -

VB6アプリケーションに対する「管理者として実行」の実装

1
投稿者投稿内容
ShuU
常連さん
会議室デビュー日: 2006/09/29
投稿数: 21
投稿日時: 2007-04-02 13:47
いつも、お世話になっております。

早速ですが、以下の現象の対応に苦戦しております。

1.「Visual Basic 6」で開発されたアプリケーションを「Windows Vista」で
  実行したところ、以下のエラーが発生して、起動に失敗。

  実行時エラー'339'
  コンポーネント'grid32.ocx'、またはその依存関係の一つが適切に登録され
  ていません。ファイルが存在しないか、あるいは不正です。

  ※必要ファイルはディストリビューションウィザードによるセットアップで
   ターゲットPCにインストール済み

2.試行錯誤の結果、コンテキストメニューから「管理者として実行」を使用す
  ることにより、正常に起動することを確認。

  また、一度「管理者として実行」を使用しての起動に成功すると、その後は、
  コンテキストメニューから「管理者として実行」を選択しなくても、問題な
  く起動に成功する。(内部的に管理者として実行するものと登録される?)

3.初回起動時のみ「管理者として実行」というのは後回しとして、常に「管理
  者として実行」するために、manifestファイルを使用する方法を試したが、
  「管理者として実行」で表示される UAC 確認ダイアログが出ない。

多少、ユーザーには不便ですが、毎回「管理者として実行」の確認ダイアログを
出すというのは、VB6アプリケーションではできないのでしょうか?

念のために、実行ファイルと同じフォルダに置いたmanifestファイルの内容を明
記します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.2.0.0" processorArchitecture="X86" name="VB6_TEXT" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

実行ファイル名は「VB6_TEXT.exe」でファイルバージョンが「1.2.0.0」、
manifestファイル名は「VB6_TEXT.exe.manifest」としています。

ログインしているユーザーアカウントは管理者権限があるものと想定します。

以上、ご助力の程、宜しくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)