【问题标题】:Finding a prorcess by name,indicating to user that the process run,then killing the process按名称查找进程,向用户指示该进程正在运行,然后杀死该进程
【发布时间】:2016-08-30 09:09:26
【问题描述】:

我想在 vb.net 中制作一个简单的更新应用程序,但是,它无法更新文件,因为文件正在运行。所以,我想找到所有名为“seemta helper”的进程(这就是 Task m.show it's name)”并且,如果一个进程正在使用该名称运行,则使用 msgbox 向用户指示该进程正在运行,并且当用户按下 OK 按钮时,然后终止该进程。

附:抱歉英语不好。 :(

【问题讨论】:

  • 欢迎来到 StackOverflow!到目前为止,您尝试了什么,您在哪里卡住了?您的问题有点过于宽泛,因为它要求一个完整的解决方案,而不仅仅是一个 single 问题。从Process.GetProcessesByName() 开始,如果您在实施解决方案时遇到特定 问题,请返回。
  • 是的,我有,我不知道如何在 IF 语句中使用 Process.GetProcessByName。所以这是我目前卡住的地方。
  • 因此,如果一个进程以“seemta helper”的名称运行,则需要向用户指示它,并且当用户按下 msgbox 中的 OK 按钮时,然后终止该进程。

标签: .net vb.net process msgbox


【解决方案1】:

你可以这样做:

For Each p As Process In Process.GetProcessesByName("seemta helper")
    If MessageBox.Show("Kill " + p.ProcessName + "(" + p.Id + ")?", "Kill", MessageBoxButton.YesNo) = MessageBoxResult.Yes Then
        p.Kill()
    End If
Next

GetProcessesByName() 返回具有指定名称的正在运行的Process 实例的数组。

然后你会显示一个消息框来询问用户是否应该终止进程,如果点击Yes,你会在该进程的实例上调用Kill()

【讨论】:

  • 只是一个问题,我怎样才能像你一样实现代码?
  • @Ntohing_Trolll 对不起,我不明白这个问题。你的意思是,如何复制和粘贴?听起来您在询问 SO 之前需要一些基本的 vb 教程。
  • 这给我带来了错误:从字符串“Kill”到类型“Integer”的转换无效。
  • 不,我的意思是,我怎么能像你一样粘贴代码,我知道如何粘贴和复制:D
  • 你的意思是StackOverlow上的格式化?只需在行首添加四个空格。
【解决方案2】:

试试这个:

Dim Processes() As Process = Process.GetProcessesByName("seemta helper")

For Each process As Process In Processes
     process.Kill()
Next

您可能需要管理员权限才能终止进程

【讨论】:

    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 2011-02-25
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多