前言
當我們在開發UWP時, 有很多情況會需要呼叫WIN32程式做事, 比如說讀取註冊表裡的值,或是使用WMI取得系統或是BIOS資訊等等, 而這些事情光靠UPW是做不到的
以下教學示範如何呼叫WIN32做事並且取得執行結果
首先UWP的部分:
匯入套件Windows Desktop Extensions for the UWP 至UWP專案
Package.appxmanifest
宣告Application Extension
我們必須讓UWP知道我們要呼叫誰並且設為fullTrustProcess
修改Package.appxmanifest
加入WIN32 Extension 到<application>裏頭
修改<Capabilities>
App.xaml.cs
引用以下套件
喚起WIN32程式
修改protected override void OnLaunched(LaunchActivatedEventArgs e)加入底下程式碼
初始化App Service
發請求給WIN32程式
這邊我們先建立一個方法, 負責發送請求給win32程式修改剛剛複寫的OnBackgroundActivated, 最後去呼叫SendRequestToWin32
WIN32部分
加入套件: 有兩個必要套件必須要加入倒WIN32專案中
1. Windows
(待會會需要使用到Windows.ApplicationModel)
2. System.Runtime.WindowsRuntime
(少這個套件的話 await connection.OpenAsync(); 會報錯)
加完套件後Reference如下
留言
張貼留言