begin process at 2010 02 10 15:33:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Windows

 > 

API

 > 

image bureau sans icones


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

image bureau sans icones

mardi 6 février 2007 à 16:20:46 | image bureau sans icones

ORTIPIC

Salut a tous

comment copier dans une picturebox l image du bureau Sans les icones ni les fenetres

Merci
FAB
mardi 6 février 2007 à 16:26:08 | Re : image bureau sans icones

jmfmarques

Membre Club

De quoi parles-tu, exactement ?
Du papier-peint ?

mardi 6 février 2007 à 16:59:04 | Re : image bureau sans icones

zavier666

D'abord tu masque les icônes:
 I) Obtenir le DC du bureau

Dans un premier temps, on recherche le handle du bureau :
Handle_bureau = GetDesktopWindow

Puis on recherche le DC du bureau :
DC_bureau = GetDC(handle_bureau)


II) dimensionner la PictureBox
Afin que l'image ne soit pas déformée, il est nécessaire de bien dimensionner la taille de la PictureBox :
Picture1.Width = Screen.Width
Picture1.Height = Screen.Height
Picture1.ScaleWidth = Screen.Width
Picture1.ScaleHeight = Screen.Height


III) transférer l'image
L'api StretchBlt demande de renseigner pour la source et la destination :

le contexte de périphérique (DC)DC

les points de départ: x,y

les points d'arrivée: largeur, hauteur

Ensuite il faut donner le mode de fonctionnement de l'api :
mode copie = &HCC0020

Cela donne :

StretchBlt Picture1.hdc, 0, 0, Picture1.Width, Picture1.Height, DC_bureau, 0, 0, Screen.Width, Screen.Height, &HCC0020

L'image ainsi affichée dans la PictureBox peut être sauvegardée :
'Il est important de mettre cette première ligne pour que Picture1.Picture ne soit pas vide ce qui empêcherait l'enregistrement
Picture1.Picture = Picture1.Image
SavePicture Picture1.Picture, « c:\essai.bmp »


Pour l'utilisation des API ainsi que le téléchargement de fichiers sources: API @ la Loupe http://xav.prog.power.free.fr

mardi 6 février 2007 à 17:01:08 | Re : image bureau sans icones

zavier666

Oups, manque un bout:

 I) Handle des icônes du bureau

Dim handle_Ibureau as double
' le nom de classe des icônes du bureau et "Progman"
handle_Ibureau = FindWindow("Progman", vbNullString)


II) Masquer les icônes du bureau

ShowWindow handle_Ibureau, 0


III) Afficher les icônes du bureau

ShowWindow handle_Ibureau, 8

Et après tu fais ton screenshot comme décris avant

mardi 6 février 2007 à 18:12:54 | Re : image bureau sans icones

VBGenesis

Je crois qu'il y a une méthode plus simple zavier666 : il me semble me souvenir qu'il y a une clé dans le registre qui indique où est stockée l'image utilisée en fond d'écran. Il n'y a qu'à ouvrir cette image dans la propriété picture de l'image. Pour cette clé il faut chercher, je ne sais plus où je l'ai vu.
VBGenesis
mardi 6 février 2007 à 18:21:22 | Re : image bureau sans icones

jmfmarques

Membre Club
Voilà la clef et la valeur (en gras):

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General]
"WallpaperFileTime"=hex:00,00,00,00,00,00,00,00
"ComponentsPositioned"=dword:00000001
"TileWallpaper"="0"
"WallpaperStyle"="0"
"Wallpaper"="D:\\superdeb.jpg"
"BackupWallpaper"=""
"WallpaperLocalFileTime"=hex:00,68,c4,61,08,00,00,00

Ceci étant dit : je ne suis pas d'accord, pour plusieurs raisons ....
Ce qu'il convient de faire est réellement de relever le papier peint en cours ... qui peut de surcroît être affiché de diverses manières ...
mardi 6 février 2007 à 19:09:04 | Re : image bureau sans icones

ORTIPIC

Merci

 zavier666

cool ta reponce
hela les fenetres ouvertes sont copies aussi

 jmfmarques

je garde ta solution sous le coude (pour les memes raisons que toi)


qui saura me virer ces fenetres

FAB
mercredi 7 février 2007 à 07:57:15 | Re : image bureau sans icones

jmfmarques

Membre Club

Il te faut utiliser la fonction PaintDesktop de la librairie user32 de l'APi de Windows.

Il te faudra probablement te servir de 2 pictureboxes, dont l'une en tremplin et dont l'autre pourra être dessinée à partir de ce tremplin par utilisation de la méthode OauntPicture de VB ou encore (mieux, pendant que tu y es) par utilisation de la fonction StretchBlt de la librairie gdi32 de l'Api de Windows.

Il n'est pas impossible que tu n'obtiennes pas toujours le papier-peint récemment modifié. Il se peut que tu n'obtiennes de cette façon que le dernier validé et après redémarrage de Windows. 

Il te faudra par ailleurs jouer avec les propriétés autoredraw des 2 pictureboxes, les dimensions de ton écran (à donner, en pixels, à la picturebox tremplin) et donner des dimensions calculées proportionnellement à la picturebox d'affichage si tu ne veux pas de distorsion de ton image.

J'ajoute que si ton image d'affichage est trio petite d'une part et que, d'autre part, le motif de ton papier peint n'occupe dans une grande surface de ton bureau, la réduction ipérée pour l'affichage le rendra pratiquement invisible.

Voilà : tu as tous les éléments, maintenant. A toi de jouer.

 

Une question, toutefois : quel est l'intérêt de tout celà ? (beaucoup de travail, mais pourquoi donc ?)

mercredi 7 février 2007 à 15:29:17 | Re : image bureau sans icones

jmfmarques

Membre Club
Réponse acceptée !

Je viens de faire celà qui fonctionne sur ma machine (Win 2000 Pro) . Je serais intéressé (et compte sur toi) à savoir ce que celà donne sur la tienne, en me précisant ton OS.


Sur une Form :

14 pictureBox Picture1

Code

Private Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As Long

Private Sub Form_Activate()
   With Me
     .AutoRedraw = False
     .ScaleMode = 3
     .Move 0, 0, Screen.Width, Screen.Height
   End With
   Picture1.Move 0, 0, Screen.Width, Screen.Height
   DoEvents
   PaintDesktop Picture1.hdc
   DoEvents
   Picture1.AutoRedraw = True
End Sub

Dis-moi (ou quelqu'un d'autre)

mercredi 7 février 2007 à 17:46:31 | Re : image bureau sans icones

ORTIPIC

BRAVO

jmfmarques

oui ca fonctionne parfaitement ( sous xp pour moi )

car mes essais de mon coté avec paintdesktop ne fonctionnés pas

Merci
FAB

1 2

Cette discussion est classée dans : image, icones, bureau


Répondre à ce message

Sujets en rapport avec ce message

Deplacer les icones du bureau avec les API [ par lvi ] Je cherche en vain dans les API et sur le web les infospour connaitre la position sur le bureau d'une iconecomment la deplacer et comment declencher e Déplacement des icones du bureau depuis une application visual basic [ par cass74 ] Salut,Je désirerais savoir comment il est possible de déplacer des icones du bureau depuis une application visual basic.J'aimerais aussi savoir où se API pour Acceder aux icones du bureau ? [ par drudy ] Est - il possible de pouvoir selectionner une icone de bureau pour ensuite simuler un clic droit dessus.Merci beaucoup. liste des icones sur le bureau de windows [ par martinkk ] je voudrais avoir la liste des icones sur le bureau dans une table ou un tableau.je voudrais aussi avoir la liste des lecteurs du reseau dans une tabl Aligner les icones du bureau!!! [ par MEGATRIX ] Comment aligné les icones de mon bureau?merci@++Megatrix Petites icones sur le bureau [ par cyberatom ] Bonjour à tous,grâce au paramètres de l'affichage (onglet effets), on peut choisir d'afficher des grandes ou des petites icônes sur le bureau.J'aimera image du bureau ds une picturebox [ par SupraDolph ] salut a tous je voudrai avoir l'image de mon bureau dans une picturebox ou une image. j'utilise ce code qui fonctionnai sous win98 SE je croi mais g w cacher icones [ par bob13 ] Bonjour à tous !je sais pas si cette question a été traitée mais je voudrais savoir comment cacher les icones du "quick launch" de la barre des taches ICONES et VB.NET [ par RJLFRANCE ] Bonjours a tousDans un programme comme celui ci, comment sauvegarder l'image transferer dans un picturebox par l'API ReleaseDCle programme se plante l ??? IMAGE-LIST SYSTEM ??? [ par ScSami ] Je cherche à faire un explorateur de fichiers made by me.Et je n'arrive toujours pas, malgrès mes nombreux messages sur le forum, à obtenir les icones


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales