UAC無効!?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ynhrt

UAC無効!?

#1

投稿記事 by ynhrt » 9年前

Visual C++ 2008を使ってc言語でプログラムを作っています。
OSはXPなのですが、自分が作ったプログラムをsevenを使っている友人に送ったらエラーが出たという事で調べてみるとUACが関係している事がわかりました。
ALLYOUSERのdesktopやスタートメニューに色々とフォルダやファイルを作るのが悪いようなのですが、それをどうしてもしたいのですが何かいい方法はありませんか。
しかしユーザーに自分でUACを無効にしてもらったりするのは嫌です。プログラムの方で何とかしたいです。
おそらくプログラム上でUACを無効にするのは無理だと思いますがよろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: UAC無効!?

#2

投稿記事 by softya(ソフト屋) » 9年前

実行時に管理者権限で実行してもらうのが手っ取り早いです。
http://www.adminweb.jp/windows7/uac/index3.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: UAC無効!?

#3

投稿記事 by h2so5 » 9年前

プログラムからUACの無効化ができてしまうとUACの意味が無いので無理だと思いますが、
プログラムの起動時にUACの確認ダイアログを出すことは可能なようです。

確認ダイアログによって管理者権限で実行すればエラーは出なくなる可能性が高いです。

http://www.game-create.com/archives/578#more-578

ynhrt

Re: UAC無効!?

#4

投稿記事 by ynhrt » 9年前

この質問をしたものです。
いろいろと解答ありがとうございます。
できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
よろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: UAC無効!?

#5

投稿記事 by softya(ソフト屋) » 9年前

アプリケーションマニフェストを記述すれば出来ると思いますが私はやったことがありません。
どちらにしろ動作確認は、いちいちご友人のWin7で行う必要がありますが良いのでしょうか?

アプリケーション マニフェストでの実行レベルの設定
http://msdn.microsoft.com/ja-jp/library ... n_Manifest
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: UAC無効!?

#6

投稿記事 by YuO » 9年前

ynhrt さんが書きました:ALLYOUSERのdesktopやスタートメニューに色々とフォルダやファイルを作るのが悪いようなのですが、それをどうしてもしたいのですが何かいい方法はありませんか。
これはインストーラの役割に任せて,プログラムから制御しないのが根本的な解決策だと思います。
元々XPであっても,制限ユーザ (Users) のユーザーは書き込みできないはずです。

で,どうしても管理者権限が必要というならば,manifestを使うことになります。
MSDN: /MANIFESTUAC (UAC 情報をマニフェストに組み込む)に沿って,/MANIFESTUAC:level=requireAdministratorを追加してください。
ynhrt さんが書きました:できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
UACのダイアログを出すことはできます。ただし,管理者権限にするためのパスワードはユーザーが入力する必要があります。
COMなりEXEなりで実行権限を分離してプロセス間通信ということになるため,一部だけを管理者にするのは面倒だとは思います。
VS Forum: UACの動的昇格とそのリンク先を見て貰えればよいかと思いますが……。

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: UAC無効!?

#7

投稿記事 by h2so5 » 9年前

ynhrt さんが書きました:できれば管理者権限にするのもプログラムの方で自動的にやりたいのですが無理でしょうか。
結論として、ユーザーに管理者権限を要求するダイアログを出すことは可能です。
UACの動的昇格であっても結局はダイアログが出ます。

そして、ユーザーの操作なしに勝手にプログラムが管理者権限を取得することはできません。
開けようとすると勝手に鍵が開くドアを作るようなもので、セキュリティの意味がないからです。

閉鎖

“C言語何でも質問掲示板” へ戻る