>source

다음과 같이 시도했습니다.

System.Diagnostics.ProcessStartInfo process= new System.Diagnostics.ProcessStartInfo {
    Arguments    = "",
    FileName     = "regedit.exe",
    UseShellExecute= true,
    Verb         = "runas",
    WorkingDirectory= Environment.CurrentDirectory
  };
  try {
    System.Diagnostics.Process.Start(process);
  } catch {
    //error handling
  }

code를 실행하고 있는 C# 앱이 권한이 상승하고 Regedit를 열지만 UAC에 대한 프롬프트도 표시하지 않으며 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node도 표시되지 않습니다. 해당 키는 regedit를 수동으로 열 때만 표시됩니다.

내가 뭘 잘못하고 있니?

superuser.com/questions/115854/…

Jeremy Lakeman2022-01-25 15:36:14

내 문제는 특정 경로에서 레지스트리를 여는 것이 아니라 언급 된 경로가 존재하는 레지스트리 탐색기를 여는 것입니다.

tar2022-01-25 15:36:14
  • 답변 # 1

    문제가 해결되었습니다.

    내 앱에서와 같이 플랫폼은 "모든 CPU"로 설정되어 32비트 프로세스로 실행되므로 regedit.exe를 호출하면 32비트 레지스트리 항목만 표시됩니다. 내 앱 플랫폼을 "x64"로 명시적으로 변경하면 64비트 레지스트리가 열리고 특수 32비트 경로(HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432노드) 64비트 레지스트리 내에 존재하며 예상대로 표시됩니다.

    32비트 앱 내에서 다음을 사용할 때 프로그래밍 방식으로 64비트 레지스트리에 액세스할 수 있기 때문에 혼란스러웠습니다.RegistryView.Registry64. 자세한 내용은 여기. 그러나 불행히도 32비트 응용 프로그램에서는 64비트 레지스트리 탐색기를 열 수 없습니다.

  • 이전 python : Django를 도킹할 수 없습니다.
  • 다음 node.js : 매월 iolements 레이블 Ext Voltage 및 Battery Voltage의 평균 값을 계산하고 싶습니다. node js에서 mongodb를 사용하고 있습니다.