歡迎光臨
每天分享高質量文章

.NET/C# 獲取一個正在執行的行程的命令列引數

 

 

但是,可以透過什麼方式來獲取另一個執行著的程式的命令列引數呢?

 

行程內部獲取傳入引數的方法,可以參見我的另一篇部落格:.NET 命令列引數包含應用程式路徑嗎?。

 

.NET Framework / .NET Core 框架內部是不包含獲取其他行程命令列引數的方法的,但是我們可以在任務管理器中看到,說明肯定存在這樣的方法。

 

 

實際上方法是有的,不過這個方法是 Windows 上的專屬方法。

 

對於 .NET Framework,需要取用程式集 System.Management;對於 .NET Core 需要取用 Microsoft.Windows.Compatibility 這個針對 Windows 系統準備的相容包(不過這個相容包目前還是預覽版本)。

 

然後,我們使用 ManagementObjectSearcherManagementBaseObject 來獲取命令列引數。

 

為了簡便,我將其封裝成一個擴充套件方法,其中包括對於一些異常的簡單處理。

 

使用此方法得到的命令列引數是一個字串,而不是我們通常使用字串時的字串陣列。如果你需要將其轉換為字串陣列,可以使用我在另一篇部落格中使用的方法:

 

  • .NET/C# 將一個命令列引數字串轉換為命令列引數陣列 args

 

參考資料

 

本文會經常更新,請閱讀原文: https://walterlv.com/post/get-command-line-for-a-running-process.html ,以避免陳舊錯誤知識的誤導,同時有更好的閱讀體驗。

 

如果你想持續閱讀我的最新部落格,請點選 RSS 訂閱,或者前往 CSDN 關註我的主頁。

原文地址:https://walterlv.com/post/get-command-line-for-a-running-process.html

贊(0)

分享創造快樂