【发布时间】: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