Montrer et cacher les icônes du bureau

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Montrer et cacher les icônes du bureau

Message par Le Soldat Inconnu »

Salut,

une chtite question :
Qlq'un connait-il le truc pour montrer et cacher les icônes du bureau ?

Merci d'avance :)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Invité

Message par Invité »

ben ya bien un truc facile a faire !!


tous les icones de bureau sont dans windows\bureau\ (sur win98)

ils ont pour extention *.LNK

si tu deplace un ou tous les *.lnk vers un autre dossier
automatiquement windows va les retirers du bureau !!!!
ils vont donc disparaitres !!!

si tu remet ces *.lnk dans windows\bureau\
ben ils reaparaissent comme par magie !!!

pour win 98 le path est windows\bureau\
pour win xp je sais pas , mais ça doit etre pareille !!!

:)
Proger73

Message par Proger73 »

Ya un truc plu perfectionner à faire mai ke j'ai jamais tenter, c'est de récupérer le handle du bureau (c'est comme un handle de fenêtre) puis aprè tu dessines dessus comme une fenêtre normale.

Sur ce je m'en vais tester ça :D
Invité

Message par Invité »

Function GetdesktopWindow Lib "user32" () As Long

Récupère le handle de la fenêtre représentant la totalité de l'écran

Long - Handle de la fenêtre de bureau

Toutes les icônes sont dessinées sur cette fenêtre. Utilisée aussi pour l'écran de veille

après ça , reste à savoir quoi en faire de ce handle :)
leoneo
Messages : 35
Inscription : sam. 24/janv./2004 19:49

Message par leoneo »

Salut moi je fais comme cela :

Code : Tout sélectionner

;ATTENTION il est préférable de tout sauvegarder avant execution !!
; charge la dll

AniLib = OpenLibrary(1, "user32.dll")

;______________________________________________________________
barre = 0; Cache la barre des taches
;barre = 1; montre la barre des taches
Value = CallFunction(1, "FindWindowA", "Shell_TrayWnd", "")
a = CallFunction(1, "ShowWindow", Value, barre)

;______________________________________________________________
icone = 0 ; Cache les icones
;icone = 1 ; montre les icones
value = CallFunction(1, "FindWindowA", "Progman", "Program Manager")
a = CallFunction(1, "ShowWindow", value, icone)
@+Léo
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Bravo !!!

C'est un peu un piège si on laisse tout à 0, parce qu'on a plus ni barre de tâches ni icônes et qu'on est obligé de redémarrer, :lol: , mais c'est vachement intéressant ce bout de code.

Puis de toute façon, on est prévenu!!! Faut tout sauvegarder :lol:

Chris :)
Invité

Message par Invité »

heu !!!

Ma methode de bourain marche aussi !!!! pffffffff ! :evil:







:D :D :D :D :D :D :D :D :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

>> Dobro : Oui mais c'est pas celle la qui m'intéresse.

>> leoneo : bon, je ragrde ton code, merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Trop classe

par contre, tu n'aurait pas une idée pour récupérer l'info icône affiché ou cacher au démarrage du prog ? (je suis exigent, n'est ce pas :wink: )
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Avec un fichier "*.ini" ou une clé dans la base de registre, ca irait pas ???

Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ben, mon but est de faire un petit prog qui montre ou cache les icônes du bureau sans aucun fichier annexe ou clé de regitre.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Je viens de regarder, la fonction ShowWindow_() renvoie une valeur si les icones sont cachés, et 0 si il sont visibles.

C'est peut-être là qu'il faut chercher !
Return Values

If the window was previously visible, the return value is nonzero.
If the window was previously hidden, the return value is zero.
Chris :)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ce petit bout de code renvoie 1 si les icônes sont visibles, et 0 si ils sont cachés.

Code : Tout sélectionner

hDesktop = FindWindow_("Progman", "Program Manager")
Visibibity = IsWindowVisible_(hDesktop)
Debug Visibibity
Mais le problème, c'est que, même si tu caches les icônes avant de fermer Windows, ils redeviennent visibles quand tu redémarre. Il faudrait trouver la clé de registre qui contient la visibilité des icônes.

Chris :)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Puisque vous êtes sur les icones, je sais qu'il y a un moyen pour suprimmer le texte en dessous en leur donnant un nom spécial : Vous les connaissez ? :oops:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

oui, je l'ai mais pas ici, faut que je les ramène.

sinon, c'est intéressant, ce que tu dit, Chris. je part sur ce principe.

donc j'obtient ceci :

Code : Tout sélectionner

Bureau = FindWindow_("Progman", "Program Manager")
If IsWindowVisible_(Bureau) ; Si les icônes sont visibles
  ShowWindow_(Bureau, 0) ; Cache les icônes
Else
  ShowWindow_(Bureau, 1) ; Montre les icônes
EndIf

sinon, j'ai essayé de passer par showwindow_( pour afficher le bureau mais ce fut un échec total.
pour le moment je reste avec le code que j'ai mis dans truc et astuces mais ce code est trop lent du fait que par mon système, chaque fenêtre se réduit avec une animation. alors la ausi, si quelqu'un à une idée, je dis pas non.
le code avec le principe pour afficher le bureau est le suivant :

Code : Tout sélectionner

Procedure ShowDesktop()
  hWnd.l = FindWindow_( 0, 0 )
  While hWnd <> 0
    If GetwindowLong_(Hwnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE
      If GetwindowLong_(Hwnd, #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW <> #WS_EX_TOOLWINDOW
        txt.s = Space(256)
        GetWindowText_(hwnd, txt, 256)
        If txt <> "" : ShowWindow_( hWnd, #SW_SHOWMINIMIZED ) : EndIf
      EndIf
    EndIf
    hWnd = GetWindow_(hWnd, #GW_HWNDNEXT)
  Wend
EndProcedure


ShowDesktop()

Bureau = FindWindow_("Progman", "Program Manager")
If IsWindowVisible_(Bureau) ; Si les icônes sont visibles
  ShowWindow_(Bureau, 0) ; Cache les icônes
Else
  ShowWindow_(Bureau, 1) ; Montre les icônes
EndIf
je vous laisse constater la lenteur du bazar
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre