簡體   English   中英

Process.Start() 在 UWP 中打開 exe 文件沒有任何問題

[英]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(文件);

更新2

我嘗試使用 FullTrustProcessLauncher 它工作正常,但就像鍵盤 tabtip.exe 之前的代碼不顯示我不知道我應該做什么

   await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
      FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();

     });

沒有TabTip.exe

我知道您正在嘗試根據exe的路徑顯示屏幕鍵盤。 我建議一種更好的方法是觸發新的啟用觸摸的鍵盤,而無需使用InputPane API從UWP進行額外的麻煩,就可以輕松實現這一點:

var pane = InputPane.GetForCurrentView();
pane.TryShow();

使用TabTip.exe

如果出於某種原因而更喜歡舊的屏幕鍵盤,則現有代碼有兩個問題。

首先,使用ms-appx:方案來引用應用程序安裝路徑中的文件。 您所需的路徑是絕對路徑,因此您不能在那里使用它。

其次,由於這是硬盤驅動器上的任意路徑,因此您無權直接訪問它(因為UWP應用程序在沙箱中運行,並且出於安全原因無法直接訪問文件系統)。 要訪問文件,您將需要聲明broadFileSystemAccess功能,該功能隨后將允許您初始化StorageFile實例。 例如,您可以檢查此SO問題以了解如何做到這一點。

注意:我沒有VS PC,所以我不能確定這是否允許您啟動可執行文件,因為這似乎是額外的權限,可能無法授予該權限。 萬一失敗,我強烈建議第一個解決方案。

由於安全限制,UWP應用程序是沙盒式的,無法直接啟動其他進程。

啟動其他應用程序的唯一方法是,如果這些應用程序注冊了URI,或者某個應用程序是特定文件類型的默認處理程序。

在這些情況下,可以使用諸如LaunchUriAsyncLaunchFileAsync

確保已編輯清單文件,並在應用程序中添加了用於完全信任過程的擴展名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM