[英]Process.Start() Open exe file nothing hapen in UWP
沒有錯誤只是什么也沒發生,文件目標仍然在我的路徑中
public void keyboard(){
ProcessStartInfo touchkey = new ProcessStartInfo(@"C:\Program
Files\Common Files\microsoft shared\ink\TabTip.exe");
touchkey.WorkingDirectory = @"C:\";
touchkey.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(touchkey);
}
The suggested solution threw a `UnauthorizedAccessException`:
var path = @"ms-appx://C:/Program Files/Common Files/microsoft
shared/ink/TabTip.exe";
var file = await
Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(path); 等待 Windows.System.Launcher.LaunchFileAsync(文件);
我嘗試使用 FullTrustProcessLauncher 它工作正常,但就像鍵盤 tabtip.exe 之前的代碼不顯示我不知道我應該做什么
await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
{
FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
});
我知道您正在嘗試根據exe
的路徑顯示屏幕鍵盤。 我建議一種更好的方法是觸發新的啟用觸摸的鍵盤,而無需使用InputPane
API從UWP進行額外的麻煩,就可以輕松實現這一點:
var pane = InputPane.GetForCurrentView();
pane.TryShow();
如果出於某種原因而更喜歡舊的屏幕鍵盤,則現有代碼有兩個問題。
首先,使用ms-appx:
方案來引用應用程序安裝路徑中的文件。 您所需的路徑是絕對路徑,因此您不能在那里使用它。
其次,由於這是硬盤驅動器上的任意路徑,因此您無權直接訪問它(因為UWP應用程序在沙箱中運行,並且出於安全原因無法直接訪問文件系統)。 要訪問文件,您將需要聲明broadFileSystemAccess
功能,該功能隨后將允許您初始化StorageFile
實例。 例如,您可以檢查此SO問題以了解如何做到這一點。
注意:我沒有VS PC,所以我不能確定這是否允許您啟動可執行文件,因為這似乎是額外的權限,可能無法授予該權限。 萬一失敗,我強烈建議第一個解決方案。
由於安全限制,UWP應用程序是沙盒式的,無法直接啟動其他進程。
啟動其他應用程序的唯一方法是,如果這些應用程序注冊了URI,或者某個應用程序是特定文件類型的默認處理程序。
在這些情況下,可以使用諸如LaunchUriAsync
或LaunchFileAsync
確保已編輯清單文件,並在應用程序中添加了用於完全信任過程的擴展名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.