現在実行中のプロセスを引き上げることは不可能だと思います。私が理解しているように、Windows Vistaには、起動時に管理者権限がプロセスに付与されることが組み込まれています。UACを利用するさまざまなプログラムを見ると、管理アクションを実行する必要があるたびに、実際には別々のプロセスが起動することがわかります(タスクマネージャーが1つ、Paint.NETがもう1つ、後者は実際には.NETアプリケーションです)。 )。
この問題の一般的な解決策は、昇格されたプロセスを起動するときにコマンドライン引数を指定することです(abatishchevの提案はこれを行う1つの方法です)。これにより、起動されたプロセスは特定のダイアログボックスを表示することだけを認識し、このアクションが実行された後に終了します。完了しました。したがって、新しいプロセスが起動されて終了したことはユーザーにはほとんど気付かれず、同じアプリ内の新しいダイアログボックスが開かれたように見えます(特に、ハッカーがメインウィンドウを作成する場合)昇格されたプロセスは親プロセスの子です)。昇格されたアクセスにUIが必要ない場合は、さらに良いでしょう。
VistaでのUACの詳細については、このテーマに関する記事をよく読んでください(コード例はC ++ですが、C#でほとんどのことを行うにはWinAPIとP/Invokeを使用する必要があると思います。とりあえず)。UAC準拠のプログラムを設計することは簡単ではありませんが、少なくとも正しいアプローチを理解できれば幸いです...