2010-01-22 7 views
1

Nous avons une application VB6 qui utilise une fenêtre (formulaire) non visible pour la communication DDE.Affichage de la fenêtre masquée sur le bureau des utilisateurs

Nous avons des clients qui signalent qu'ils peuvent parfois voir cette fenêtre sur leur bureau.

J'ai fait une analyse à travers le code pour tout visible = true ou show sur le formulaire en question, mais rien.

Ce tout ce que nous avec ce modèle:

Load frmDDELink 
frmDDELink.stuff = stuff 

Nous ne diffusons pas réellement explicitement (ou afficher explicitement pas non plus).

Qu'est-ce qui peut provoquer l'affichage d'une fenêtre masquée sur le bureau d'un utilisateur afin qu'elle soit visible?

Répondre

1

Une application mal se comporter sur la machine du client pourrait le faire. FindWindow() est une fonction API notoirement inexacte. De plus, toutes les fenêtres VB6 ont le même nom de classe. Tonner quelque chose, iirc. Il se peut que vous trouviez votre fenêtre à la place de celle prévue, rendant la mauvaise fenêtre visible.

2

Je n'ai pas utilisé vb6 depuis longtemps, mais essayez de définir l'emplacement du formulaire à l'écran.

Essayez
frmDDELink.ClientLeft = -100 frmDDELink.ClientTop = -100

+0

+1 belle solution pragmatique mais dans VB6 ce serait plus comme 'frmDDELink.Left = -100 - frmDDELink.Width: frmDDELink.Top = -100 - frmDDELink.Height' – MarkJ

+0

Ne aide pas si les utilisateurs ont plusieurs écrans et un à gauche du bureau principal, mais peut-être que des valeurs plus grandes peuvent fonctionner ... c'est certainement quelque chose à penser à intégrer dans les futurs. – Daemonic

0

J'aime simplement allusion Black Frog pour définir l'emplacement hors de l'écran, et une explication possible de nobugz. Je suggère également de gérer l'événement Form_Activate et de redéfinir le formulaire.

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

essayer de mettre la frontière dans aucune, ou Me.Visible = false et définissez la propriété de ne pas afficher dans la barre des tâches.

Questions connexes