ShellExecute を使用して、外部ユーティリティを生成できます。昇格されたアクセス許可が必要であることを示すために、必ずアクションに盾のアイコンを含めてください。次に、ユーザーにプロンプトを表示し、特別なアクセス許可が必要であることを知らせます。
できることの 1 つは、権限が変更されることを示すフラグを独自のアプリケーションに追加することです。そして、特別なフラグを付けて、アプリケーションを再度実行します。
たとえば、アプリケーションが
MyApplication.exe
あなたはスポーンすることができます
MyApplication.exe /setfiles
ファイルの関連付けのみを設定してから終了します。そうすれば、1 つの実行可能ファイルを出荷するだけで済みます。
function RunAsAdmin(hWnd: HWND; filename: string; Parameters: string): Boolean;
var
sei: TShellExecuteInfo;
begin
ZeroMemory(@sei, SizeOf(sei));
sei.cbSize := SizeOf(TShellExecuteInfo);
sei.Wnd := hwnd;
sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
sei.lpVerb := PChar('runas');
sei.lpFile := PChar(Filename); // PAnsiChar;
if parameters <> '' then
sei.lpParameters := PChar(parameters); // PAnsiChar;
sei.nShow := SW_SHOWNORMAL; //Integer;
Result := ShellExecuteEx(@sei);
end;