次のコードを使用して、レジストリに書き込むプログラムを実行しています
Dim myProcess2 As New System.Diagnostics.Process()
Dim startInfo2 As New ProcessStartInfo
startInfo2.FileName = Application.StartupPath & "\installs\Assistant\RegisterSureFire.exe"
startInfo2.Verb = "runas"
myProcess2.StartInfo = startInfo2
Application.DoEvents()
myProcess2.Start()
次に、実行中の「RegisterSureFire」という別のファイルがあり、次のコードを使用して実際にレジスタに書き込みます。
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "Assistant", "C:\SF\Assistant.exe")
これは、管理者用の「ルーン」を使用したWindows Vista / 7/8では完全に正常に機能するようですが、Windows XPでこれを行うと、現在のユーザーまたは管理者のどちらで実行するかを尋ねるボックスが表示されます。私の顧客のほとんどは50-70歳くらいなので、これが何であるかわかりません。また、Windows XPで一般的に「ルーン」を使用しない場合、レジストリに書き込もうとすると「アクセスが拒否されました」というエラーメッセージが表示されます。
レジストリに正しく書き込むためのアドバイスを誰かに教えてもらえますか?