我正在使用Visual Basic 2008
例如我已经运行notepad.exe
,我可以隐藏记事本窗口,然后如果我需要它再次显示它吗?
感谢。
答案 0 :(得分:5)
Process.GetProcessesByName()
通过"notepad"
。MainWindowHandle
。ShowWindow()
通过SW_HIDE
或SW_SHOW
隐藏/显示窗口。<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
End Function
ShowWindow()
主题列出了SW_*
标记的数值。
感谢@Alex K建议使用ShowWindowAsync()
而不是ShowWindow()
作为评论。
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindowAsync(ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
End Function
来自文档:
此功能发布一个显示窗口 事件到消息队列 给定窗口。应用程序可以使用 这个功能可以避免成为 等待时没有反应 无响应的申请表 处理展示窗口事件。