Toujours sur le bureau !

Résolu
cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006 - 29 nov. 2006 à 13:30
cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006 - 2 déc. 2006 à 17:40
Bonjour.
Je voudrais que les fenêtres de mon application restent affichéessur le bureaumême lorsque l'utilisateur clique sur l'icône « Afficher le bureau » dans la barre de lancement rapide...

Quelqu'un pourrait-il m'aider ?
D'avance merci.
Cordialement.
CB

11 réponses

cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006
2 déc. 2006 à 17:40
J'ai trouvé ! Et en bien plus simple... sans API !
Je joins le code pour ceux que cela pourrait éventuellement intéresser :

    Private Sub Form1_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles  Me.LocationChanged
        If Me.Top < 0 Then
            Me.WindowState = FormWindowState.Normal
            Me.TopMost = True
            Me.Refresh()
        End If
    End Sub

CBo))=
3
pape0 Messages postés 132 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 1 septembre 2014
29 nov. 2006 à 13:56
Non cela n'est pas possible!

Même si tu ouvrent tes fenêtres en modal.

<hr />
Aller voir ces sites
http://www.pape-bleu.net et  http://www.pape-bleu.net.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 nov. 2006 à 15:35
Salut,

pas sûr que ce soit impossible, il faut rechercher du côté des Apis, dès que la commande C:\Documents and Settings\<nom utilisateur>\Application Data\Microsoft\Internet Explorer\Quick Launch\Bureau.scf est lancé, de réafficher la Form.
(à l'aide d'un Timer).

Jamais fais, ce n'est qu'une piste (peut-être ?).

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 nov. 2006 à 16:49
Voir du coté de l'API SetWindowsPos, mais c'est pas certain que ce soit possible effectivement.

La "commande Bureau" comme dit Mortalino n'est pas une commande qui lance un quelconque executable. Elle envoit juste une instruction au système pour qu'il force la réduction de toutes les fenetres ouvertes (passage à l'état Minimize).

Mais il est vrai que certaines fenetre restent affichées malgrès tout. Comment sont-elles affichées à la base??? Popup peut-etre, à essayer.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
29 nov. 2006 à 17:03
Salut à tous, comme l'a dit 647037 mortalino , si tu peux detecter la commande, utilise l'API SetForgroundWindow! (ou celle de =333139 casy)
Tiens au passage, mortalino , t'as vu mon topic?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006
30 nov. 2006 à 16:49
Bonsoir.
Merci à tous pour votre contribution !
J'ai réussi, sans trop de difficulté, à résoudre le problème de la détection du passage dans la barre des tâches grâce à la méthode : LocationChanged ...les coordonnées de la fenêtre deviennent toutes deux -3200 ! Il me suffit d'écrire :

Private Sub Form1_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged
        If Me.Top < 0 Then
                ...je réaffiche la Form sur le Bureau !
        End If
    End Sub

Mais malheureusement, je ne sais pas « réafficher la Form »...

Pourriez-vous m'indiquer plus précisément un code ou un lien qui me permettrait de découvrir comment


utiliser l'API SetForgroundWindow ?





D'avance encore merci.
CB
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
30 nov. 2006 à 17:05
Re:

Public






Declare



Function
SetForegroundWindow

Lib



"user32"
(

ByVal
hwnd

As



Integer
)

As



Integer




 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006
30 nov. 2006 à 18:58
Merci Drikce 06...



...et pour appeler l'API et ouvrir le formulairequel code dois-je mettre après ma condition :if Me.Top < 0 then.....






- je n'ai jamais utilisé d'API, je découvre... merci d'avance ! -
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 nov. 2006 à 19:03
Salut,

If SetForegroundWindow(Me.hWnd) Then

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006
30 nov. 2006 à 19:49
...désolé (merci Mortalino de ton aide) mais je ne comprends pas quel code écrire pour "forcer" ma fenêtre à rester ouverte !
Pourriez-vous m'indiquer un tutoriel simple qui m'expliquerait "pas à pas" comment faire appel une l'API ?
D'avance une nouvelle fois merci...
Cordialement.
CB
0
cb89 Messages postés 7 Date d'inscription jeudi 8 décembre 2005 Statut Membre Dernière intervention 2 décembre 2006
30 nov. 2006 à 22:28
Tant pis...
Merci pour tout le reste...
CB
0
Rejoignez-nous