2017-03-20 9 views
8

검색 및 검색하여 여기에 벽돌 벽을 치는 것 같습니다. 나는 정확한 아티스트와 타이틀을 잡고 그에 따라 파일의 이름을 바꾸기 위해 오디오 데이터베이스를 자동으로 검색하기 위해 오디오 지문을 생성하는 응용 프로그램을 개발 중입니다.UWP를 사용하여 C#에서 EXE 실행

내 문제는 음향 지문을 생성 할 수있는 C# 및 UWP (내가 아는 것)에 지원되는 라이브러리가 없다는 것입니다. 내가 찾은 유일한 것은 Chromaprint로, "fpcalc.exe mymp3file.mp3> generatedfingerprint.txt"와 같은 명령을 실행하고 지문을 텍스트 파일로 가져올 수 있습니다.

지문을 가져 오는 것이 실제로 문제가되지 않는 것처럼 문제는 Winforms 응용 프로그램에서 사용되는 것과 같은 전통적인 방법을 사용하여 UWP 응용 프로그램 내에서 EXE 파일을 실행할 수 없다는 것입니다. UWP에서 파일을 실행하라는 명령 프롬프트가있어서 응용 프로그램 내에서 지문을 생성 할 수 없습니다.

제 질문은 누구나이 문제를 해결할 수있는 방법이 있습니까? Powershell을 사용할 수 있음을 이해합니다. 그러나 다음 코드를 사용하면 XboxOne에서 PowerShell을 지원한다는 사실을 알 수 있습니다.

using (PowerShell PowerShellInstance = PowerShell.Create()) 
{ 
    PowerShellInstance.AddCommand(".\fpcalc.exe " + file.Path + " > out.txt"); 
} 

Cannot find type System.SystemException in module CommonLanguageRuntimeLibrary 

그래서 아무도 내가 내 응용 프로그램 내에서이 fpcalc.exe 파일을 실행 할 수있는 어떤 생각을 가지고 않습니다 빌드 할 때 다음과 같은 오류가? 응용 프로그램이 Windows PC 및 데스크톱 만 지원하는지 실제로 신경 쓰지는 않지만 최종 응용 프로그램은 WACK을 전달하고 Microsoft Store (BTW를 무료로 다운로드 할 수 있음)에서 사용할 수 있어야합니다.

내가 벽돌 벽에 머리이 온통 밤을 두드리는 있었어요 도움 :

답변

14

에 미리 감사하지만, 온라인 페이지의 수백 후 나는 내 문제에 대한 해결책을 마련 수 있습니다. "참조> 범용 윈도우> 확장"아래는 "UWP v10.0.14393.0를 들어 Windows 바탕 화면 확장의"를 참조하여

내가 사용할 수 있습니다

await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync(); 

LaunchFullTrustProcess 날로부터 신뢰할 수있는 응용 프로그램을 실행할 수 있습니다 내 응용 프로그램 내에서. 그때 내가 할 종속성을 수정

<rescap:Capability 
    xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" 
    Name="runFullTrust" /> 

내가 다음 XML 다음

<Extensions 
    xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"> 
    <desktop:Extension 
     Category="windows.fullTrustProcess" 
     Executable="fpcalc.exe" /> 
</Extensions> 

에 다음에 "응용 프로그램"을 추가 한 패키지 매니페스트 XML 파일을 수정 "기능"에 다음을 추가 내 Windows 데스크톱 컴퓨터에서 실행되는 응용 프로그램

<Dependencies> 
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" /> 
</Dependencies> 

그런 다음 응용 프로그램을 시작할 수있었습니다. 코드 작성이 끝나면 테스트하고 나중에 참조 할 수 있도록 올바른 해결책을 게시합니다.

+0

가능하면 전체 솔루션을 게시 할 수 있습니까? :) –