我們有一個使用不可見窗口(窗體)進行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