Присвойте произвольное имя процессу, запущенному в VB.Net - PullRequest
0 голосов
/ 04 сентября 2018

При запуске процесса в VB.Net я хотел бы дать ему произвольное имя, к которому может обращаться любая функция, которой я даю этот процесс в качестве аргумента.

Я запускаю свой процесс следующим образом:

Dim mainProcessHandler As New ProcessStartInfo()
Dim mainProcess As Process
mainProcessHandler.FileName = "something_01out18.bat"
mainProcessHandler.Arguments = "-d"
mainProcessHandler.WindowStyle = ProcessWindowStyle.Hidden
mainProcess = Process.Start(mainProcessHandler)

Если я больше ничего не делаю, при использовании

mainProcess.ProcessName

Я получу "cmd", так как это скрипт bat, запускаемый cmd.

Могу ли я сделать что-то вроде

mainProcess.myCustomName = "bat01out18"

И вызвать его в функции

Sub doThingsWithProcess(ByVal usedForThingsProcess As Process) As Boolean
    infoConsoleDisplay("process " + usedForThingsProcess.myCustomName + " will be used to for things")
End Sub

Я почти уверен, что есть способ достичь этой цели, но, возможно, с другим подходом. У вас есть идеи?

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете создать подкласс, который наследуется от Process, затем вы можете добавить любые пользовательские свойства, которые вам нравятся. Вот пример:

Public Class CustomProcess
    Inherits Process

    Public Property DisplayName As String

End Class

Использование:

Dim pInfo As New ProcessStartInfo()
pInfo.FileName = "cmd.exe"
pInfo.Arguments = "/C ping 127.0.0.1"
pInfo.WindowStyle = ProcessWindowStyle.Normal
Dim mainProcess As New CustomProcess() With {.DisplayName = "MyProcess"}
mainProcess.StartInfo = pInfo
mainProcess.Start()

Console.WriteLine($"Process '{mainProcess.DisplayName}' will be doing so and so.")

Выход:

Process 'MyProcess' will be doing so and so.
...