C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: 管理者権限で実行する方法
(過去ログ 167 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■96504
/ inTopicNo.1)
管理者権限で実行する方法
▼
■
□投稿者/ ATTOK
(1回)-(2020/12/03(Thu) 11:20:27)
分類:[.NET 全般]
VB.NETに関する質問です。
プログラムが上からレジストリを操作したいのですが、
そのためにはプログラムを右クリックして、管理者権限で実行する必要があります。
一方で、市販のインストールプログラムの場合、
起動時には管理者権限で実行する必要がないのですが、
レジストリを変更する箇所だけ
https://316-jp.com/wp-content/uploads/2016/06/windows-uac_01.png
このアプリがデバイスに変更を加えることを許可しますか
こういうダイアログが表示され、OKするとプログラムを再起動することなく
インストールを続行することができるものがあるのですが、
こういうものをVB.NETを作るにはどうしたら良いですか?
検索してはみたのですが、
意外と情報が見つかりませんでしたので
よろしくお願いいたします。
引用返信
編集キー/
編集
■96505
/ inTopicNo.2)
Re[1]: 管理者権限で実行する方法
▲
▼
■
□投稿者/ 魔界の仮面弁士
(2932回)-(2020/12/03(Thu) 11:47:44)
2020/12/03(Thu) 13:10:26 編集(投稿者)
■
No96504
(ATTOK さん) に返信
> 起動時には管理者権限で実行する必要がないのですが、
> レジストリを変更する箇所だけ
アプリ自体は一般ユーザー権限として動作させたいけれども、
特定の機能を実行する時にだけ、管理者権限にしたい、という事でしょうか?
それとも、常に管理者権限にして良いのでしょうか?
後者であれば、アプリケーション マニフェストで
requestedExecutionLevel を指定することができます。
> こういうダイアログが表示され、OKするとプログラムを再起動することなく
> インストールを続行することができるものがあるのですが、
> こういうものをVB.NETを作るにはどうしたら良いですか?
普段は一般ユーザーとして権限昇格の画面無しで実行させ、
特定の機能を呼び出した時だけ、UAC の昇格確認画面
(および、必要であれば管理者パスワードの入力)を求めたい場合には、
Verb = "runas" を指定した上で、自分自身を Process.Start しなおします。
https://dobon.net/vb/dotnet/system/asadmin.html
https://dobon.net/vb/dotnet/system/displayshieldicon.html
管理者モードで再実行する場合には、独自のコマンドライン引数を付与するようにし、
起動時にそのパラメーターが付与された時には、昇格後に行いたい処理
(今回はレジストリの変更作業)だけを行い、即時終了という
動作にすれば良いかと思います。
単一インスタンスのアプリケーション設定にしている場合は、
追加の対処が必要になるかも知れません。
https://dobon.net/vb/dotnet/process/checkprevinstance.html#vb
> 一方で、市販のインストールプログラムの場合、
> 起動時には管理者権限で実行する必要がないのですが、
大抵のインストーラーでは、管理者権限が要求されるはずなのですけれどね。
XCOPY 配置なアプリとかは別として。
もし、requestedExecutionLevel 指定が無かったとしても、
それが 32bit アプリであり、かつ、ファイル名に
"install"、"setup"、"update" などのキーワードが含まれていた場合には、
自動的にインストーラーとして判定され、管理者権限への昇格が求められます。
引用返信
編集キー/
編集
■96506
/ inTopicNo.3)
Re[1]: 管理者権限で実行する方法
▲
▼
■
□投稿者/ KOZ
(158回)-(2020/12/03(Thu) 12:10:40)
■
No96504
(ATTOK さん) に返信
> こういうダイアログが表示され、OKするとプログラムを再起動することなく
> インストールを続行することができるものがあるのですが、
> こういうものをVB.NETを作るにはどうしたら良いですか?
マニュフェストを組み込む方法はどうでしょう?
「アプリケーション実行時に常にAdministratorとして実行する」
https://www.ipentec.com/document/csharp-run-as-administrator-using-manifest-file
引用返信
編集キー/
編集
■96507
/ inTopicNo.4)
Re[2]: 管理者権限で実行する方法
▲
▼
■
□投稿者/ ぶなっぷ
(263回)-(2020/12/03(Thu) 15:27:22)
秀丸エディタの「関連付け」設定画面みたいなやつでしょうか?
であれば、関連付け画面(秀丸エディタのセットアップ)は別exeとして起動してますよ。
タスクマネージャ開いた状態で起動してみると分かります(Hmsetup.exe)。
で、Hmsetup.exeには、ほかの皆さんが言われているようなマニフェストが組み込まれて
います。
引用返信
編集キー/
編集
■96511
/ inTopicNo.5)
Re[3]: 管理者権限で実行する方法
▲
▼
■
□投稿者/ ATTOK
(2回)-(2020/12/04(Fri) 11:44:58)
魔界の仮面弁士さん
まさにこれが求めていたものでした。
どうもありがとうございました。
非常に助かりました。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-