【问题标题】:How to properly hide process?如何正确隐藏进程?
【发布时间】:2020-03-30 21:33:20
【问题描述】:

如何正确隐藏进程?

我将这五行代码用于另一个进程,但不知何故它仍然没有隐藏,或者说它仍然在屏幕上可见。你知道我缺少哪一行代码吗?

我尝试过的:

  Dim myprocess As Process = New Process()
  myprocess.StartInfo.FileName = "SW.exe"
  myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  myprocess.StartInfo.UseShellExecute = True
  myprocess.StartInfo.CreateNoWindow = True
  myprocess.Start()
  myprocess.WaitForExit()

【问题讨论】:

  • 当您尝试隐藏其窗口时,某些进程不同意。 - 有些进程只是一个存根:它们运行另一个进程并在之后立即退出。例如,控制面板小程序;它们由rundll32.exe 使用shell32.dll, Control_RunDLL ... 之类的参数运行。如果是这种情况,您可以使用myprocess.WaitForInputIdle 和(尝试)使用ShowWindow 来修改窗口可见性。不过,你必须找到它。 FindWindowEx 可能就足够了,但您可能需要EnumThreadWindows
  • UseShellExecute = False

标签: vb.net process


【解决方案1】:

CreateNoWindow 属性的文档是这样说的:

如果 UseShellExecute 属性为 true 或 UserName 和 Password 属性不为空,忽略 CreateNoWindow 属性值 并创建了一个新窗口。

您的问题的答案正是您应该预期的。始终阅读文档。

【讨论】:

    猜你喜欢
    • 2012-12-17
    • 2011-10-14
    • 2017-09-25
    • 1970-01-01
    • 2016-09-19
    • 2017-10-30
    • 2016-11-05
    • 2015-04-17
    • 1970-01-01
    相关资源
    最近更新 更多