我的应用程序从命令行启动openvpn,如下所示:
Dim cmdInfo As New ProcessStartInfo("cmd", "/K openvpn.exe " & Chr(34) & ovpnPath & Chr(34))
cmdInfo.WindowStyle = ProcessWindowStyle.Hidden
Process.Start(cmdInfo)
这很好但我无法优雅地关闭openvpn。我可以杀死进程但是它不会删除路由等。
现在我正在寻找一种方法将Ctrl + C或F4发送到隐藏的cmd窗口以使OpenVPN退出。
答案 0 :(得分:0)
Dim opwnfilepath As String = "Opvn file path"
Dim Params As String = " --config """ & opwnfilepath & """
Dim p As New ProcessStartInfo
p.FileName = "C:\Program Files\OpenVPN\bin\openvpn.exe" ' add here openvpn.exe path
p.Arguments = Params
p.WindowStyle = ProcessWindowStyle.Hidden
Process.Start(p)
我使用这段代码工作得很好。如果需要显示cmd中发生的更改ProcessWindowStyle.Hidden
更改为ProcessWindowStyle.Normal
对不起,我理解错了:D
如果你在任务管理器中关闭openvpn,网络就会回到你自己的
试试这段代码
Dim arrProcessx() As Process = System.Diagnostics.Process.GetProcessesByName("openvpn")
For Each psx As Process In arrProcessx
psx.Kill()
Next
为我测试了工作。