我们有一个使用不可见窗口(窗体)进行DDE通信的VB6应用程序。用户桌面上的隐藏窗口显示
我们有一些客户报告说偶尔他们可以在他们的桌面上看到这个窗口。
我对代码中的任何visible = true或show在代码中进行了扫描,但没有任何结果。
这所有我们用它做:
Load frmDDELink
frmDDELink.stuff = stuff
,我们实际上并不明确地显示(或者明确地也不显示它)。
什么会导致隐藏的窗口显示在用户的桌面上,使其可见?
我们有一个使用不可见窗口(窗体)进行DDE通信的VB6应用程序。用户桌面上的隐藏窗口显示
我们有一些客户报告说偶尔他们可以在他们的桌面上看到这个窗口。
我对代码中的任何visible = true或show在代码中进行了扫描,但没有任何结果。
这所有我们用它做:
Load frmDDELink
frmDDELink.stuff = stuff
,我们实际上并不明确地显示(或者明确地也不显示它)。
什么会导致隐藏的窗口显示在用户的桌面上,使其可见?
客户机器上的一个行为异常的应用程序可以做到这一点。 FindWindow()是一个臭名昭着的不准确的API函数。最重要的是,所有的VB6窗口都有相同的类名。雷霆的东西,iirc。它可能会找到您的窗口而不是预期的窗口,从而使错误的窗口可见。
我很久没有使用vb6了,但试着将窗体的位置设置为离屏。
尝试
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' – MarkJ
如果用户有多个屏幕并且一个位于主桌面的左侧,但也许有更大的价值可能的方式......这当然是想要融入未来的东西。 – Daemonic