Windows 用户桌面上的隐藏窗口显示
我们有一个VB6应用程序,它使用不可见的窗口(窗体)进行DDE通信 我们有一些客户报告说,他们偶尔可以在桌面上看到此窗口 我对代码进行了一次扫描,查找表单上的任何visible=true或show,但什么也没有 这就是我们所做的一切:Windows 用户桌面上的隐藏窗口显示,windows,vb6,hidden,visible,Windows,Vb6,Hidden,Visible,我们有一个VB6应用程序,它使用不可见的窗口(窗体)进行DDE通信 我们有一些客户报告说,他们偶尔可以在桌面上看到此窗口 我对代码进行了一次扫描,查找表单上的任何visible=true或show,但什么也没有 这就是我们所做的一切: Load frmDDELink frmDDELink.stuff = stuff 我们实际上并不显式显示(或者也不显式显示) 什么会导致隐藏窗口显示在用户桌面上,使其可见?客户端计算机上行为不正常的应用程序可能会这样做。FindWindow()是一个众所周知的不
Load frmDDELink
frmDDELink.stuff = stuff
我们实际上并不显式显示(或者也不显式显示)
什么会导致隐藏窗口显示在用户桌面上,使其可见?客户端计算机上行为不正常的应用程序可能会这样做。FindWindow()是一个众所周知的不准确的API函数。除此之外,所有VB6窗口都具有相同的类名。打雷什么的,iirc。它可能会找到您的窗口而不是预期的窗口,从而使错误的窗口可见。尝试将表单的位置设置为屏幕外
frmDDELink.ClientLeft = -100
frmDDELink.ClientTop = -100
我喜欢黑青蛙在屏幕外设置位置的简单提示,以及nobugz可能的解释。我还建议处理Form_Activate事件并再次将表单设置为不可见
Private Sub Form_Activate()
'Log something for debugging purposes?'
Me.Visible = False
End Sub
尝试将边框设置为“无”,或me.visible=false,并将属性设置为不显示在任务栏中。+1很好的实用解决方案,但在VB6中,它更像是
frmDDELink.Left=-100-frmDDELink.Width:frmDDELink.Top=-100-frmDDELink.Height
如果用户有多个屏幕,并且主桌面左侧有一个屏幕,则没有帮助,但更大的值可能会起作用。。。这当然是为未来整合的一个想法。