2012-04-11 2 views
1

시작하기 전에 UAC 프로그래밍에 대한 거의 지식이 없기 때문에 사과하겠습니다. 그건 ...관리되지 않는 코드에 매니페스트 파일이 필요합니까?

전 완전히 다른 프로그램의 setup.exe를 시작하는 C# 응용 프로그램이 있습니다. 주요 목적은 UAC에서 실행되는 두 번째 프로그램을 돕는 것입니다. 즉, 명령 프롬프트에서 setup.exe 파일을 실행합니다. 두 번째 프로그램을 제어 할 권한이 없으므로 UAC와 호환되도록 옵션을 선택할 수 없습니다. Vista가 처음 출시되었을 때 프로그램을 작성했고 UAC 정보가 거의 발견되지 않았습니다. 이제 setup.exe 파일을 실제로이 방법으로 실행하면 UAC를 사용하여 프로그램을 실행할 수 있습니다. 그러나 내 프로그램의 일부는 "theirapp.exe.manifest"파일을 "requireAdministrator"를 실행 수준으로 추가합니다. 그래서 내 질문은 이것입니다, 심지어 궁극적으로 실행하려고하는 프로그램이 관리되지 않는 응용 프로그램 (CBuilder C++) 인 경우에도 해당 파일이 필요합니까? 어딘가에 나는 명백한 파일이 필요하다고 믿는 길을 따라 갔다. 하지만 이제는 .NET 응용 프로그램에서만 작동한다고 들었습니다.

감사

편집

: 그것을 요약하면 ... UAC에서 관리되지 않는 프로그램을 실행하는 데 필요한 매니페스트 파일인가?

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
    <requestedPrivileges> 
     <requestedExecutionLevel 
     level="requireAdministrator" 
     uiAccess="false"/> 
    </requestedPrivileges> 
    </security> 
</trustInfo> 

편집 : 당신이 (링커 설정의 일부) 매니페스트 옵션에서 옵션을 찾을 수 있습니다 ++ 다른 프로그램은 비주얼 C에서

private void RunElevated() 
{ 
    ProcessStartInfo processInfo = new ProcessStartInfo("cmd.exe", @"/C " + AppDomain.CurrentDomain.BaseDirectory + @"setup.exe"); 
    processInfo.Verb = "runas"; 

    try 
    { 
     Process.Start(processInfo); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message.ToString()); 
    } 
} 
+1

매니페스트 파일은 관리되는 (.NET) 응용 프로그램에서만 * 아닙니다 *입니다. 두 개념은 서로 관련이 없습니다. –

답변

0

link이 내 질문에 대한 답변입니다. 관리되지 않는 DLL에 대한 매니페스트 파일이 내 검색을 포기한 사실을 가정합니다.

3

을 setup.exe가 실행 내 주요 방법 :

UAC settings in Visual Studio 11 (beta)

+0

UAC에서 실행해야하는 프로그램은 내 것이 아니며 제어 할 권한이 없습니다. 또한 Visual C++가 아닌 CBuilder로 작성되었습니다. – JimDel

+0

실행 파일 옆에있는 매니페스트 파일을 계속 사용할 수 있어야합니다 (CBuilder가 해당 파일을 제대로 포함 할 수 있는지 확실하지 않음). 다른 접근 방법으로, 많은 설정 부트 스트랩처럼 높은 권한을 요청하는 하위 프로세스를 생성 할 수 있습니다. 편집 : 그냥 명확하게 : 자신의 래퍼/로더 CBuilder를 사용하여 작성하고 시작 프로그램은 본질적으로 독점/폐쇄 소스입니까? – Mario

+0

아니요, 래퍼는 C#이고 UAC에서 실행하려는 앱은 C++이고 변경할 수 없습니다. 나는 위의 main 메소드를 추가했다. 프로세스가 완료된 후에 매니페스트 파일을 추가하기 만하면됩니다. 나는 그곳에 있어야하는지 확신 할 수 없다. 내가 시험 할 때 때때로 나는 그것의 필요성을 발견하고 때로는 그렇지 않다. – JimDel