Windows 用户桌面上的隐藏窗口显示

Windows 用户桌面上的隐藏窗口显示,windows,vb6,hidden,visible,Windows,Vb6,Hidden,Visible,我们有一个VB6应用程序,它使用不可见的窗口(窗体)进行DDE通信 我们有一些客户报告说,他们偶尔可以在桌面上看到此窗口 我对代码进行了一次扫描,查找表单上的任何visible=true或show,但什么也没有 这就是我们所做的一切: Load frmDDELink frmDDELink.stuff = stuff 我们实际上并不显式显示(或者也不显式显示) 什么会导致隐藏窗口显示在用户桌面上,使其可见?客户端计算机上行为不正常的应用程序可能会这样做。FindWindow()是一个众所周知的不

我们有一个VB6应用程序,它使用不可见的窗口(窗体)进行DDE通信

我们有一些客户报告说,他们偶尔可以在桌面上看到此窗口

我对代码进行了一次扫描,查找表单上的任何visible=true或show,但什么也没有

这就是我们所做的一切:

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
如果用户有多个屏幕,并且主桌面左侧有一个屏幕,则没有帮助,但更大的值可能会起作用。。。这当然是为未来整合的一个想法。