Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ALWAYS ON TOP APP


Information sur la source

Catégorie :API Source .NET ( DotNet ) Classé sous : api, always, top, visible, enumwindows Niveau : Débutant Date de création : 30/05/2005 Date de mise à jour : 21/11/2005 13:14:11 Vu / téléchargé: 9 253 / 418

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


Description

Ce petit programme permet de mettre n'importe quelle fenêtre visible dans la barre des taches en "Always on the top" (soit toujours visible).
 

Source

  • /*
  • * Utilisation des API :
  • * Voici les méthodes utilisées dans ce code
  • *********************************************************/
  • // Les namespaces utiles
  • using System.Runtime.InteropServices;
  • using System.Text;
  • // Récuperer le handle des fenetres :
  • // -> Déclarations
  • public delegate bool EnumWindowsProc(IntPtr hwnd, int lParam);
  • [DllImport("user32")]
  • public static extern int EnumWindows(EnumWindowsProc lpEnumFunc, int lParam);
  • // -> Code a mettre en oeuvre
  • // Appel de la méthode
  • EnumWindows(new EnumWindowsProc(EnumWindow), 0);
  • // CallBack
  • private bool EnumWindow(IntPtr hwnd, int lparam)
  • {
  • // Vous pouvez récupere ici le Handle des fenetres (paramètre hwnd)
  • return true;
  • }
  • //Récuperer le titre des fenêtres :
  • // -> Déclarations :
  • [DllImport("user32.dll")]
  • public static extern int GetWindowText(IntPtr hWnd, [Out] StringBuilder lpString, int nMaxCount);
  • [DllImport("user32.dll")]
  • public static extern int GetWindowTextLength(IntPtr hWnd);
  • // -> Code a mettre en oeuvre
  • // Paramètre hwnd : Handle de la fenêtre pour laquelle vous voulez récuperer le texte
  • public static string GetWindowText(IntPtr hWnd)
  • {
  • StringBuilder sb = new StringBuilder(GetWindowTextLength(hWnd) + 1);
  • GetWindowText(hWnd, sb, sb.Capacity);
  • return sb.ToString();
  • }
/* 
 * Utilisation des API :
 * Voici les méthodes utilisées dans ce code
 *********************************************************/

// Les namespaces utiles
using System.Runtime.InteropServices;
using System.Text;

// Récuperer le handle des fenetres :
// -> Déclarations

	public delegate bool EnumWindowsProc(IntPtr hwnd, int lParam);
	[DllImport("user32")]
	public static extern int EnumWindows(EnumWindowsProc lpEnumFunc, int lParam);

// -> Code a mettre en oeuvre

        // Appel de la méthode
        EnumWindows(new EnumWindowsProc(EnumWindow), 0); 

        // CallBack
	private bool EnumWindow(IntPtr hwnd, int lparam)
	{
		// Vous pouvez récupere ici le Handle des fenetres (paramètre hwnd)
		return true;
	}


//Récuperer le titre des fenêtres :
// -> Déclarations :

	[DllImport("user32.dll")]
	public static extern int GetWindowText(IntPtr hWnd, [Out] StringBuilder lpString, int nMaxCount);
	[DllImport("user32.dll")]
	public static extern int GetWindowTextLength(IntPtr hWnd);

// -> Code a mettre en oeuvre

        // Paramètre hwnd : Handle de la fenêtre pour laquelle vous voulez récuperer le texte
	public static string GetWindowText(IntPtr hWnd)
	{
		StringBuilder sb = new StringBuilder(GetWindowTextLength(hWnd)  + 1);
		GetWindowText(hWnd, sb, sb.Capacity);
		return sb.ToString();
	}


Conclusion

Il y a certainement des bugs.
J'ai par exemple remarqué qu'il ne desactivait pas toujours les fenetres qui etaient dejà "Toujours au dessus".

Le code n'est pas dur a comprendre. Il utilise les API windows.

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

31 mai 2005 12:23:45 :
Ajout des explications
21 novembre 2005 13:14:11 :
Ajout des mots clés

Commentaires et avis

signaler à un administrateur
Commentaire de thebigboss le 06/01/2006 23:02:01

Très interressant et finalement pas très compliqué. Bravo, par contre il peut être pas mal que ton application sois toujours au dessus des autres car sinon c'est moins facile de repasser celles-ci en normale (j'ai juste ajouté this.TopMost=true;).

Je vais m'empresser de regarder tes autres sources.

signaler à un administrateur
Commentaire de MorpionMx le 07/01/2006 08:42:35 administrateur CS

J'avais meme pas pensé a ca :D

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

API? [ par BlackWizzard ] en C, j'avait un prog du genre ::SetWindowPos(FindWindow("ConsoleWindowClass",NULL),HWND_TOP,0,0,0,0,SWP_SHOWWINDOW); (C pour chacher le console dos d Conversion API Win32 -> C# [ par merlintintin ] J'aimerais utiliser des fonctions de l'APIen C#. Il faut pour cela redefinir les fonctions et les structures de l'API en C#. Malheureusement, je ne sa comment on ajoute des boutons dans une toolBar [ par kalakalaboubou ] bonjour a tousquelqu'un sait-il comment on ajoute des boutons dans une toolBar et qu'ils soient visible.Mon probleme c'est que c'est visible que quand api??? [ par dragoneyes ] j'ai fait pas mal de recherche sur le net. Et a part un deux exemples g pas trouvé grand chose sur lutilisation de api avec le c#.Esque qqun pe me don TOP MEMBRES [ par gg00xiv ] Le Top Membres va t-il être bientôt corrigé ? Une autre question du newbie [ par PsyCaDi ] ReEst-ce que quelqu'un sait comment on fait pour qu'un formulaire soit toujours "visible"? Qu'il passe par-dessus les autres applis même s'il n'est pa Utilisation de l'api Windows... [ par welc ] Bonjour,Je début en C#, et je m'entraine à utiliser DllImport avec l'api. Pour faire simple j'ai essayé de faire un appel MessageBoxA :[DllImport("use Mise en oeuvre d'une API [ par jacma ] Bonjour Est-il possible d'utiliser l'API sendMessageByString en C# et dans l'affirmative, comment la mettre en oeuvre (déclaration, appel...). Je l'ai [TabStrip] rendre visible certain onglet [ par jane2002 ] Bonjour a tous,j'utilise un TabStrip sur ma WebForm et je voudrais n'afficher que certain onglet a l'execution du programme , quelqu'un aurait il une Constante et énumération LVITEM dans API SendMessage [ par jacma ] BonjourDans la déclaration ci-dessous de l'API SendMessage employée avec une ListView, à quelle constante correspond Int32 wMsg?static extern Int32 Se


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,55 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.