設定が本当にすべてのユーザー向けかどうかを自問してください。本当にすべてのユーザー向けですか?
この質問について慎重に考えてください。
ソフトウェアは、Windows XP で標準ユーザーとしてどのように実行されましたか?
- ソフトウェアがクラッシュしただけですか?
- オプションの構成が無効になっていませんか?
- 管理者として実行する必要があり、拒否した場合はサポートしないことを顧客に伝えましたか?
ソフトウェアが絶対に管理者である必要がある場合は、管理者として実行する必要があることを示すマニフェストを実行可能ファイルに追加するだけです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="IsUserAdmin"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
さきほど、あなたは管理者です。
しかし、あなたが本当に管理者である必要はないと思います。ローカル マシンの設定が必要になるのは、複数のログインまたはセッションからユーザーがソフトウェアを使用する場合のみです。それが本当にすべてのユーザーに適用されるものである場合、インストール プログラムはそれを設定するべきではありませんか?
ここでも同じ質問がありました。監視システムでは、ソフトウェアが使用するキャプチャ デバイスを構成する必要があります。すべての監視オペレーターが同じキャプチャ デバイスを使用すると言えるので、1 人がそれを選択すると、その設定はすべてのオペレーターに適用されます。しかし、実際にはそうではありません。キャプチャ デバイスは 1 つしかない可能性があり、それを使用しています。複数ある場合、ユーザーは単に別のデバイスを選択できます。
しかし、これを処理するにはいくつかの方法があります
i) 設定をレジストリに保存し、インストール プログラムでキーに ACL を設定して、すべてのユーザーにフル コントロールを付与します。
ii) 設定を
%APPDATA%\Surveillance\settings.ini
ファイル。インストール プログラムで設定ファイルを作成し、そのファイルに ACL を作成して、すべてのユーザーがフル コントロールを持つことができるようにします。
iii) 上記のレジストリ キーまたは ini ファイルに設定を保存し、使用します。
UAC Shield を保存/ OK /適用ボタンに追加します。ユーザーがボタンを押すと、( RunAsAdminを使用して) 管理者特権でアプリを再起動し、変更対象を示すコマンド ライン パラメーターを渡します。
iv) 3 と同じことを行いますが、値を編集するために使用される画面に入る前に行います。
v) 4 と同じことを行いますが、最初は値を読み取り専用にし、変更したい場合は昇格させる必要があります。
vi) ユーザーが標準ユーザーとして実行している場合はオプションを無効にし、オプションを変更する場合は、実行可能ファイルを右クリックして選択します。
管理者として実行
これが、ユーザーが好きなときに変更できるオプションである場合 (Windows XP で実行していて、ユーザーが管理者である場合)、ユーザーが値を自由に編集できることは許容されるようです。
この場合、以前は許可されていたように、ユーザーにサーバーの名前を入力させることができます。ユーザーが HKLM への書き込み権限を持っている場合は、そこにオプションを保存します。それ以外の場合は、HKCU に保存します。使用するサーバーを読み取るときは、HKCU から開始し、HKCU 値がない場合は HKLM に移動します。