Visual C++ 2008を使ってc言語でプログラムを作っています。
OSはXPなのですが、自分が作ったプログラムをsevenを使っている友人に送ったらエラーが出たという事で調べてみるとUACが関係している事がわかりました。
ALLYOUSERのdesktopやスタートメニューに色々とフォルダやファイルを作るのが悪いようなのですが、それをどうしてもしたいのですが何かいい方法はありませんか。
しかしユーザーに自分でUACを無効にしてもらったりするのは嫌です。プログラムの方で何とかしたいです。
おそらくプログラム上でUACを無効にするのは無理だと思いますがよろしくお願いします。
UAC無効!?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: UAC無効!?
実行時に管理者権限で実行してもらうのが手っ取り早いです。
http://www.adminweb.jp/windows7/uac/index3.html
http://www.adminweb.jp/windows7/uac/index3.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: UAC無効!?
プログラムからUACの無効化ができてしまうとUACの意味が無いので無理だと思いますが、
プログラムの起動時にUACの確認ダイアログを出すことは可能なようです。
確認ダイアログによって管理者権限で実行すればエラーは出なくなる可能性が高いです。
http://www.game-create.com/archives/578#more-578
プログラムの起動時にUACの確認ダイアログを出すことは可能なようです。
確認ダイアログによって管理者権限で実行すればエラーは出なくなる可能性が高いです。
http://www.game-create.com/archives/578#more-578
Re: UAC無効!?
この質問をしたものです。
いろいろと解答ありがとうございます。
できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
よろしくお願いします。
いろいろと解答ありがとうございます。
できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
よろしくお願いします。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: UAC無効!?
アプリケーションマニフェストを記述すれば出来ると思いますが私はやったことがありません。
どちらにしろ動作確認は、いちいちご友人のWin7で行う必要がありますが良いのでしょうか?
アプリケーション マニフェストでの実行レベルの設定
http://msdn.microsoft.com/ja-jp/library ... n_Manifest
どちらにしろ動作確認は、いちいちご友人のWin7で行う必要がありますが良いのでしょうか?
アプリケーション マニフェストでの実行レベルの設定
http://msdn.microsoft.com/ja-jp/library ... n_Manifest
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: UAC無効!?
これはインストーラの役割に任せて,プログラムから制御しないのが根本的な解決策だと思います。ynhrt さんが書きました:ALLYOUSERのdesktopやスタートメニューに色々とフォルダやファイルを作るのが悪いようなのですが、それをどうしてもしたいのですが何かいい方法はありませんか。
元々XPであっても,制限ユーザ (Users) のユーザーは書き込みできないはずです。
で,どうしても管理者権限が必要というならば,manifestを使うことになります。
MSDN: /MANIFESTUAC (UAC 情報をマニフェストに組み込む)に沿って,/MANIFESTUAC:level=requireAdministratorを追加してください。
UACのダイアログを出すことはできます。ただし,管理者権限にするためのパスワードはユーザーが入力する必要があります。ynhrt さんが書きました:できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
COMなりEXEなりで実行権限を分離してプロセス間通信ということになるため,一部だけを管理者にするのは面倒だとは思います。
VS Forum: UACの動的昇格とそのリンク先を見て貰えればよいかと思いますが……。
Re: UAC無効!?
結論として、ユーザーに管理者権限を要求するダイアログを出すことは可能です。ynhrt さんが書きました:できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
UACの動的昇格であっても結局はダイアログが出ます。
そして、ユーザーの操作なしに勝手にプログラムが管理者権限を取得することはできません。
開けようとすると勝手に鍵が開くドアを作るようなもので、セキュリティの意味がないからです。