[API Win32][desklet] integrer une fenêtre dans sur le bureau ?

integrer une fenêtre dans sur le bureau ? [API Win32][desklet] - Divers - Programmation

Marsh Posté le 27-09-2006 à 12:40:03    

Bonjour,
 
Le titre ne doit pas etre très clair mais bon ...
 
Voila, je n'arrive pas a trouver la solution pour integrer une fenetre (winform par exemple) sur le bureau windows
 
Je suis pas sur de bien m'expliquer. J'aimerai pouvoir cree une fenetre qui resterais systèmatiquement en derrière les autres.
 
Par exemple VLC (videolan.org) permet de lire un film comme papier peint de bureau et j'aimerai pouvoir reussir a obtenir un résultat similaire.
 
Mon but est de concevoir des desklets pour windows. Pour ceux qui ne connaisent pas, voici un exemple sous linux => http://www.gdesklets.org/?mod=desklets/list
 
Merci d'avance aux personnes qui pourraient m'aider

Reply

Marsh Posté le 27-09-2006 à 12:40:03   

Reply

Marsh Posté le 27-09-2006 à 16:09:54    

humm, personne ne peut m'aider :S ?
 
j'arrive pas a m'en sortir et l'API windows je la maitrise pas assez u_u
 
je m'oriente vers GetDesktopWindow et SetWindowPos mais bon j'arive pas a grand chose

Reply

Marsh Posté le 27-09-2006 à 16:15:53    

ben tu récupères le hwnd du bureau avec GetDesktopWindow, et ensuite tu l'utilises pour tes opérations :spamafote:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 27-09-2006 à 16:53:09    

Voila ou j'en suis :
 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Runtime.InteropServices;
  9. namespace InteropTest
  10. {
  11.     public partial class Form1 : Form
  12.     {
  13.         public Form1()
  14.         {
  15.             InitializeComponent();
  16.         }
  17.         [DllImport("user32.dll", EntryPoint = "SetWindowPos" )]
  18.         public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);         
  19.         public const int HWND_BOTTOM = 0x1;
  20.         public const uint SWP_NOSIZE = 0x1;
  21.         public const uint SWP_NOMOVE = 0x2;
  22.        
  23.         [DllImport("User32.Dll" )]
  24.         public static extern IntPtr GetDesktopWindow();
  25.         private void Form1_Load(object sender, EventArgs e)
  26.         {
  27.             // Fonctionne mais la fenetre est devant les icones du bureau
  28.             SetWindowPos((int)this.Handle, 1, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
  29.             // Ne fonctionne pas du tout
  30.             SetWindowPos(this.Handle, GetDesktopWindow(), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
  31.         }
  32.     }
  33. }


 
A première vue il y a un problème quelque part :/ mais j'arrive pas à trouver
 
 

Reply

Marsh Posté le 27-09-2006 à 16:55:39    

Je sais pas si je part sur la bonne méthode pour faire ce que je veut faire
 
Je ne trouve aucun exemple, ni infos la dessus :/

Reply

Marsh Posté le 27-09-2006 à 17:56:46    

Sinon, tu DWL Vista RC1, et le SDK des "gadgets" c'est exactement ce que tu veux faire :D
 
(sauf qu'on trouve les gadgets dans une barre sur la droite de l'écran donc faut pas faire un truc trop gros :D)


Message édité par MagicBuzz le 27-09-2006 à 17:57:00
Reply

Marsh Posté le 27-09-2006 à 18:14:53    

oui j'ai déja fait mumuse avec les gadgets ^^, c'est d'ailleur fort agréable cette nouvelle possibilitée :)
 
mais comme j'aime bien me compliquer la vie j'ai envie d'en coder pour les autres version de windows :o
 

Reply

Marsh Posté le 27-09-2006 à 20:21:46    

J'ai trouvé comment dessiner "sur le bureau" (en fait, il dessine comme un goret partout dans l'écran, chevauchant tout ce qui lui passe sous le nez :D)
 
Mais rien à propos de créer un contrôle directement sur le bureau.
 
Pourtant il doit y avoir moyen, puisque le "active desktop" le permet afin de visualiser une page web dans un contrôle placé sur le bureau (réactif, mais restant sous les icônes)
 
J'ai trouvé aussi comment avoir des gros trucs en 3D tout moches qui se baladent sur le bureau et qui se comportent comme la barre des tâches Windows (toujours au premier plan, et réctif). Sauf que j'ai le source, ça m'a obligé à installer .NET 3.0 (il est sorti ce truc ? :heink:) et vs2005 sait pas quoi en faire :D


Message édité par MagicBuzz le 27-09-2006 à 20:24:11
Reply

Marsh Posté le 27-09-2006 à 22:49:32    

lol
 
oui mes recherche googlelienne ne donne rien :/
 
meme code-projects qui en général est une mine d'infos sur ce genre d'idée farfelues ne m'est d'aucune aide u_u

Reply

Marsh Posté le 28-09-2006 à 16:53:00    

up dans l'espoir ^^

Reply

Marsh Posté le 28-09-2006 à 16:53:00   

Reply

Marsh Posté le 28-09-2006 à 18:49:46    

Essaie de voir si les yahoo! Widgets font ce que tu veux.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
Reply

Marsh Posté le 28-09-2006 à 19:51:52    

ils font d'apparence ce que je veut, mais ce que je veut c'est en coder moi  même tout en apprenant a me servir de l'API correctement ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed