2017-03-20 25 views
8

Tôi đã tìm kiếm và tìm kiếm và dường như đã đánh vào một bức tường gạch ở đây. Tôi đang phát triển một ứng dụng tạo ra một vân tay âm thanh để tự động tìm kiếm một cơ sở dữ liệu âm thanh để lấy đúng nghệ sĩ và tiêu đề và đổi tên các tập tin cho phù hợp.Chạy EXE từ C# bằng UWP

Vấn đề của tôi là, không có thư viện được hỗ trợ nào cho C# và UWP (từ những gì tôi biết) có thể tạo vân tay âm thanh. Điều duy nhất tôi đã tìm thấy là Chromaprint cho phép tôi chạy một lệnh như "fpcalc.exe mymp3file.mp3> generatedfingerprint.txt" và lấy dấu vân tay vào một tệp văn bản. Vì vậy, khi bạn thấy lấy dấu vân tay không thực sự là vấn đề ở đây, vấn đề là tôi không thể chạy một tệp EXE từ bên trong một ứng dụng UWP bằng các phương thức truyền thống (như các phương thức được sử dụng trong một ứng dụng Winforms). một dấu kiểm nhắc lệnh để thực thi tệp từ UWP, vì vậy tôi không thể tạo vân tay từ bên trong ứng dụng của tôi. thực tế là XboxOne hỗ trợ PowerShell, tuy nhiên nếu tôi sử dụng mã sau:

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

I gặp lỗi sau khi xây dựng:

Cannot find type System.SystemException in module CommonLanguageRuntimeLibrary 

Vì vậy, bất kỳ ai cũng có thể biết tôi có thể làm gì để khởi chạy tệp fpcalc.exe này trong ứng dụng của mình? Tôi không thực sự phiền nếu ứng dụng chỉ hỗ trợ cho Windows PC và Desktops, nhưng ứng dụng cuối cùng phải có khả năng vượt qua WACK và được phép trên Microsoft Store (sẽ miễn phí để tải BTW).

Cảm ơn trước sự giúp đỡ nào :)

Trả lời

14

Tôi đã đập đầu tôi chống lại một bức tường gạch suốt đêm qua này, nhưng sau khi hàng trăm trang trực tuyến Tôi có thể đưa ra một giải pháp cho vấn đề của tôi.

Bằng cách tham khảo các "Windows Desktop Extensions For The v10.0.14393.0 UWP" dưới "Tài liệu tham khảo> Universal Windows> Extensions" Tôi có thể sử dụng:

await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync(); 

Các LaunchFullTrustProcess cho phép tôi để khởi động một ứng dụng đáng tin cậy từ trong ứng dụng của riêng tôi. sau đó tôi sửa đổi các tập tin XML Gói Manifest và bổ sung sau đây theo "khả năng"

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

sau đó tôi thêm vào để "ứng dụng" sau đây trong XML

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

Sau đó, tôi sửa đổi phụ thuộc để làm cho tôi ứng dụng chạy trên các máy tính Windows Desktop

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

Sau đó tôi có thể khởi chạy ứng dụng. Khi tôi viết xong mã, tôi sẽ kiểm tra nó và đăng giải pháp đúng cho vấn đề để tham khảo trong tương lai.

+0

Bạn có thể đăng giải pháp đầy đủ nếu có thể không? :) –

Các vấn đề liên quan