2017-03-20 7 views
8

ここではレンガの壁にヒットしたと思われます。私は、オーディオデータベースを自動的に検索して正しいアーティストとタイトルを取得し、それに応じてファイルの名前を変更するオーディオフィンガープリントを生成するアプリケーションを開発しています。UWPを使用してC#からEXEを実行

私の問題は、音響指紋を生成できるC#とUWP(私が知っているもの)のためのサポートされたライブラリがないことです。私が見つけた唯一の事はChromaprintで、 "fpcalc.exe mymp3file.mp3> generatedfingerprint.txt"のようなコマンドを実行し、指紋をテキストファイルに取り込むことができます。

ここで指紋をつかむことは実際には問題ではありませんが、問題はWinformsアプリケーションで使用されているような従来の方法を使用してUWPアプリケーション内からEXEファイルを実行できないということです。 UWPからファイルを実行するためのコマンドプロンプトが表示されるので、アプリケーション内で指紋を生成することはできません。

私の質問には、これに対応する回避策がありますか?私はPowershell

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

I:XboxOneは、私は次のコードを使用している場合しかし、PowerShellをサポートしているという事実

Cannot find type System.SystemException in module CommonLanguageRuntimeLibrary 

をだから、誰もが、私は自分のアプリケーション内からこのfpcalc.exeファイルを起動するために何ができるか任意のアイデアを持っているん:構築する際に次のエラーを取得しますか?アプリケーションがWindows PCとデスクトップのみをサポートしているかどうかは実際気にしませんが、最終アプリケーションはWACKを渡してMicrosoft Store(BTWを無料でダウンロードできます)で使用できる必要があります。任意の助けを事前に

感謝:)

答えて

14

私はこの上のすべての夜レンガの壁に頭を叩いてきたが、オンライン数百ページの後に私は私の問題への解決策が出ていることがあります。 「参考資料>ユニバーサルWindowsは>拡張機能」の「UWP v10.0.14393.0のためにWindowsデスクトップの拡張機能」参照することにより

私が使用することができます。

await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync(); 

LaunchFullTrustProcessは私から信頼されたアプリケーションを起動することができます私自身のアプリケーション内で。私は、その後、私は私を作るために、依存関係を変更し、私はその後、XMLに「アプリケーション」に

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

を以下を追加したパッケージのマニフェストXMLファイルを修正し、「能力」

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

の下に次を追加しましたWindowsデスクトップマシンで実行されるアプリケーション

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

私はアプリケーションを起動できました。私がコードを書くのを終えたら、それをテストし、将来の参考のために正しい解決策を投稿します。

+0

できるだけ完全なソリューションを投稿できますか? :) –

関連する問題