2007年02月10日

既存アプリのVista対応・改造計画:5回目「改造方法」

UAC(ユーザーアカウント制御)のダイアログで止まらずに自動起動させる必要のあるプログラムはどうすれば良いのだろうか。

結論を言えば、そのようなプログラムには管理者権限を必要としない処理だけをさせるようにするしかない。
書き込みは禁止されるが読み込みは問題なくできるのでレジストリに書き込まれた環境設定を読むだけなら管理者権限は必要ないのが幸いだ。
そして、環境を変更する時だけ、つまり環境設定画面で値を修正し「登録」ボタンを押したときにレジストリ等の管理者権限を必要とする書き込み処理を別プログラムに分離し、それにマニフェスト
を付けるのである。ユーザーインターフェースを持たないので、ユーザーからみれば保存時に確認ダイアログがでたような印象を受けるだろう。こうすることで煩わしいダイアログを必要最低限に抑えることができる。下図はこのモデルを表現したものだ。

改造モデル図

あと、インストーラーによるプログラムの保存場所は管理者権限を必要とするProgram Filesフォルダではなく、ドライブのルートを使うように変更させるようにする。Oracleなどは以前からドライブのルートにフォルダを作成してそこに一式インストールするがそれと同じである。
これで通常の作業でファイルを書き出す必要がある場合でも問題なく行うことでき、外部プログラムから参照しても問題なくアクセスできる。

※VB6のSetup.Lstファイルを次のようにするとインストールフォルダの初期値が変更できる。

通常の場合
[Setup]
Title=HOGE Ver.1.0.0
DefaultDir=$(ProgramFiles)\hoge
AppExe=hoge.exe
AppToUninstall=hoge.exe

Cドライブのルートに作成する場合、DefaultDirを変更する。
DefaultDir=C:\hoge




posted by なっちゃん at 23:38| 静岡 ☔| Comment(0) | TrackBack(0) | Windows Vista & 7 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。