2010-01-22 61 views
1

我們有一個使用不可見窗口(窗體)進行DDE通信的VB6應用程序。用戶桌面上的隱藏窗口顯示

我們有一些客戶報告說偶爾他們可以在他們的桌面上看到這個窗口。

我對代碼中的任何visible = true或show在代碼中進行了掃描,但沒有任何結果。

這所有我們用它做:

Load frmDDELink 
frmDDELink.stuff = stuff 

,我們實際上並不明確地顯示(或者明確地也不顯示它)。

什麼會導致隱藏的窗口顯示在用戶的桌面上,使其可見?

回答

1

客戶機器上的一個行爲異常的應用程序可以做到這一點。 FindWindow()是一個臭名昭着的不準確的API函數。最重要的是,所有的VB6窗口都有相同的類名。雷霆的東西,iirc。它可能會找到您的窗口而不是預期的窗口,從而使錯誤的窗口可見。

2

我很久沒有使用vb6了,但試着將窗體的位置設置爲離屏。

嘗試
frmDDELink.ClientLeft = -100 frmDDELink.ClientTop = -100

+0

+1良好的實用解決方案,但在VB6中它更像'frmDDELink.Left = -100 - frmDDELink.Width:frmDDELink.Top = -100 - frmDDELink.Height' – MarkJ

+0

如果用戶有多個屏幕並且一個位於主桌面的左側,但也許有更大的價值可能的方式......這當然是想要融入未來的東西。 – Daemonic

0

我喜歡黑青蛙的簡單提示掀起屏幕上的位置,並nobugz的可能的解釋。我還建議處理Form_Activate事件並將表單再次設置爲不可見。

Private Sub Form_Activate() 
    'Log something for debugging purposes?' 
    Me.Visible = False 
End Sub 
0

嘗試將邊框設置爲無或me.visible = false,並將屬性設置爲不顯示在任務欄中。