Dessiner sur le bureau , premier plan (api)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 207 fois - Téléchargée 59 fois

Contenu du snippet

Dessine sur le bureau (parceque c le premier plan)

Source / Exemple :


Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Form_Activate()
    Dim unlong As Long
    Do
        'Recupere le handle du premier plan
        unlong = GetForegroundWindow()
        'Recupere le premier plan
        unlong = GetDC(Ret)
        'dessine l'ellipse
        Ellipse unlong, 0, 0, 200, 200
        'Traite les instructions processeurs
        DoEvents
    Loop
End Sub

Conclusion :


Code pouvant etre utile pour le developpement d'appli style la patite nana sexy qui se ballade sur l'ecran et que tout le monde connait

A voir également

Ajouter un commentaire

Commentaires

kakenette
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1 -
Oui alors pourrais-tu m'expliquer comment utiliser releaseDC dans ce qua pour libérer la mémoire car ce code m'intéresse. J'aurai voulu savoir si il est possible plutôt que dessiner une ellipse, si il aurai été possible de directement dessiner un texte. Se qui serrai beaucoup plus avantageux...

Car je cherche en réalité un moyen de pouvoir Printé du texte sur l’écran ou dans un processus…
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
Concernant le dessin dans le fond du bureau... le bureau (là où il y a les icones) est une fenetre de type SysListView32

il s'agira donc de dessiner dans le fond de celle ci, quand c'est nécessaire, et surtout, où c'est nécessaire, afin d'eviter tout scintillement, et toute surcharge CPU inutile.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
certes, c'est un soucis, ce 'ret' qui viens de nulle part.
il prend donc comme valeur 0, et le code fonctionne néanmoins.

pourtant, et surtout placé dans une boucle sans fin, ce code contient une fuité mémoire, puisque le DC obtenu via GetDc n'est pas libéré (via ReleaseDC)
philippe laschweng 1
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
1 -
Et dans le code ci-dessus je comprends pas pourquoi tu utilises la même variable unlong pour le GetForegroundWindow() et le GetDC(Ret) puisque la deuxième instruction va écraser le résultat de la première non (unlong utilisée dans troisiéme instruction)? C'est volontaire
philippe laschweng 1
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
1 -
Bonjour,

Merci pour ta réponse mais je ne suis pas sûr d'avoir tout saisit (débutant). C'est quoi SysListView32 et Hook & co? Un exemple est possible?

Merci par avance!
Cordialement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.